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

107 lines
4.0 KiB
Python

#/usr/bin/env python
# Global python import
import exceptions, traceback, logging, random, sys, threading, time, os
# Update python path to have ParaView libs
build_path='/Volumes/SebKitSSD/Kitware/code/ParaView/build-ninja'
sys.path.append('%s/lib'%build_path)
sys.path.append('%s/lib/site-packages'%build_path)
# ParaView import
from vtk.web import server
from paraview.vtk import *
from paraview.web import wamp as pv_wamp
#------------------------------------------------------------------------------
# InLine protocol
#------------------------------------------------------------------------------
class TestProtocol(pv_wamp.PVServerProtocol):
dataDir = None
authKey = "vtkweb-secret"
fileToLoad = None
groupRegex = "[0-9]+\\."
excludeRegex = "^\\.|~$|^\\$"
@staticmethod
def updateArguments(options):
TestProtocol.dataDir = options.dataDir
TestProtocol.authKey = options.authKey
TestProtocol.fileToLoad = options.fileToLoad
TestProtocol.authKey = options.authKey
TestProtocol.groupRegex = options.groupRegex
TestProtocol.excludeRegex = options.excludeRegex
def initialize(self):
from paraview import simple
from paraview.web import protocols as pv_protocols
# Bring used components
self.registerVtkWebProtocol(pv_protocols.ParaViewWebFileListing(TestProtocol.dataDir, "Home", TestProtocol.excludeRegex, TestProtocol.groupRegex))
self.registerVtkWebProtocol(pv_protocols.ParaViewWebPipelineManager(TestProtocol.dataDir, TestProtocol.fileToLoad))
self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler())
self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort())
self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery())
self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortGeometryDelivery())
self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler())
self.registerVtkWebProtocol(pv_protocols.ParaViewWebRemoteConnection())
self.registerVtkWebProtocol(pv_protocols.ParaViewWebFileManager(TestProtocol.dataDir))
# Update authentication key to use
self.updateSecret(TestProtocol.authKey)
#------------------------------------------------------------------------------
# ParaView Test default arguments
#------------------------------------------------------------------------------
class WebArguments(object):
def __init__(self, webDir = None):
self.content = webDir
self.port = 8080
self.host = 'localhost'
self.debug = 0
self.timeout = 120
self.nosignalhandlers = True
self.authKey = 'vtkweb-secret'
self.uploadDir = ""
self.testScriptPath = ""
self.baselineImgDir = ""
self.useBrowser = ""
self.tmpDirectory = ""
self.testImgFile = ""
self.forceFlush = False
self.dataDir = '.'
self.groupRegex = "[0-9]+\\."
self.excludeRegex = "^\\.|~$|^\\$"
self.fileToLoad = None
def __str__(self):
return "http://%s:%d/%s" % (self.host, self.port, self.content)
#------------------------------------------------------------------------------
# Start server
#------------------------------------------------------------------------------
def start():
args = WebArguments('%s/www' % build_path)
TestProtocol.updateArguments(args)
server.start_webserver(options=args, protocol=TestProtocol)
def start_thread():
thread = threading.Thread(target=start)
print "Starting thread"
thread.start()
for i in range(20):
print "Working... %ds" % (i*5)
time.sleep(5)
thread.join()
print "Done"
#------------------------------------------------------------------------------
# Main
#------------------------------------------------------------------------------
if __name__ == "__main__":
start_thread()