Links ensure uncyclic graph and correct groups

This commit is contained in:
Stefan Tröger
2017-02-10 06:55:19 +01:00
committed by wmayer
parent f0f7125a11
commit 0487b66738
4 changed files with 106 additions and 9 deletions

View File

@@ -328,10 +328,6 @@ class DocumentBasicCases(unittest.TestCase):
L1.touch()
self.failUnless(self.Doc.recompute()==1)
self.failUnless((7, 5, 4, 1, 2, 1)==(L1.ExecCount,L2.ExecCount,L3.ExecCount,L4.ExecCount,L5.ExecCount,L6.ExecCount))
L6.Link = L1 # create a circular dependency
self.failUnless(self.Doc.recompute()==-1)
L6.Link = None # resolve the circular dependency
self.failUnless(self.Doc.recompute()==3)
self.Doc.removeObject(L1.Name)
self.Doc.removeObject(L2.Name)
@@ -427,6 +423,7 @@ class DocumentSaveRestoreCases(unittest.TestCase):
self.Doc = FreeCAD.newDocument("SaveRestoreTests")
L1 = self.Doc.addObject("App::FeatureTest","Label_1")
L2 = self.Doc.addObject("App::FeatureTest","Label_2")
L3 = self.Doc.addObject("App::FeatureTest","Label_3")
self.TempPath = tempfile.gettempdir()
FreeCAD.Console.PrintLog( ' Using temp path: ' + self.TempPath + '\n')
@@ -437,9 +434,9 @@ class DocumentSaveRestoreCases(unittest.TestCase):
self.Doc.Label_1.TypeTransient = 4712
# setup Linking
self.Doc.Label_1.Link = self.Doc.Label_2
self.Doc.Label_2.Link = self.Doc.Label_1
self.Doc.Label_2.Link = self.Doc.Label_3
self.Doc.Label_1.LinkSub = (self.Doc.Label_2,["Sub1","Sub2"])
self.Doc.Label_2.LinkSub = (self.Doc.Label_1,["Sub3","Sub4"])
self.Doc.Label_2.LinkSub = (self.Doc.Label_3,["Sub3","Sub4"])
# save the document
self.Doc.saveAs(SaveName)
FreeCAD.closeDocument("SaveRestoreTests")
@@ -448,9 +445,9 @@ class DocumentSaveRestoreCases(unittest.TestCase):
self.failUnless(self.Doc.Label_2.Integer == 4711)
# test Linkage
self.failUnless(self.Doc.Label_1.Link == self.Doc.Label_2)
self.failUnless(self.Doc.Label_2.Link == self.Doc.Label_1)
self.failUnless(self.Doc.Label_2.Link == self.Doc.Label_3)
self.failUnless(self.Doc.Label_1.LinkSub == (self.Doc.Label_2,["Sub1","Sub2"]))
self.failUnless(self.Doc.Label_2.LinkSub == (self.Doc.Label_1,["Sub3","Sub4"]))
self.failUnless(self.Doc.Label_2.LinkSub == (self.Doc.Label_3,["Sub3","Sub4"]))
# do NOT save transient properties
self.failUnless(self.Doc.Label_1.TypeTransient == 4711)
self.failUnless(self.Doc == FreeCAD.getDocument(self.Doc.Name))
@@ -871,6 +868,7 @@ class UndoRedoCases(unittest.TestCase):
#to test: try add obj to second group, once by addObject, once by .Group = []
#test set links over geofeaturegroup borders
def tearDown(self):