X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=test.hdfs%2Ftest_hdf.py;h=8911735b3efc61040c90c8799e33acecd664515f;hb=125e977780564b5313585d13f48d3e26f50ce27a;hp=9dbc1578c1e771fc390ff85edb1096aa019ff787;hpb=c2fac88b2003c637e6d0878614bcb20cfa08f80c;p=modules%2Fshaper.git diff --git a/test.hdfs/test_hdf.py b/test.hdfs/test_hdf.py index 9dbc1578c..8911735b3 100644 --- a/test.hdfs/test_hdf.py +++ b/test.hdfs/test_hdf.py @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2019 CEA/DEN, EDF R&D +# Copyright (C) 2014-2023 CEA, EDF # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -32,13 +32,8 @@ class TestHDF(unittest.TestCase): reffile = "" def setUp(self): - salome.salome_close() - - # leave file name only (trim path and extension) - fileName = os.path.basename(self.testfile) - self.reffile = self.reffile + "/" + os.path.splitext(fileName)[0] + ".py" - - salome.salome_init(self.testfile, embedded=1) + salome.standalone() + salome.salome_init(self.testfile, embedded=1, forced=True) myStudyName = salome.myStudy._get_Name() self.session = salome.naming_service.Resolve('/Kernel/Session') self.session.emitMessage("connect_to_study") @@ -55,7 +50,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,31 +58,37 @@ 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 that the features are not in error + Part_1_doc = aPart.partDoc() + + model.checkFeaturesValidity(Part_1_doc) + # check reference data + exec(open(self.reffile, "rb").read(), globals(), aPartsList) if __name__ == "__main__": if len(sys.argv) > 1: TestHDF.testfile = sys.argv[1] if len(sys.argv) > 2: - salomePortFile = sys.argv[2] + TestHDF.reffile = sys.argv[2] if len(sys.argv) > 3: 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] + else: + # to ease debugging, display the log in embedded python console if no log file is provided + # when calling salome in command line for instance + # runSalome.py --splash 0 test_hdf.py args:BearingSeparator.hdf,BearingSeparator.py + errFile = None aTest = unittest.TestLoader().loadTestsFromTestCase(TestHDF) unittest.TextTestRunner(stream=errFile).run(aTest) - errFile.close() - - # close Salome GUI - port = salome_utils.getPortNumber() - proc = subprocess.Popen([salomeKernelDir + "/bin/salome/killSalomeWithPort.py", "{}".format(port)]) + if errFile: + errFile.close() - try: - os.remove(salomePortFile) - except: - print("Cannot remove file", file=f) + # Quit SALOME the clean way + sys.exit()