]> SALOME platform Git repositories - modules/shaper.git/blob - src/PythonAPI/Test/TestFeaturesExtrusion.py
Salome HOME
Added python dump checking for every unit test where it is useful.
[modules/shaper.git] / src / PythonAPI / Test / TestFeaturesExtrusion.py
1 import unittest
2
3 import ModelAPI
4
5 import model
6
7 #-----------------------------------------------------------------------------
8 # Fixtures
9
10 class FeaturesAddExtrusionFixture(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         model.reset()
23
24
25 class FeaturesExtrusionFixture(FeaturesAddExtrusionFixture):
26
27     def setUp(self):
28         FeaturesAddExtrusionFixture.setUp(self)
29         # Create extrusion
30         sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
31         circle = sketch.addCircle(0, 0, 10)
32         model.do()
33
34         base = sketch.selectFace()
35         self.extrusion = model.addExtrusion(self.part, base, 10, 0)
36         model.do()
37
38     def tearDown(self):
39         FeaturesAddExtrusionFixture.tearDown(self)
40
41 #-----------------------------------------------------------------------------
42 # TestCases
43
44 class FeaturesAddExtrusionTestCase(FeaturesAddExtrusionFixture):
45
46     def test_add_extrusion_by_face_and_size(self):
47         sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
48         circle = sketch.addCircle(0, 0, 10)
49         model.do()
50
51         base = sketch.selectFace()
52         extrusion = model.addExtrusion(self.part, base, 10, 0)
53         model.do()
54
55         self.assertEqual(extrusion.creationMethod().value(), "BySizes")
56         self.assertEqual(extrusion.toSize().value(), 10)
57         self.assertEqual(extrusion.fromSize().value(), 0)
58         self.assertEqual(extrusion.toObject().context(), None)
59         self.assertEqual(extrusion.toOffset().value(), 0)
60         self.assertEqual(extrusion.fromObject().context(), None)
61         self.assertEqual(extrusion.fromOffset().value(), 0)
62
63     def test_add_extrusion_by_face_and_planes(self):
64         # base
65         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
66         base_circle = base_sketch.addCircle(0, 0, 10)
67         # to
68         to_plane = model.defaultPlane("XOY")
69         to_plane.origin().setZ(10)
70         to_sketch = model.addSketch(self.part, to_plane)
71         to_circle = to_sketch.addCircle(0, 0, 10)
72         # from
73         from_plane = model.defaultPlane("XOY")
74         from_plane.origin().setZ(-10)
75         from_sketch = model.addSketch(self.part, from_plane)
76         from_circle = from_sketch.addCircle(0, 0, 10)
77
78         model.do()
79
80         base = base_sketch.selectFace()
81         to_object = to_sketch.selectFace()[0]
82         from_object = from_sketch.selectFace()[0]
83         extrusion = model.addExtrusion(self.part, base,
84                                        to_object, 15,
85                                        from_object, 20)
86
87         self.assertEqual(extrusion.creationMethod().value(), "ByPlanesAndOffsets")
88         self.assertEqual(extrusion.toSize().value(), 0)
89         self.assertEqual(extrusion.fromSize().value(), 0)
90 #         self.assertEqual(extrusion.getToObject().context(),
91 #                          to_sketch.result())
92         self.assertEqual(extrusion.toOffset().value(), 15)
93 #         self.assertEqual(extrusion.getFromObject().context(),
94 #                          from_sketch.result())
95         self.assertEqual(extrusion.fromOffset().value(), 20)
96
97
98 class FeaturesExtrusionTestCase(FeaturesExtrusionFixture):
99
100     def test_extrusion_feature_calls(self):
101         # call method of the feature
102         self.assertEqual(self.extrusion.getKind(), "Extrusion")
103
104     def test_extrusion_get_attribute(self):
105         # call method of the feature
106         self.assertTrue(isinstance(self.extrusion.baseObjects(),
107                                    ModelAPI.ModelAPI_AttributeSelectionList))
108         self.assertTrue(isinstance(self.extrusion.creationMethod(),
109                                    ModelAPI.ModelAPI_AttributeString))
110         self.assertTrue(isinstance(self.extrusion.toSize(),
111                                    ModelAPI.ModelAPI_AttributeDouble))
112         self.assertTrue(isinstance(self.extrusion.fromSize(),
113                                    ModelAPI.ModelAPI_AttributeDouble))
114         self.assertTrue(isinstance(self.extrusion.toObject(),
115                                    ModelAPI.ModelAPI_AttributeSelection))
116         self.assertTrue(isinstance(self.extrusion.toOffset(),
117                                    ModelAPI.ModelAPI_AttributeDouble))
118         self.assertTrue(isinstance(self.extrusion.fromObject(),
119                                    ModelAPI.ModelAPI_AttributeSelection))
120         self.assertTrue(isinstance(self.extrusion.fromOffset(),
121                                    ModelAPI.ModelAPI_AttributeDouble))
122
123     def test_extrusion_set_sizes(self):
124         self.extrusion.setSizes(15, 20)
125         self.assertEqual(self.extrusion.creationMethod().value(), "BySizes")
126         self.assertEqual(self.extrusion.toSize().value(), 15)
127         self.assertEqual(self.extrusion.fromSize().value(), 20)
128         self.assertEqual(self.extrusion.toObject().context(), None)
129         self.assertEqual(self.extrusion.toOffset().value(), 0)
130         self.assertEqual(self.extrusion.fromObject().context(), None)
131         self.assertEqual(self.extrusion.fromOffset().value(), 0)
132
133     def test_extrusion_set_planes_and_offsets(self):
134         # to
135         to_plane = model.defaultPlane("XOY")
136         to_plane.origin().setZ(10)
137         to_sketch = model.addSketch(self.part, to_plane)
138         to_circle = to_sketch.addCircle(0, 0, 10)
139         # from
140         from_plane = model.defaultPlane("XOY")
141         from_plane.origin().setZ(-10)
142         from_sketch = model.addSketch(self.part, from_plane)
143         from_circle = from_sketch.addCircle(0, 0, 10)
144
145         model.do()
146
147         to_object = to_sketch.selectFace()[0]
148         from_object = from_sketch.selectFace()[0]
149         self.extrusion.setPlanesAndOffsets(to_object, 15, from_object, 20)
150
151
152 if __name__ == "__main__":
153     unittest.main()