Salome HOME
CPP API for FeaturesPlugin_Group
[modules/shaper.git] / src / PythonAPI / Test / TestFeatures.py
1 import unittest
2
3 import ModelAPI
4
5 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         model.reset()
22
23 #-----------------------------------------------------------------------------
24 # TestCases
25
26 class FeaturesTestCase(FeaturesFixture):
27
28     def test_assert_error_on_empty_args(self):
29         features = [
30             # Implemented in C++, add* without arguments doesn't exist
31             # "addPoint", "addPlane",
32             # "addImport", "exportToFile",
33
34             "addAxis",
35             "addCut", "addFuse", "addCommon",
36             "addExtrusion",
37             # "addExtrusionCut", "addExtrusionFuse",
38             "addRevolution",
39             # "addRevolutionCut", "addRevolutionFuse",
40             "addPlacement", "addRotation", "addTranslation",
41             "addGroup",
42             "addParameter",
43             ]
44         for name in features:
45             try:
46                 with self.assertRaises(AssertionError):
47                     feature = getattr(model, name)(self.part)
48             except AssertionError as e:
49                 self.fail("%s does not check empty args" % name)
50
51     def test_addPoint(self):
52         model.addPoint(self.part, 10, "20", "x + 30")
53
54     def test_initialize_without_attributes(self):
55         import ConstructionAPI
56         model.construction.axis.Axis(self.part.addFeature("Axis"))
57         ConstructionAPI.ConstructionAPI_Plane(self.part.addFeature("Plane"))
58         ConstructionAPI.ConstructionAPI_Point(self.part.addFeature("Point"))
59
60         import ExchangeAPI
61         ExchangeAPI.ExchangeAPI_Import(self.part.addFeature("Import"))
62         ExchangeAPI.ExchangeAPI_Export(self.part.addFeature("Export"))
63
64         import FeaturesAPI
65         FeaturesAPI.FeaturesAPI_Boolean(self.part.addFeature("Boolean"))
66         model.features.extrusion.Extrusion(self.part.addFeature("Extrusion"))
67         # model.features.extrusion_boolean.ExtrusionBoolean(self.part.addFeature("ExtrusionCut"))
68         # model.features.extrusion_boolean.ExtrusionBoolean(self.part.addFeature("ExtrusionFuse"))
69         model.features.revolution.Revolution(self.part.addFeature("Revolution"))
70         # model.features.revolution_boolean.RevolutionBoolean(self.part.addFeature("RevolutionCut"))
71         # model.features.revolution_boolean.RevolutionBoolean(self.part.addFeature("RevolutionFuse"))
72         FeaturesAPI.FeaturesAPI_Placement(self.part.addFeature("Placement"))
73         FeaturesAPI.FeaturesAPI_Rotation(self.part.addFeature("Rotation"))
74         FeaturesAPI.FeaturesAPI_Translation(self.part.addFeature("Translation"))
75         FeaturesAPI.FeaturesAPI_Group(self.part.addFeature("Group"))
76
77         model.parameter.Parameter(self.part.addFeature("Parameter"))
78
79 #-----------------------------------------------------------------------------
80
81 if __name__ == "__main__":
82     unittest.main()