Salome HOME
Issue #2044: Error detection in the parametric API
[modules/shaper.git] / src / PythonAPI / Test / TestFeatures.py
1 import unittest
2
3 import ModelAPI
4
5 from salome.shaper import model
6
7 #-----------------------------------------------------------------------------
8 # Fixtures
9
10 class FeaturesFixture(unittest.TestCase):
11
12     def setUp(self):
13         model.begin()
14         # Create part
15         partset = model.moduleDocument()
16         self.part = model.addPart(partset).document()
17         model.do()
18
19     def tearDown(self):
20         model.end()
21         # assert(model.checkPythonDump())
22         # This test checks creation of High API classes from low-level.
23         # It does not set any attributes, so features invalid, and dump also invalid.
24         model.reset()
25
26 #-----------------------------------------------------------------------------
27 # TestCases
28
29 class FeaturesTestCase(FeaturesFixture):
30
31     # def test_assert_error_on_empty_args(self):
32     #     features = [
33     #         # Implemented in C++, add* without arguments doesn't exist
34     #         # "addPoint", "addPlane",
35     #         # "addImport", "exportToFile",
36     #
37     #         "addAxis",
38     #         "addCut", "addFuse", "addCommon",
39     #         "addExtrusion",
40     #         # "addExtrusionCut", "addExtrusionFuse",
41     #         "addRevolution",
42     #         # "addRevolutionCut", "addRevolutionFuse",
43     #         "addPlacement", "addRotation", "addTranslation",
44     #         "addGroup",
45     #         "addParameter",
46     #         ]
47     #     for name in features:
48     #         try:
49     #             with self.assertRaises(AssertionError):
50     #                 feature = getattr(model, name)(self.part)
51     #         except AssertionError as e:
52     #             self.fail("%s does not check empty args" % name)
53
54     def test_addPoint(self):
55         model.addPoint(self.part, 10, "20", "x + 30")
56
57     def test_initialize_without_attributes(self):
58         import ConstructionAPI
59         ConstructionAPI.ConstructionAPI_Axis(self.part.addFeature("Axis"))
60         ConstructionAPI.ConstructionAPI_Plane(self.part.addFeature("Plane"))
61         ConstructionAPI.ConstructionAPI_Point(self.part.addFeature("Point"))
62
63         import ExchangeAPI
64         ExchangeAPI.ExchangeAPI_Import(self.part.addFeature("Import"))
65
66         import FeaturesAPI
67         FeaturesAPI.FeaturesAPI_Boolean(self.part.addFeature("Boolean"))
68         FeaturesAPI.FeaturesAPI_Extrusion(self.part.addFeature("Extrusion"))
69         FeaturesAPI.FeaturesAPI_ExtrusionCut(self.part.addFeature("ExtrusionCut"))
70         FeaturesAPI.FeaturesAPI_ExtrusionFuse(self.part.addFeature("ExtrusionFuse"))
71         FeaturesAPI.FeaturesAPI_Revolution(self.part.addFeature("Revolution"))
72         FeaturesAPI.FeaturesAPI_RevolutionCut(self.part.addFeature("RevolutionCut"))
73         FeaturesAPI.FeaturesAPI_RevolutionFuse(self.part.addFeature("RevolutionFuse"))
74         FeaturesAPI.FeaturesAPI_Placement(self.part.addFeature("Placement"))
75         FeaturesAPI.FeaturesAPI_Rotation(self.part.addFeature("Rotation"))
76         FeaturesAPI.FeaturesAPI_Translation(self.part.addFeature("Translation"))
77
78         import CollectionAPI
79         CollectionAPI.CollectionAPI_Group(self.part.addFeature("Group"))
80
81         import PrimitivesAPI
82         PrimitivesAPI.PrimitivesAPI_Box(self.part.addFeature("Box"))
83
84         import ParametersAPI
85         ParametersAPI.ParametersAPI_Parameter(self.part.addFeature("Parameter"))
86
87 #-----------------------------------------------------------------------------
88
89 if __name__ == "__main__":
90     unittest.main()