diff options
author | Luciano Wolf <luciano.wolf@openbossa.org> | 2010-02-04 10:57:15 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-02-05 11:15:55 -0300 |
commit | 1f9fab648e31df7f8b8396dd9ace08383e29419f (patch) | |
tree | 7989aba40e20da56043fa314f2162cfd999c9aa1 /tests | |
parent | af7a410d23bad9f6d08e0d298db417208ef06e2d (diff) |
Adding test for QAbstractTransition, QAnimationGroup and QStateMachine.
Reviewed by Renato Araújo <renato.filho@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/qtcore/qabstracttransition_test.py | 51 | ||||
-rw-r--r-- | tests/qtcore/qanimationgroup_test.py | 24 | ||||
-rw-r--r-- | tests/qtcore/qstatemachine_test.py | 33 |
3 files changed, 108 insertions, 0 deletions
diff --git a/tests/qtcore/qabstracttransition_test.py b/tests/qtcore/qabstracttransition_test.py new file mode 100644 index 000000000..d7e7f0738 --- /dev/null +++ b/tests/qtcore/qabstracttransition_test.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +import unittest +from PySide.QtCore import QObject, QState, QFinalState, SIGNAL, QCoreApplication, QTimer, QStateMachine, QSignalTransition, QVariant, QParallelAnimationGroup + +def addStates(transition): + sx = QState() + sy = QState() + transition.setTargetStates([sx, sy]) + +def addAnimation(transition): + animation = QParallelAnimationGroup() + transition.addAnimation(animation) + +class QAbstractTransitionTest(unittest.TestCase): + + def testBasic(self): + app = QCoreApplication([]) + + o = QObject() + o.setProperty("text", QVariant("INdT")) + + machine = QStateMachine() + s1 = QState() + s1.assignProperty(o, "text", QVariant("Rocks")) + + s2 = QFinalState() + t = s1.addTransition(o, SIGNAL("change()"), s2) + + self.assertEqual(t.targetStates(), [s2]) + + addStates(t) + self.assertEqual(len(t.targetStates()), 2) + + animation = QParallelAnimationGroup() + t.addAnimation(animation) + + self.assertEqual(t.animations(), [animation]) + + addAnimation(t) + self.assertEqual(t.animations()[0].parent(), None) + + machine.addState(s1) + machine.addState(s2) + machine.setInitialState(s1) + machine.start() + + QTimer.singleShot(100, app.quit) + app.exec_() + +if __name__ == '__main__': + unittest.main() diff --git a/tests/qtcore/qanimationgroup_test.py b/tests/qtcore/qanimationgroup_test.py new file mode 100644 index 000000000..05bd81e10 --- /dev/null +++ b/tests/qtcore/qanimationgroup_test.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +import unittest +from PySide.QtCore import QObject, QState, QFinalState, SIGNAL, QCoreApplication, QTimer, QStateMachine, QSignalTransition, QVariant, QParallelAnimationGroup, QSequentialAnimationGroup, QAnimationGroup + +class QAnimationGroupTest(unittest.TestCase): + + def testBasic(self): + app = QCoreApplication([]) + + panim = QParallelAnimationGroup() + sanim = QSequentialAnimationGroup() + panim.addAnimation(sanim) + + self.assertEqual(sanim.parent(), panim) + + panim.clear() + + self.assertRaises(RuntimeError, lambda :sanim.parent()) + + QTimer.singleShot(100, app.quit) + app.exec_() + +if __name__ == '__main__': + unittest.main() diff --git a/tests/qtcore/qstatemachine_test.py b/tests/qtcore/qstatemachine_test.py new file mode 100644 index 000000000..dd3c16dff --- /dev/null +++ b/tests/qtcore/qstatemachine_test.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +import unittest +from PySide.QtCore import QObject, QState, QFinalState, SIGNAL, QCoreApplication, QTimer, QStateMachine, QSignalTransition, QVariant, QParallelAnimationGroup, QPropertyAnimation + +class QStateMachineTest(unittest.TestCase): + + def cb(self, *args): + self.assertEqual(self.machine.defaultAnimations(), [self.anim]) + + def testBasic(self): + app = QCoreApplication([]) + + self.machine = QStateMachine() + s1 = QState() + s2 = QState() + s3 = QFinalState() + + QObject.connect(self.machine, SIGNAL("started()"), self.cb) + + self.anim = QParallelAnimationGroup() + + self.machine.addState(s1) + self.machine.addState(s2) + self.machine.addState(s3) + self.machine.setInitialState(s1) + self.machine.addDefaultAnimation(self.anim) + self.machine.start() + + QTimer.singleShot(100, app.quit) + app.exec_() + +if __name__ == '__main__': + unittest.main() |