Salome HOME
Adding test for bos #41748 [CEA] Issue in interpolation edition
[modules/shaper.git] / src / PythonAPI / Test / TestFeaturesExtrusion.py
index 2cfec0b048b489fa9930dcfdce98331b5b2c9376..bdd91225b0333b56d81b1c4752e8d99932779791 100644 (file)
@@ -1,8 +1,27 @@
+# Copyright (C) 2014-2024  CEA, EDF
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
 import unittest
 
 import ModelAPI
 
-import model
+from salome.shaper import model
 
 #-----------------------------------------------------------------------------
 # Fixtures
@@ -18,6 +37,7 @@ class FeaturesAddExtrusionFixture(unittest.TestCase):
 
     def tearDown(self):
         model.end()
+        assert(model.checkPythonDump())
         model.reset()
 
 
@@ -28,10 +48,10 @@ class FeaturesExtrusionFixture(FeaturesAddExtrusionFixture):
         # Create extrusion
         sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
         circle = sketch.addCircle(0, 0, 10)
+        model.do()
 
-        base = [sketch.selectFace(circle.result())]
-        self.extrusion = model.addExtrusion(self.part, base,
-                                            10, 0)
+        base = sketch.selectFace()
+        self.extrusion = model.addExtrusion(self.part, base, 10, 0)
         model.do()
 
     def tearDown(self):
@@ -42,61 +62,56 @@ class FeaturesExtrusionFixture(FeaturesAddExtrusionFixture):
 
 class FeaturesAddExtrusionTestCase(FeaturesAddExtrusionFixture):
 
-    def test_add_extrusion_no_base(self):
-        try:
-            extrusion = model.addExtrusion(self.part)
-            fail("addExtrusion should assert if base is not None")
-        except AssertionError:
-            pass
-
     def test_add_extrusion_by_face_and_size(self):
         sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
         circle = sketch.addCircle(0, 0, 10)
+        model.do()
 
-        base = [sketch.selectFace(circle.result())]
-        extrusion = model.addExtrusion(self.part, base,
-                                       10, 0)
+        base = sketch.selectFace()
+        extrusion = model.addExtrusion(self.part, base, 10, 0)
+        model.do()
 
-        self.assertEqual(extrusion.getCreationMethod().value(), "BySizes")
-        self.assertEqual(extrusion.getToSize().value(), 10)
-        self.assertEqual(extrusion.getFromSize().value(), 0)
-        self.assertEqual(extrusion.getToObject().context(), None)
-        self.assertEqual(extrusion.getToOffset().value(), 0)
-        self.assertEqual(extrusion.getFromObject().context(), None)
-        self.assertEqual(extrusion.getFromOffset().value(), 0)
+        self.assertEqual(extrusion.creationMethod().value(), "BySizes")
+        self.assertEqual(extrusion.toSize().value(), 10)
+        self.assertEqual(extrusion.fromSize().value(), 0)
+        self.assertEqual(extrusion.toObject().context(), None)
+        self.assertEqual(extrusion.toOffset().isInitialized(), False)
+        self.assertEqual(extrusion.fromObject().context(), None)
+        self.assertEqual(extrusion.fromOffset().isInitialized(), False)
 
     def test_add_extrusion_by_face_and_planes(self):
         # base
         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
         base_circle = base_sketch.addCircle(0, 0, 10)
-        base_sketch.selectFace(base_circle.result())
         # to
         to_plane = model.defaultPlane("XOY")
-        to_plane.location().setZ(10)
+        to_plane.origin().setZ(10)
         to_sketch = model.addSketch(self.part, to_plane)
         to_circle = to_sketch.addCircle(0, 0, 10)
-        to_sketch.selectFace(to_circle.result())
         # from
         from_plane = model.defaultPlane("XOY")
-        from_plane.location().setZ(-10)
+        from_plane.origin().setZ(-10)
         from_sketch = model.addSketch(self.part, from_plane)
         from_circle = from_sketch.addCircle(0, 0, 10)
-        from_sketch.selectFace(from_circle.result())
 
-        base = [base_sketch]
+        model.do()
+
+        base = base_sketch.selectFace()
+        to_object = to_sketch.selectFace()[0]
+        from_object = from_sketch.selectFace()[0]
         extrusion = model.addExtrusion(self.part, base,
-                                       to_sketch, 15,
-                                       from_sketch, 20)
+                                       to_object, 15,
+                                       from_object, 20)
 
-        self.assertEqual(extrusion.getCreationMethod().value(), "ByPlanesAndOffsets")
-        self.assertEqual(extrusion.getToSize().value(), 0)
-        self.assertEqual(extrusion.getFromSize().value(), 0)
+        self.assertEqual(extrusion.creationMethod().value(), "ByPlanesAndOffsets")
+        self.assertEqual(extrusion.toSize().isInitialized(), False)
+        self.assertEqual(extrusion.fromSize().isInitialized(), False)
 #         self.assertEqual(extrusion.getToObject().context(),
 #                          to_sketch.result())
-        self.assertEqual(extrusion.getToOffset().value(), 15)
+        self.assertEqual(extrusion.toOffset().value(), 15)
 #         self.assertEqual(extrusion.getFromObject().context(),
 #                          from_sketch.result())
-        self.assertEqual(extrusion.getFromOffset().value(), 20)
+        self.assertEqual(extrusion.fromOffset().value(), 20)
 
 
 class FeaturesExtrusionTestCase(FeaturesExtrusionFixture):
@@ -107,53 +122,55 @@ class FeaturesExtrusionTestCase(FeaturesExtrusionFixture):
 
     def test_extrusion_get_attribute(self):
         # call method of the feature
-        self.assertTrue(isinstance(self.extrusion.getBase(),
+        self.assertTrue(isinstance(self.extrusion.baseObjects(),
                                    ModelAPI.ModelAPI_AttributeSelectionList))
-        self.assertTrue(isinstance(self.extrusion.getCreationMethod(),
+        self.assertTrue(isinstance(self.extrusion.creationMethod(),
                                    ModelAPI.ModelAPI_AttributeString))
-        self.assertTrue(isinstance(self.extrusion.getToSize(),
+        self.assertTrue(isinstance(self.extrusion.toSize(),
                                    ModelAPI.ModelAPI_AttributeDouble))
-        self.assertTrue(isinstance(self.extrusion.getFromSize(),
+        self.assertTrue(isinstance(self.extrusion.fromSize(),
                                    ModelAPI.ModelAPI_AttributeDouble))
-        self.assertTrue(isinstance(self.extrusion.getToObject(),
+        self.assertTrue(isinstance(self.extrusion.toObject(),
                                    ModelAPI.ModelAPI_AttributeSelection))
-        self.assertTrue(isinstance(self.extrusion.getToOffset(),
+        self.assertTrue(isinstance(self.extrusion.toOffset(),
                                    ModelAPI.ModelAPI_AttributeDouble))
-        self.assertTrue(isinstance(self.extrusion.getFromObject(),
+        self.assertTrue(isinstance(self.extrusion.fromObject(),
                                    ModelAPI.ModelAPI_AttributeSelection))
-        self.assertTrue(isinstance(self.extrusion.getFromOffset(),
+        self.assertTrue(isinstance(self.extrusion.fromOffset(),
                                    ModelAPI.ModelAPI_AttributeDouble))
 
     def test_extrusion_set_sizes(self):
-        self.extrusion.setSize(15, 20)
-        self.assertEqual(self.extrusion.getCreationMethod().value(), "BySizes")
-        self.assertEqual(self.extrusion.getToSize().value(), 15)
-        self.assertEqual(self.extrusion.getFromSize().value(), 20)
-        self.assertEqual(self.extrusion.getToObject().context(), None)
-        self.assertEqual(self.extrusion.getToOffset().value(), 0)
-        self.assertEqual(self.extrusion.getFromObject().context(), None)
-        self.assertEqual(self.extrusion.getFromOffset().value(), 0)
+        self.extrusion.setSizes(15, 20)
+        self.assertEqual(self.extrusion.creationMethod().value(), "BySizes")
+        self.assertEqual(self.extrusion.toSize().value(), 15)
+        self.assertEqual(self.extrusion.fromSize().value(), 20)
+        self.assertEqual(self.extrusion.toObject().context(), None)
+        self.assertEqual(self.extrusion.toOffset().isInitialized(), False)
+        self.assertEqual(self.extrusion.fromObject().context(), None)
+        self.assertEqual(self.extrusion.fromOffset().isInitialized(), False)
 
     def test_extrusion_set_planes_and_offsets(self):
-        # base
-        base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
-        base_circle = base_sketch.addCircle(0, 0, 10)
-        base_sketch.selectFace(base_circle.result())
         # to
         to_plane = model.defaultPlane("XOY")
-        to_plane.location().setZ(10)
+        to_plane.origin().setZ(10)
         to_sketch = model.addSketch(self.part, to_plane)
         to_circle = to_sketch.addCircle(0, 0, 10)
-        to_sketch.selectFace(to_circle.result())
         # from
         from_plane = model.defaultPlane("XOY")
-        from_plane.location().setZ(-10)
+        from_plane.origin().setZ(-10)
         from_sketch = model.addSketch(self.part, from_plane)
         from_circle = from_sketch.addCircle(0, 0, 10)
-        from_sketch.selectFace(from_circle.result())
 
-        self.extrusion.setPlanesAndOffsets(to_sketch, 15, from_sketch, 20)
+        model.do()
+
+        to_object = to_sketch.selectFace()[0]
+        from_object = from_sketch.selectFace()[0]
+
+        self.part.moveFeature(self.extrusion.feature(), from_sketch.feature())
+
+        self.extrusion.setPlanesAndOffsets(to_object, 15, from_object, 20)
 
 
 if __name__ == "__main__":
-    unittest.main()
+    test_program = unittest.main(exit=False)
+    assert test_program.result.wasSuccessful(), "Test failed"