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