aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-02-18 14:34:05 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-02-18 14:49:24 -0300
commit97dd19383811a68cde71f9655ca2566517a596c8 (patch)
treefa7a62fa3d648dff27d3937c1cc61e85ee746581 /tests
parentd617892b59a3d9e90b178b87326bd06a00eeac17 (diff)
Adds more reference counting tests for QAbstractTransition class.
Reviewed by Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/qtcore/qabstracttransition_test.py84
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/qtcore/qabstracttransition_test.py b/tests/qtcore/qabstracttransition_test.py
index a45a7d824..510b8ef64 100644
--- a/tests/qtcore/qabstracttransition_test.py
+++ b/tests/qtcore/qabstracttransition_test.py
@@ -53,18 +53,102 @@ class QAbstractTransitionTest(unittest.TestCase):
transition = QEventTransition()
state1 = QState()
refcount1 = getrefcount(state1)
+
transition.setTargetState(state1)
+
self.assertEqual(transition.targetState(), state1)
self.assertEqual(getrefcount(transition.targetState()), refcount1 + 1)
state2 = QState()
refcount2 = getrefcount(state2)
+
transition.setTargetState(state2)
+
self.assertEqual(transition.targetState(), state2)
self.assertEqual(getrefcount(transition.targetState()), refcount2 + 1)
self.assertEqual(getrefcount(state1), refcount1)
del transition
+
+ self.assertEqual(getrefcount(state2), refcount2)
+
+ def testRefCountOfTargetStates(self):
+ transition = QEventTransition()
+ state1 = QState()
+ state2 = QState()
+ states = [state1, state2]
+ refcount1 = getrefcount(state1)
+ refcount2 = getrefcount(state2)
+
+ transition.setTargetStates(states)
+
+ self.assertEqual(transition.targetStates(), states)
+ self.assertEqual(transition.targetState(), state1)
+ self.assertEqual(getrefcount(transition.targetStates()[0]), refcount1 + 1)
+ self.assertEqual(getrefcount(transition.targetStates()[1]), refcount2 + 1)
+
+ del states
+ del transition
+
+ self.assertEqual(getrefcount(state1), refcount1)
+ self.assertEqual(getrefcount(state2), refcount2)
+
+ def testRefCountOfTargetStatesAfterSingleTargetState(self):
+ transition = QEventTransition()
+ state0 = QState()
+ refcount0 = getrefcount(state0)
+
+ transition.setTargetState(state0)
+
+ self.assertEqual(transition.targetState(), state0)
+ self.assertEqual(getrefcount(transition.targetState()), refcount0 + 1)
+
+ state1 = QState()
+ state2 = QState()
+ states = [state1, state2]
+ refcount1 = getrefcount(state1)
+ refcount2 = getrefcount(state2)
+
+ transition.setTargetStates(states)
+
+ self.assertEqual(getrefcount(state0), refcount0)
+ self.assertEqual(transition.targetStates(), states)
+ self.assertEqual(transition.targetState(), state1)
+ self.assertEqual(getrefcount(transition.targetStates()[0]), refcount1 + 1)
+ self.assertEqual(getrefcount(transition.targetStates()[1]), refcount2 + 1)
+
+ del states
+ del transition
+
+ self.assertEqual(getrefcount(state1), refcount1)
+ self.assertEqual(getrefcount(state2), refcount2)
+
+ def testRefCountOfTargetStatesBeforeSingleTargetState(self):
+ transition = QEventTransition()
+ state1 = QState()
+ state2 = QState()
+ states = [state1, state2]
+ refcount1 = getrefcount(state1)
+ refcount2 = getrefcount(state2)
+
+ transition.setTargetStates(states)
+
+ self.assertEqual(transition.targetStates(), states)
+ self.assertEqual(transition.targetState(), state1)
+ self.assertEqual(getrefcount(transition.targetStates()[0]), refcount1 + 1)
+ self.assertEqual(getrefcount(transition.targetStates()[1]), refcount2 + 1)
+
+ state3 = QState()
+ refcount3 = getrefcount(state3)
+
+ transition.setTargetState(state3)
+
+ self.assertEqual(transition.targetState(), state3)
+ self.assertEqual(getrefcount(transition.targetState()), refcount3 + 1)
+
+ del states
+
+ self.assertEqual(getrefcount(state1), refcount1)
self.assertEqual(getrefcount(state2), refcount2)
if __name__ == '__main__':