Salome HOME
Copyright update 2020
[modules/shaper.git] / test.hdfs / test_hdf.py
index 5f5532d499ca4a81b609508d5e980585b3a1ef9c..b58ea3b838ef5b39dfdd3e35d9917a70c5145b57 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+# Copyright (C) 2014-2020  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -17,7 +17,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-import salome, os, sys
+import salome, salome_utils, os, sys
 import SalomePyQt
 
 import unittest
@@ -55,7 +55,7 @@ class TestHDF(unittest.TestCase):
 
   def test_hdf_file(self):
     self.assertTrue(self.partSet.size("Parts") > 0)
-    aPartsList = []
+    aPartsList = dict()
     for aPartIndex in range(self.partSet.size("Parts")):
       self.session.startOperation()
       aPart = ModelAPI.modelAPI_ResultPart(ModelAPI.objectToResult(self.partSet.object("Parts", aPartIndex)))
@@ -63,8 +63,14 @@ class TestHDF(unittest.TestCase):
       self.session.finishOperation()
 
       aPartFeature = PartSetAPI.PartSetAPI_Part(self.partSet.currentFeature(True))
-      # check reference data
-      exec(open(self.reffile, "rb").read())
+      aPartsList["Part_{}".format(aPartIndex+1)] = aPartFeature
+
+      self.session.startOperation()
+      self.session.setActiveDocument(self.partSet)
+      self.session.finishOperation()
+
+    # check reference data
+    exec(open(self.reffile, "rb").read(), globals(), aPartsList)
 
 
 if __name__ == "__main__":
@@ -73,21 +79,21 @@ if __name__ == "__main__":
   if len(sys.argv) > 2:
     salomePortFile = sys.argv[2]
   if len(sys.argv) > 3:
-    sys.stderr = open(sys.argv[3], 'w')
+    errFile = open(sys.argv[3], 'w')
   if len(sys.argv) > 4:
     salomeKernelDir = sys.argv[4]
   if len(sys.argv) > 5:
     TestHDF.reffile = sys.argv[5]
 
   aTest = unittest.TestLoader().loadTestsFromTestCase(TestHDF)
-  unittest.TextTestRunner(stream=sys.stderr).run(aTest)
+  unittest.TextTestRunner(stream=errFile).run(aTest)
+  errFile.close()
 
-#  test_program = unittest.main(argv=[sys.argv[0]], exit=False)
-  proc = subprocess.Popen(salomeKernelDir + "/bin/salome/killSalome.py")
+  # close Salome GUI
+  port = salome_utils.getPortNumber()
+  proc = subprocess.Popen([salomeKernelDir + "/bin/salome/killSalomeWithPort.py", "{}".format(port)])
 
   try:
     os.remove(salomePortFile)
   except:
     print("Cannot remove file", file=f)
-
-#  assert test_program.result.wasSuccessful(), "Test failed"