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.assertTrue(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.assertTrue(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)'))
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)'))
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)