Salome HOME
Merge branch 'Dev_2.1.0' of salome:modules/shaper into Dev_2.1.0
[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             "addPoint", "addAxis", "addPlane",
31             "addImport", "exportToFile",
32             "addAddition", "addSubtraction", "addIntersection",
33             "addExtrusion", "addExtrusionCut", "addExtrusionFuse", "addExtrusionSketch",
34             "addRevolution", "addRevolutionCut", "addRevolutionFuse", "addRevolutionSketch",
35             "addPlacement", "addRotation", "addTranslation",
36             "addGroup",
37             "addParameter",
38             ]
39         for name in features:
40             try:
41                 with self.assertRaises(AssertionError):
42                     feature = getattr(model, name)(self.part)
43             except AssertionError as e:
44                 self.fail("%s does not check empty args" % name)
45
46     def test_initialize_without_attributes(self):
47         model.construction.axis.Axis(self.part.addFeature("Axis"))
48         model.construction.plane.Plane(self.part.addFeature("Plane"))
49         model.construction.point.Point(self.part.addFeature("Point"))
50
51         model.exchange.Import(self.part.addFeature("Import"))
52         model.exchange.Export(self.part.addFeature("Export"))
53
54         model.features.boolean.Boolean(self.part.addFeature("Boolean"))
55         model.features.extrusion.Extrusion(self.part.addFeature("Extrusion"))
56         model.features.extrusion_boolean.ExtrusionBoolean(self.part.addFeature("ExtrusionCut"))
57         model.features.extrusion_boolean.ExtrusionBoolean(self.part.addFeature("ExtrusionFuse"))
58         model.features.extrusion_sketch.ExtrusionSketch(self.part.addFeature("ExtrusionSketch"))
59         model.features.revolution.Revolution(self.part.addFeature("Revolution"))
60         model.features.revolution_boolean.RevolutionBoolean(self.part.addFeature("RevolutionCut"))
61         model.features.revolution_boolean.RevolutionBoolean(self.part.addFeature("RevolutionFuse"))
62         model.features.revolution_sketch.RevolutionSketch(self.part.addFeature("RevolutionSketch"))
63         model.features.placement.Placement(self.part.addFeature("Placement"))
64         model.features.rotation.Rotation(self.part.addFeature("Rotation"))
65         model.features.translation.Translation(self.part.addFeature("Translation"))
66         model.features.group.Group(self.part.addFeature("Group"))
67
68         model.parameter.Parameter(self.part.addFeature("Parameter"))
69
70 #-----------------------------------------------------------------------------
71
72 if __name__ == "__main__":
73     unittest.main()