diff options
Diffstat (limited to 'tests/signals/signal_emission_test.py')
-rw-r--r-- | tests/signals/signal_emission_test.py | 111 |
1 files changed, 2 insertions, 109 deletions
diff --git a/tests/signals/signal_emission_test.py b/tests/signals/signal_emission_test.py index 57b71948f..9c9f6139a 100644 --- a/tests/signals/signal_emission_test.py +++ b/tests/signals/signal_emission_test.py @@ -8,115 +8,7 @@ import unittest from PySide.QtCore import QObject, SIGNAL, SLOT, QProcess, QTimeLine from PySide.QtCore import QTimer, QThread -try: - from PySide.QtGui import QSpinBox, QPushButton -except ImportError: - QSpinBox = object - QPushButton = object - QApplication = object - -from helper import BasicPySlotCase, UsesQApplication, UsesQCoreApplication -from helper.decorators import requires - -@requires('PySide.QtGui') -class ButtonPySlot(UsesQApplication, BasicPySlotCase): - """Tests the connection of python slots to QPushButton signals""" - - def setUp(self): - super(ButtonPySlot, self).setUp() - - def tearDown(self): - super(ButtonPySlot, self).setUp() - - def testButtonClicked(self): - """Connection of a python slot to QPushButton.clicked()""" - button = QPushButton('Mylabel') - QObject.connect(button, SIGNAL('clicked()'), self.cb) - self.args = tuple() - button.emit(SIGNAL('clicked()')) - self.assert_(self.called) - - def testButtonClick(self): - """Indirect qt signal emission using the QPushButton.click() method """ - button = QPushButton('label') - QObject.connect(button, SIGNAL('clicked()'), self.cb) - self.args = tuple() - button.click() - self.assert_(self.called) - - -@requires('PySide.QtGui') -class SpinBoxPySlot(UsesQApplication, BasicPySlotCase): - """Tests the connection of python slots to QSpinBox signals""" - - def setUp(self): - super(SpinBoxPySlot, self).setUp() - self.spin = QSpinBox() - - def tearDown(self): - del self.spin - super(SpinBoxPySlot, self).tearDown() - - def testSpinBoxValueChanged(self): - """Connection of a python slot to QSpinBox.valueChanged(int)""" - QObject.connect(self.spin, SIGNAL('valueChanged(int)'), self.cb) - self.args = [3] - self.spin.emit(SIGNAL('valueChanged(int)'), *self.args) - self.assert_(self.called) - - def testSpinBoxValueChangedImplicit(self): - """Indirect qt signal emission using QSpinBox.setValue(int)""" - QObject.connect(self.spin, SIGNAL('valueChanged(int)'), self.cb) - self.args = [42] - self.spin.setValue(self.args[0]) - self.assert_(self.called) - - def atestSpinBoxValueChangedFewArgs(self): - """Emission of signals with fewer arguments than needed""" - # XXX: PyQt4 crashes on the assertRaises - QObject.connect(self.spin, SIGNAL('valueChanged(int)'), self.cb) - self.args = (554,) - self.assertRaises(TypeError, self.spin.emit, SIGNAL('valueChanged(int)')) - -@requires('PySide.QtGui') -class QSpinBoxQtSlots(UsesQApplication): - """Tests the connection to QSpinBox qt slots""" - - qapplication = True - - def testSetValueIndirect(self): - """Indirect signal emission: QSpinBox using valueChanged(int)/setValue(int)""" - spinSend = QSpinBox() - spinRec = QSpinBox() - - spinRec.setValue(5) - - QObject.connect(spinSend, SIGNAL('valueChanged(int)'), spinRec, SLOT('setValue(int)')) - self.assertEqual(spinRec.value(), 5) - spinSend.setValue(3) - self.assertEqual(spinRec.value(), 3) - self.assertEqual(spinSend.value(), 3) - - def testSetValue(self): - """Direct signal emission: QSpinBox using valueChanged(int)/setValue(int)""" - spinSend = QSpinBox() - spinRec = QSpinBox() - - spinRec.setValue(5) - spinSend.setValue(42) - - QObject.connect(spinSend, SIGNAL('valueChanged(int)'), spinRec, SLOT('setValue(int)')) - self.assertEqual(spinRec.value(), 5) - self.assertEqual(spinSend.value(), 42) - spinSend.emit(SIGNAL('valueChanged(int)'), 3) - - self.assertEqual(spinRec.value(), 3) - #Direct emission shouldn't change the value of the emitter - self.assertEqual(spinSend.value(), 42) - - spinSend.emit(SIGNAL('valueChanged(int)'), 66) - self.assertEqual(spinRec.value(), 66) - self.assertEqual(spinSend.value(), 42) +from helper import BasicPySlotCase, UsesQCoreApplication class ArgsOnEmptySignal(UsesQCoreApplication): @@ -191,6 +83,7 @@ class CppSignalsToCppSlots(UsesQCoreApplication): thread.start() self.app.exec_() + thread.exit(0) thread.wait() new_dir = timeline.direction() |