Files
ThirdParty-6/ParaView-5.0.1/Applications/ParaView/Testing/Python/TestMultiServersRemoteProxy.py

151 lines
5.2 KiB
Python

from paraview.simple import *
from paraview import servermanager
import time
# Make sure the test driver know that process has properly started
print "Process started"
errors = 0
#-------------------- Helpers methods ----------------
def getHost(url):
return url.split(':')[1][2:]
def getScheme(url):
return url.split(':')[0]
def getPort(url):
return int(url.split(':')[2])
#--------------------
print "Start multi-server testing"
options = servermanager.vtkProcessModule.GetProcessModule().GetOptions()
available_server_urls = options.GetServerURL().split('|')
built_in_connection = servermanager.ActiveConnection
# Test if the built-in connection is here
if (len(servermanager.Connections) != 1):
errors += 1
print "Error pvpython should be connected to a built-in session. Currently connected to ", servermanager.Connections
url = available_server_urls[0]
print "Connect to first server ", url
server1_connection = Connect(getHost(url), getPort(url))
# Test that we have one more connection
if (len(servermanager.Connections) != 2):
errors += 1
print "Error pvpython should be connected to a built-in session + one remote one. Currently connected to ", servermanager.Connections
url = available_server_urls[1]
print "Connect to second server ", url
server2_connection = Connect(getHost(url), getPort(url))
# Test that we have one more connection
if (len(servermanager.Connections) != 3):
errors += 1
print "Error pvpython should be connected to a built-in session + two remote one. Currently connected to ", servermanager.Connections
url = available_server_urls[2]
print "Connect to third server ", url
server3_connection = Connect(getHost(url), getPort(url))
# Test that we have one more connection
if (len(servermanager.Connections) != 4):
errors += 1
print "Error pvpython should be connected to a built-in session + three remote one. Currently connected to ", servermanager.Connections
print "Available connections: ", servermanager.Connections
# Test that last created connection is the active one
if ( servermanager.ActiveConnection != server3_connection):
errors += 1
print "Error Invalid active connection. Expected ", server3_connection, " and got ", servermanager.ActiveConnection
# ------- Do the proper RemoteSourceProxy testing --------------
# Create a set of sphere across the remote sessions
SetActiveConnection(server1_connection, globals())
rSphere1 = Sphere(ThetaResolution=10, PhiResolution=10)
rSphere1.UpdatePipeline()
size1 = rSphere1.GetDataInformation().GetNumberOfPoints()
SetActiveConnection(server2_connection, globals())
rSphere2 = Sphere(ThetaResolution=11, PhiResolution=11)
rSphere2.UpdatePipeline()
size2 = rSphere2.GetDataInformation().GetNumberOfPoints()
SetActiveConnection(server3_connection, globals())
rSphere3 = Sphere(ThetaResolution=12, PhiResolution=12)
rSphere3.UpdatePipeline()
size3 = rSphere3.GetDataInformation().GetNumberOfPoints()
# Create remote source on the built-in session
SetActiveConnection(built_in_connection, globals())
remoteProxy = RemoteSourceProxy()
remoteProxy.SetExternalProxy(rSphere1, 0)
remoteProxy.UpdatePipeline()
# Test that the data in built-in is the same size as the remote one
remoteProxy.UpdatePipeline()
size = remoteProxy.GetDataInformation().GetNumberOfPoints()
if ( size1 != size ):
errors += 1
print "Error Invalid data size. Expected ", size1, " and got ", size
else:
print "Found size ", size, " for server 1"
# Switch to proxy on server 2 and test size
remoteProxy.SetExternalProxy(rSphere2, 0)
remoteProxy.UpdatePipeline()
size = remoteProxy.GetDataInformation().GetNumberOfPoints()
if ( size2 != size ):
errors += 1
print "Error Invalid data size. Expected ", size2, " and got ", size
else:
print "Found size ", size, " for server 2"
# Switch to proxy on server 3 and test size
remoteProxy.SetExternalProxy(rSphere3, 0)
remoteProxy.UpdatePipeline()
size = remoteProxy.GetDataInformation().GetNumberOfPoints()
if ( size3 != size ):
errors += 1
print "Error Invalid data size. Expected ", size3, " and got ", size
else:
print "Found size ", size, " for server 3"
# Change data size on server 3 and make sure the change get propagated to the built-in
rSphere3.ThetaResolution = 13
rSphere3.PhiResolution = 13
rSphere3.UpdatePipeline()
size3 = rSphere3.GetDataInformation().GetNumberOfPoints()
remoteProxy.UpdatePipeline()
size = remoteProxy.GetDataInformation().GetNumberOfPoints()
if ( size3 != size ):
errors += 1
print "Error Invalid data size. Expected ", size3, " and got ", size
else:
print "Found size ", size, " for server 3 after update"
# Make sure the size is not 0
if ( size == 0 or size1 == 0 or size1 == 0 or size1 == 0):
errors += 1
print "Error Invalid data size. None of them should be 0"
# --------------------------------------------------------------
# Disconnect and quit application...
Disconnect()
print "Available connections after disconnect: ", servermanager.Connections
Disconnect()
print "Available connections after disconnect: ", servermanager.Connections
Disconnect()
print "Available connections after disconnect: ", servermanager.Connections
Disconnect()
print "Available connections after disconnect: ", servermanager.Connections
if errors > 0:
raise RuntimeError, "An error occured during the execution"