2 dir= os.getenv("TmpDir")
6 batchmode_geompy.myBuilder._set_UndoLimit(20)
8 # 1st transaction -----------------------------------------
9 batchmode_geompy.myBuilder.NewCommand()
10 # create AttributeSequenceOfInteger
11 #=========================================================
12 A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
14 raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute"
15 A = A._narrow(SALOMEDS.AttributeSequenceOfInteger)
17 raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute"
24 print "First transaction goes on : HasOpenCommand() = ", batchmode_geompy.myBuilder.HasOpenCommand()
25 batchmode_geompy.myBuilder.CommitCommand() #--------------
27 # 2nd transaction ------------------------------------------
28 batchmode_geompy.myBuilder.NewCommand()
31 batchmode_geompy.myBuilder.CommitCommand() #--------------
33 if batchmode_geompy.myBuilder.GetAvailableUndos() == 0:
34 raise RuntimeError, "GetAvailableUndos() = 0 but must not !"
37 print "Wrong length of SequenceOfInteger"
38 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500:
39 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger"
41 file1 = dir + "/test1.hdf"
42 batchmode_geompy.myStudyManager.SaveAs(file1, batchmode_geompy.myStudy)
44 # 1st Undo ---------------------------------------
45 batchmode_geompy.myBuilder.Undo()
46 res, A = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
48 raise RuntimeError, "After first 'undo' can't find AttributeSequenceOfInteger"
50 print "Wrong length of SequenceOfInteger"
51 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 500 or A.Value(4) != 400 or A.Value(5) != 700:
52 print A.Value(1), A.Value(2), A.Value(3), A.Value(4), A.Value(5)
53 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger after the first 'undo'!"
55 file2 = dir + "/test2.hdf"
56 batchmode_geompy.myStudyManager.SaveAs(file2, batchmode_geompy.myStudy)
57 #-------------------------------------------------
58 # 2nd Undo ---------------------------------------
59 batchmode_geompy.myBuilder.Undo()
60 res, attr = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
61 if res !=0 or attr != None :
62 raise RuntimeError, "After the second 'undo' AttributeSequenceOfInteger exists but must not!"
63 file3 = dir + "/test3.hdf"
64 batchmode_geompy.myStudyManager.SaveAs(file3, batchmode_geompy.myStudy)
65 #-------------------------------------------------
67 #make redo twice ---------------------------------
68 if batchmode_geompy.myBuilder.GetAvailableRedos() == 0:
69 raise RuntimeError, "GetAvailableRedos() = 0 but must not !"
70 batchmode_geompy.myBuilder.Redo()
71 batchmode_geompy.myBuilder.Redo()
72 res, A = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
73 if res ==0 or A== None :
74 raise RuntimeError, "AttributeSequenceOfInteger is not found but must be!"
76 print "Wrong length of SequenceOfInteger"
77 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500:
78 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger"
81 #----------------------------------------------------------------------
82 openedStudy=batchmode_geompy.myStudyManager.Open(file1);
84 if openedStudy == None:
85 raise RuntimeError, "Can't open saved study!"
88 father = openedStudy.FindComponent("GEOM")
90 raise RuntimeError, "Geom component is not found! Wrong study is opened."
93 # find AttributeSequenceOfInteger
94 #======================================
96 res,A=father.FindAttribute("AttributeSequenceOfInteger")
97 if res == 0 or A == None:
98 raise RuntimeError, "Error: not found AttributeSequenceOfInteger"
100 A = A._narrow(SALOMEDS.AttributeSequenceOfInteger)
103 print "Wrong length of SequenceOfInteger"
104 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500:
105 print "Wrong value of AttributeSequenceOfInteger"
106 #----------------------------------------------------------------------
107 openedStudy=batchmode_geompy.myStudyManager.Open(file2);
109 if openedStudy == None:
110 raise RuntimeError, "Can't open saved study!"
113 father = openedStudy.FindComponent("GEOM")
115 raise RuntimeError, "Geom component is not found! Wrong study is opened."
118 # find AttributeSequenceOfInteger
119 #======================================
121 res,A=father.FindAttribute("AttributeSequenceOfInteger")
122 if res == 0 or A == None:
123 raise RuntimeError, "Error: not found AttributeSequenceOfInteger"
125 A = A._narrow(SALOMEDS.AttributeSequenceOfInteger)
128 print "Wrong length of SequenceOfInteger"
129 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 500 or A.Value(4) != 400 or A.Value(5) != 700:
130 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger after the first 'undo'!"
132 #----------------------------------------------------------------------
133 openedStudy=batchmode_geompy.myStudyManager.Open(file3);
135 if openedStudy == None:
136 raise RuntimeError, "Can't open saved study!"
139 father = openedStudy.FindComponent("GEOM")
141 raise RuntimeError, "Geom component is not found! Wrong study is opened."
144 # find AttributeSequenceOfInteger
145 #======================================
147 res,A=father.FindAttribute("AttributeSequenceOfInteger")
149 if res!=0 or A != None:
150 raise RuntimeError, " AttributeSequenceOfInteger is found but must not!"