Salome HOME
Issue #1662: implementation of Recover feature.
[modules/shaper.git] / src / FeaturesPlugin / Test / TestRecover.py
1 # Test made with high level API
2 # -----------------------------
3
4 import model
5
6 # Initialisation
7
8 model.begin()
9 mypartset = model.moduleDocument()
10
11
12 # Creating a new Part, two circles, extrusions on them and Boolean CUT
13
14 mypart = model.addPart(mypartset).document()
15
16 sk1 = model.addSketch(mypart, model.defaultPlane("XOY"))
17 c1 = sk1.addCircle(0, 0, 100)
18 bigcyl = model.addExtrusion(mypart, sk1.selectFace(), 100)
19
20 sk2 = model.addSketch(mypart, model.defaultPlane("XOY"))
21 c2 = sk2.addCircle(20, 30, 30)
22 smallcyl = model.addExtrusion(mypart, sk2.selectFace(), 150)
23
24 cut = model.addCut(mypart, bigcyl.result(), smallcyl.result())
25
26 model.do()
27
28 # check bodies number is 1: only Boolean result
29 assert(mypart.size("Bodies") == 1)
30
31 model.addRecover(mypart, cut, smallcyl.result())
32
33 model.end()
34
35 # check that one is recovered
36 assert(mypart.size("Bodies") == 2)
37
38 model.undo()
39
40 # check bodies number is 1: recover is canceled
41 assert(mypart.size("Bodies") == 1)
42
43
44 # check persistent flag of recover: never concealed
45 model.begin()
46
47 recover = model.addRecover(mypart, cut, smallcyl.result(), True)
48 assert(mypart.size("Bodies") == 2)
49 sk3 = model.addSketch(mypart, model.defaultPlane("XOY"))
50 c3 = sk3.addCircle(0, 0, 90)
51 big2 = model.addExtrusion(mypart, sk3.selectFace(), 110)
52
53 cut2 = model.addCut(mypart, big2.result(), smallcyl.result())
54
55 model.end()
56
57 # two booleans and small cylinder
58 assert(mypart.size("Bodies") == 3)
59
60
61 # make the flag as not-persistent => cylinder must be disappeared
62 model.begin()
63 recover.setIsPersistent(False)
64 model.end()
65 # only two booleans
66 assert(mypart.size("Bodies") == 2)