]> SALOME platform Git repositories - modules/yacs.git/blob - bin/appliskel/salome_tester/salome_test_session.py
Salome HOME
8f193f57253ddc7faad2d10d65460f321f34599e
[modules/yacs.git] / bin / appliskel / salome_tester / salome_test_session.py
1 # Copyright (C) 2015  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 import sys
21 import os
22
23 # Example of args:
24 #      args=["--gui", "--show-desktop=1", "--splash=0"]
25 #      args=["--terminal","--modules=MED,PARAVIS,GUI"]
26 class SalomeSession(object):
27   def __init__(self, args=[]):
28     sys.argv = ['runSalome'] + args
29
30     if "INGUI" in args:
31       # :WARNING: NOT TESTED YET
32       sys.argv += ["--gui"]
33       sys.argv += ["--show-desktop=1"]
34       sys.argv += ["--splash=0"]
35       #sys.argv += ["--standalone=study"]
36       #sys.argv += ["--embedded=SalomeAppEngine,cppContainer,registry,moduleCatalog"]
37     else:
38       sys.argv += ["--terminal"]
39       sys.argv += ["--shutdown-servers=1"]
40       #sys.argv += ["--modules=MED,PARAVIS,GUI"]
41       pass
42
43     import setenv
44     setenv.main(True)
45
46     import runSalome
47     runSalome.runSalome()
48   #
49 #
50
51 # Run SALOME
52 def startSession():
53   import tempfile
54   log = tempfile.NamedTemporaryFile(suffix='_nsport.log', delete=False)
55   log.close()
56   import salome
57   salome_session = SalomeSession(args=["--ns-port-log=%s"%log.name])
58   salome.salome_init()
59   session_server = salome.naming_service.Resolve('/Kernel/Session')
60   if session_server:
61       session_server.emitMessage("connect_to_study")
62       session_server.emitMessage("activate_viewer/ParaView")
63       pass
64
65   with open(log.name) as f:
66       port = int(f.readline())
67
68   os.remove(log.name)
69   return port
70 #
71
72 # Terminate SALOME
73 def terminateSession(port):
74   import killSalomeWithPort
75   killSalomeWithPort.killMyPort(port)
76 #