fix document observer classes to allow to run unit tests multiple times
This commit is contained in:
@@ -1388,9 +1388,10 @@ class DocumentObserverCases(unittest.TestCase):
|
||||
|
||||
class Observer():
|
||||
|
||||
signal = []
|
||||
parameter = []
|
||||
parameter2 = []
|
||||
def __init__(self):
|
||||
self.signal = []
|
||||
self.parameter = []
|
||||
self.parameter2 = []
|
||||
|
||||
def slotCreatedDocument(self, doc):
|
||||
self.signal.append('DocCreated');
|
||||
@@ -1492,9 +1493,10 @@ class DocumentObserverCases(unittest.TestCase):
|
||||
|
||||
class GuiObserver():
|
||||
|
||||
signal = []
|
||||
parameter = []
|
||||
parameter2 = []
|
||||
def __init__(self):
|
||||
self.signal = []
|
||||
self.parameter = []
|
||||
self.parameter2 = []
|
||||
|
||||
def slotCreatedDocument(self, doc):
|
||||
self.signal.append('DocCreated');
|
||||
@@ -1573,88 +1575,88 @@ class DocumentObserverCases(unittest.TestCase):
|
||||
# testing document level signals
|
||||
self.Doc1 = FreeCAD.newDocument("Observer1");
|
||||
if FreeCAD.GuiUp:
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocActivated')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocCreated')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocBeforeChange')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.failUnless(self.Obs.parameter2.pop(0) == 'Label')
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocChanged')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.failUnless(self.Obs.parameter2.pop(0) == 'Label')
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocRelabled')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocActivated')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocCreated')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocBeforeChange')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.assertEqual(self.Obs.parameter2.pop(0), 'Label')
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocChanged')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.assertEqual(self.Obs.parameter2.pop(0), 'Label')
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocRelabled')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
self.Doc2 = FreeCAD.newDocument("Observer2");
|
||||
if FreeCAD.GuiUp:
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocActivated')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocCreated')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocBeforeChange')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.failUnless(self.Obs.parameter2.pop(0) == 'Label')
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocChanged')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.failUnless(self.Obs.parameter2.pop(0) == 'Label')
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocRelabled')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocActivated')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocCreated')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocBeforeChange')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.assertEqual(self.Obs.parameter2.pop(0), 'Label')
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocChanged')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.assertEqual(self.Obs.parameter2.pop(0), 'Label')
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocRelabled')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc2)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
FreeCAD.setActiveDocument('Observer1')
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocActivated')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc1)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocActivated')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc1)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
#undo/redo is not enabled in cmd line mode by default
|
||||
self.Doc2.UndoMode = 1
|
||||
|
||||
self.Doc2.openTransaction('test')
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocOpenTransaction')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.failUnless(self.Obs.parameter2.pop() == 'test')
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocOpenTransaction')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.assertEqual(self.Obs.parameter2.pop(), 'test')
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
self.Doc2.commitTransaction()
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocCommitTransaction')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocCommitTransaction')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
self.Doc2.openTransaction('test2')
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocOpenTransaction')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.failUnless(self.Obs.parameter2.pop() == 'test2')
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocOpenTransaction')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.assertEqual(self.Obs.parameter2.pop(), 'test2')
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
self.Doc2.abortTransaction()
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocAbortTransaction')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocAbortTransaction')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
self.Doc2.undo()
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocUndo')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocUndo')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
self.Doc2.redo()
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocRedo')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocRedo')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
self.Doc1.Comment = 'test comment'
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocBeforeChange')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.failUnless(self.Obs.parameter2.pop(0) == 'Comment')
|
||||
self.failUnless(self.Obs.signal.pop(0) == 'DocChanged')
|
||||
self.failUnless(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.failUnless(self.Obs.parameter2.pop(0) == 'Comment')
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocBeforeChange')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.assertEqual(self.Obs.parameter2.pop(0), 'Comment')
|
||||
self.assertEqual(self.Obs.signal.pop(0), 'DocChanged')
|
||||
self.assertTrue(self.Obs.parameter.pop(0) is self.Doc1)
|
||||
self.assertEqual(self.Obs.parameter2.pop(0), 'Comment')
|
||||
|
||||
FreeCAD.closeDocument(self.Doc2.Name)
|
||||
self.failUnless(self.Obs.signal.pop() == 'DocDeleted')
|
||||
self.failUnless(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.failUnless(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocDeleted')
|
||||
self.assertTrue(self.Obs.parameter.pop() is self.Doc2)
|
||||
self.assertTrue(not self.Obs.signal and not self.Obs.parameter and not self.Obs.parameter2)
|
||||
|
||||
FreeCAD.closeDocument(self.Doc1.Name)
|
||||
self.assertEqual(self.Obs.signal.pop(), 'DocDeleted')
|
||||
|
||||
Reference in New Issue
Block a user