]> SALOME platform Git repositories - modules/shaper.git/blob - src/PythonAPI/Test/TestFeaturesExtrusion.py
Salome HOME
7d08ee9010cb68260755a312ed730d689c681879
[modules/shaper.git] / src / PythonAPI / Test / TestFeaturesExtrusion.py
1 import unittest
2 import model
3 import ModelAPI
4
5 #-----------------------------------------------------------------------------
6 # Fixtures
7
8 class FeaturesAddExtrusionFixture(unittest.TestCase):
9
10     def setUp(self):
11         model.begin()
12         # Create part
13         partset = model.moduleDocument()
14         self.part = model.addPart(partset).document()
15         model.do()
16
17     def tearDown(self):
18         model.end()
19         model.reset()
20
21
22 class FeaturesExtrusionFixture(FeaturesAddExtrusionFixture):
23
24     def setUp(self):
25         FeaturesAddExtrusionFixture.setUp(self)
26         # Create extrusion
27         sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
28         circle = sketch.addCircle(0, 0, 10)
29         self.extrusion = model.addExtrusion(self.part,
30                                             sketch.selectFace(circle.result()),
31                                             10, 0)
32         model.do()
33
34     def tearDown(self):
35         FeaturesAddExtrusionFixture.tearDown(self)
36
37 #-----------------------------------------------------------------------------
38 # TestCases
39
40 class FeaturesAddExtrusionTestCase(FeaturesAddExtrusionFixture):
41
42     def test_add_extrusion_no_base(self):
43         try:
44             extrusion = model.addExtrusion(self.part)
45             fail("addExtrusion should assert if base is not None")
46         except AssertionError:
47             pass
48
49     def test_add_extrusion_by_face_and_size(self):
50         sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
51         circle = sketch.addCircle(0, 0, 10)
52         extrusion = model.addExtrusion(self.part,
53                                        sketch.selectFace(circle.result()),
54                                        10, 0)
55
56     def test_add_extrusion_by_face_and_planes(self):
57         # base
58         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
59         base_circle = base_sketch.addCircle(0, 0, 10)
60         base_sketch.selectFace(base_circle.result())
61         # to
62         to_plane = model.defaultPlane("XOY")
63         to_plane.location().setZ(10)
64         to_sketch = model.addSketch(self.part, to_plane)
65         to_circle = to_sketch.addCircle(0, 0, 10)
66         to_sketch.selectFace(to_circle.result())
67         # from
68         from_plane = model.defaultPlane("XOY")
69         from_plane.location().setZ(-10)
70         from_sketch = model.addSketch(self.part, from_plane)
71         from_circle = from_sketch.addCircle(0, 0, 10)
72         from_sketch.selectFace(from_circle.result())
73
74         extrusion = model.addExtrusion(self.part,
75                                        base_sketch,
76                                        to_sketch, 15,
77                                        from_sketch, 20)
78
79
80 class FeaturesExtrusionTestCase(FeaturesExtrusionFixture):
81
82     def test_extrusion_feature_calls(self):
83         # call method of the feature
84         self.assertEqual(self.extrusion.getKind(), "Extrusion")
85
86     def test_extrusion_set_sizes(self):
87         self.extrusion.setSize(15, 20)
88
89     def test_extrusion_set_planes_and_offsets(self):
90         # base
91         base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
92         base_circle = base_sketch.addCircle(0, 0, 10)
93         base_sketch.selectFace(base_circle.result())
94         # to
95         to_plane = model.defaultPlane("XOY")
96         to_plane.location().setZ(10)
97         to_sketch = model.addSketch(self.part, to_plane)
98         to_circle = to_sketch.addCircle(0, 0, 10)
99         to_sketch.selectFace(to_circle.result())
100         # from
101         from_plane = model.defaultPlane("XOY")
102         from_plane.location().setZ(-10)
103         from_sketch = model.addSketch(self.part, from_plane)
104         from_circle = from_sketch.addCircle(0, 0, 10)
105         from_sketch.selectFace(from_circle.result())
106
107         self.extrusion.setPlanesAndOffsets(to_sketch, 15, from_sketch, 20)
108
109
110 if __name__ == "__main__":
111     unittest.main()