]> SALOME platform Git repositories - modules/shaper.git/blob - src/PythonAPI/Test/TestFeaturesRevolution.py
Salome HOME
Fix TestFeaturesRevolution
[modules/shaper.git] / src / PythonAPI / Test / TestFeaturesRevolution.py
1 import unittest
2
3 import ModelAPI
4
5 import model
6
7 #-----------------------------------------------------------------------------
8 # Fixtures
9
10 class FeaturesAddRevolutionFixture(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 class FeaturesRevolutionFixture(FeaturesAddRevolutionFixture):
25
26     def setUp(self):
27         FeaturesAddRevolutionFixture.setUp(self)
28         # Create revolution
29         # base
30         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
31         circle = base_sketch.addCircle(0, 0, 10)
32
33         model.do()
34
35         base = base_sketch.selectFace()
36         axis_point1 = model.addPoint(self.part, 20, -10, 0).result()
37         axis_point2 = model.addPoint(self.part, 20, 10, 0).result()
38         axis_object = model.addAxis(self.part, axis_point1[0], axis_point2[0]).result()
39
40         self.revolution = model.addRevolution(self.part, base, axis_object[0],
41                                               0, 180)
42
43         model.do()
44
45     def tearDown(self):
46         FeaturesAddRevolutionFixture.tearDown(self)
47
48 #-----------------------------------------------------------------------------
49 # TestCases
50
51 class FeaturesAddRevolutionTestCase(FeaturesAddRevolutionFixture):
52
53     def test_add_revolution_by_face_and_angles(self):
54         # base
55         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
56         circle = base_sketch.addCircle(0, 0, 10)
57
58         model.do()
59
60         base = base_sketch.selectFace()
61         axis_point1 = model.addPoint(self.part, 20, -10, 0).result()
62         axis_point2 = model.addPoint(self.part, 20, 10, 0).result()
63         axis_object = model.addAxis(self.part, axis_point1[0], axis_point2[0]).result()
64
65         revolution = model.addRevolution(self.part, base, axis_object[0],
66                                          0, 180)
67
68         self.assertEqual(revolution.creationMethod().value(), "ByAngles")
69         self.assertEqual(revolution.toAngle().value(), 0)
70         self.assertEqual(revolution.fromAngle().value(), 180)
71         self.assertEqual(revolution.toObject().context(), None)
72         self.assertEqual(revolution.toOffset().value(), 0)
73         self.assertEqual(revolution.fromObject().context(), None)
74         self.assertEqual(revolution.fromOffset().value(), 0)
75
76     def test_add_revolution_by_face_and_planes(self):
77         # base
78         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
79         base_circle = base_sketch.addCircle(0, 0, 10)
80         # to
81         to_plane = model.defaultPlane("XOY")
82         to_plane.origin().setZ(10)
83         to_sketch = model.addSketch(self.part, to_plane)
84         to_circle = to_sketch.addCircle(0, 0, 10)
85         # from
86         from_plane = model.defaultPlane("XOY")
87         from_plane.origin().setZ(-10)
88         from_sketch = model.addSketch(self.part, from_plane)
89         from_circle = from_sketch.addCircle(0, 0, 10)
90
91         model.do()
92
93         base = base_sketch.selectFace()
94         axis_point1 = model.addPoint(self.part, 20, -10, 0).result()
95         axis_point2 = model.addPoint(self.part, 20, 10, 0).result()
96         axis_object = model.addAxis(self.part, axis_point1[0], axis_point2[0]).result()
97         to_obejct = to_sketch.selectFace()[0]
98         from_object = from_sketch.selectFace()[0]
99
100         revolution = model.addRevolution(self.part, base, axis_object[0],
101                                          to_obejct, 15,
102                                          from_object, 20)
103
104         self.assertEqual(revolution.creationMethod().value(), "ByPlanesAndOffsets")
105         self.assertEqual(revolution.toAngle().value(), 0)
106         self.assertEqual(revolution.fromAngle().value(), 0)
107 #         self.assertEqual(revolution.getToObject().context(),
108 #                          to_sketch.result())
109         self.assertEqual(revolution.toOffset().value(), 15)
110 #         self.assertEqual(revolution.getFromObject().context(),
111 #                          from_sketch.result())
112         self.assertEqual(revolution.fromOffset().value(), 20)
113
114
115 class FeaturesRevolutionTestCase(FeaturesRevolutionFixture):
116
117     def test_revolution_feature_calls(self):
118         # call method of the feature
119         self.assertEqual(self.revolution.getKind(), "Revolution")
120
121     def test_revolution_get_attribute(self):
122         # call method of the feature
123         self.assertTrue(isinstance(self.revolution.baseObjects(),
124                                    ModelAPI.ModelAPI_AttributeSelectionList))
125         self.assertTrue(isinstance(self.revolution.axis(),
126                                    ModelAPI.ModelAPI_AttributeSelection))
127         self.assertTrue(isinstance(self.revolution.creationMethod(),
128                                    ModelAPI.ModelAPI_AttributeString))
129         self.assertTrue(isinstance(self.revolution.toAngle(),
130                                    ModelAPI.ModelAPI_AttributeDouble))
131         self.assertTrue(isinstance(self.revolution.fromAngle(),
132                                    ModelAPI.ModelAPI_AttributeDouble))
133         self.assertTrue(isinstance(self.revolution.toObject(),
134                                    ModelAPI.ModelAPI_AttributeSelection))
135         self.assertTrue(isinstance(self.revolution.toOffset(),
136                                    ModelAPI.ModelAPI_AttributeDouble))
137         self.assertTrue(isinstance(self.revolution.fromObject(),
138                                    ModelAPI.ModelAPI_AttributeSelection))
139         self.assertTrue(isinstance(self.revolution.fromOffset(),
140                                    ModelAPI.ModelAPI_AttributeDouble))
141
142     def test_revolution_set_angles(self):
143         self.revolution.setAngles(90, 270)
144         self.assertEqual(self.revolution.creationMethod().value(), "ByAngles")
145         self.assertEqual(self.revolution.toAngle().value(), 90)
146         self.assertEqual(self.revolution.fromAngle().value(), 270)
147         self.assertEqual(self.revolution.toObject().context(), None)
148         self.assertEqual(self.revolution.toOffset().value(), 0)
149         self.assertEqual(self.revolution.fromObject().context(), None)
150         self.assertEqual(self.revolution.fromOffset().value(), 0)
151
152     def test_revolution_set_planes_and_offsets(self):
153         # base
154         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
155         base_circle = base_sketch.addCircle(0, 0, 10)
156         # to
157         to_plane = model.defaultPlane("XOY")
158         to_plane.origin().setZ(10)
159         to_sketch = model.addSketch(self.part, to_plane)
160         to_circle = to_sketch.addCircle(0, 0, 10)
161         # from
162         from_plane = model.defaultPlane("XOY")
163         from_plane.origin().setZ(-10)
164         from_sketch = model.addSketch(self.part, from_plane)
165         from_circle = from_sketch.addCircle(0, 0, 10)
166
167         model.do()
168
169         base = base_sketch.selectFace()
170         axis_point1 = model.addPoint(self.part, 20, -10, 0).result()
171         axis_point2 = model.addPoint(self.part, 20, 10, 0).result()
172         axis_object = model.addAxis(self.part, axis_point1[0], axis_point2[0]).result()
173         to_obejct = to_sketch.selectFace()[0]
174         from_object = from_sketch.selectFace()[0]
175
176         self.revolution.setPlanesAndOffsets(to_obejct, 15, from_object, 20)
177
178         self.assertEqual(self.revolution.creationMethod().value(), "ByPlanesAndOffsets")
179         # self.assertEqual(self.revolution.toAngle().value(), 0)
180         # self.assertEqual(self.revolution.fromAngle().value(), 0)
181 #         self.assertEqual(self.revolution.getToObject().context(), None)
182         self.assertEqual(self.revolution.toOffset().value(), 15)
183 #         self.assertEqual(self.revolution.getFromObject().context(), None)
184         self.assertEqual(self.revolution.fromOffset().value(), 20)
185
186
187 if __name__ == "__main__":
188     unittest.main()