def testIt(self): global called called = False o = QObject() o.connect(o, SIGNAL("ASignal"), functools.partial(someSlot, "partial ..")) o.emit(SIGNAL("ASignal")) self.assertTrue(called)
def testSharedSignalEmission(self): o = QObject() m = MyObject() o.connect(SIGNAL("foo2()"), m.mySlot) m.connect(SIGNAL("foo2()"), m.mySlot) o.emit(SIGNAL("foo2()")) self.assertEqual(m._slotCalledCount, 1) del o m.emit(SIGNAL("foo2()")) self.assertEqual(m._slotCalledCount, 2)
def testDisconnectCleanup(self): for c in range(MAX_LOOPS): self._count = 0 self._senders = [] for i in range(MAX_OBJECTS): o = QObject() QObject.connect(o, SIGNAL("fire()"), lambda: self.myCB()) self._senders.append(o) o.emit(SIGNAL("fire()")) self.assertEqual(self._count, MAX_OBJECTS) #delete all senders will disconnect the signals self._senders = []
class TestSignalsBlocked(unittest.TestCase): '''Test case to check if the signals are really blocked''' def setUp(self): #Set up the basic resources needed self.obj = QObject() self.args = tuple() self.called = False def tearDown(self): #Delete used resources del self.obj del self.args def callback(self, *args): #Default callback if args == self.args: self.called = True else: raise TypeError("Invalid arguments") def testShortCircuitSignals(self): #Blocking of Python short-circuit signals QObject.connect(self.obj, SIGNAL('mysignal'), self.callback) self.obj.emit(SIGNAL('mysignal')) self.assert_(self.called) self.called = False self.obj.blockSignals(True) self.obj.emit(SIGNAL('mysignal')) self.assert_(not self.called) def testPythonSignals(self): #Blocking of Python typed signals QObject.connect(self.obj, SIGNAL('mysignal(int,int)'), self.callback) self.args = (1, 3) self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args) self.assert_(self.called) self.called = False self.obj.blockSignals(True) self.obj.emit(SIGNAL('mysignal(int,int)'), *self.args) self.assert_(not self.called)