From a8a6c6572f0343aefd66741282e92f5831cdb48a Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 3 Mar 2019 13:57:24 +0100 Subject: [PATCH] fix document observer classes to allow to run unit tests multiple times --- src/Mod/Test/Document.py | 130 ++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/src/Mod/Test/Document.py b/src/Mod/Test/Document.py index b1db5b5878..be84d3a548 100644 --- a/src/Mod/Test/Document.py +++ b/src/Mod/Test/Document.py @@ -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')