Ejemplo n.º 1
0
 def testCantConnectMethodTwice(self):
     """Actually testing an implementation limitation..."""
     receiver = Receiver()
     signal = Signal()
     signal.connect(receiver.slot)
     signal.connect(receiver.slot)
     self.assertEqual(len(signal), 1)
Ejemplo n.º 2
0
 def testDisconnect(self):
     receiver = Receiver()
     signal = Signal()
     signal.connect(receiver.slot)
     signal.disconnect(receiver.slot)
     signal()
     self.assertEqual(receiver.count, 0)
     self.assertEqual(len(signal), 0)
Ejemplo n.º 3
0
 def testTwoSlots(self):
     receiver1 = Receiver()
     receiver2 = Receiver()
     signal = Signal()
     signal.connect(receiver1.slot)
     signal.connect(receiver2.slot)
     signal()
     self.assertEqual(receiver1.count, 1)
     self.assertEqual(receiver2.count, 1)
Ejemplo n.º 4
0
 def testSignalWithArguments(self):
     receiver = ReceiverWithArg()
     signal = Signal()
     signal.connect(receiver.slot)
     signal(123)
     self.assertEquals(receiver.count, 123)
Ejemplo n.º 5
0
 def testDisconnectWeakSlot(self):
     receiver = Receiver()
     signal = Signal()
     signal.connect(receiver.slot)
     del receiver
     self.assertEqual(len(signal), 0)
Ejemplo n.º 6
0
 def testOneSlot(self):
     receiver = Receiver()
     signal = Signal()
     signal.connect(receiver.slot)
     signal()
     self.assertEqual(receiver.count, 1)
Ejemplo n.º 7
0
 def testSignalLen(self):
     receiver = Receiver()
     signal = Signal()
     self.assertEqual(len(signal), 0)
     signal.connect(receiver.slot)
     self.assertEqual(len(signal), 1)
Ejemplo n.º 8
0
class TestSignal(unittest.TestCase):
  def setUp(self):
    self.sig_function = Signal()
    self.sig_method = Signal()
    self.sig_function.connect(onSignalFunction)

    global signal_calls
    signal_calls = []

  def test_signal_function(self):
    self.sig_function('sender1', 'data1')
    self.assertEqual(1, len(signal_calls))

    self.assertEqual( 'function', signal_calls[0][0] )
    self.assertEqual( 'sender1', signal_calls[0][1] )
    self.assertEqual( 'data1', signal_calls[0][2] )


  def test_signal_method(self):
    a = A()
    self.sig_method.connect(a.onSignalMethod)

    self.sig_method('sender1', 'data1')

    self.assertEqual(1, len(signal_calls))
    self.assertEqual( 'A::onSignalMethod',  signal_calls[0][0] )
    self.assertEqual( 'sender1',            signal_calls[0][1] )
    self.assertEqual( 'data1',              signal_calls[0][2] )

    del a
    self.sig_method('sender1', 'data1')
    self.assertEqual(1, len(signal_calls))

    b = B(self.sig_method)
    self.sig_method('sender2', 'data2')

    self.assertEqual(2, len(signal_calls))
    self.assertEqual( 'B::onSignalMethod',  signal_calls[1][0] )
    self.assertEqual( 'sender2',            signal_calls[1][1] )
    self.assertEqual( 'data2',              signal_calls[1][2] )

    del b
    self.sig_method('sender3', 'data3')
    self.assertEqual(2, len(signal_calls))

  def test_sender_signal_method(self):
    a = A()
    self.sig_method.connect(a.onSignalMethod, 'sender1')

    self.sig_method('sender1', 'data1')

    self.assertEqual(1, len(signal_calls))
    self.assertEqual( 'A::onSignalMethod',  signal_calls[0][0] )
    self.assertEqual( 'sender1',            signal_calls[0][1] )
    self.assertEqual( 'data1',              signal_calls[0][2] )


    self.sig_method('sender2', 'data2')
    self.assertEqual(1, len(signal_calls))

    self.sig_method('sender1', 'data2')
    self.assertEqual(2, len(signal_calls))

    del a
    self.sig_method('sender1', 'data3')
    self.assertEqual(2, len(signal_calls))

  def test_sender_signal_function(self):
    def on_signal_func(sender, data):
      signal_calls.append( ( 'function', sender, data   ) )

    self.sig_method.connect( on_signal_func, 'sender1' )
    self.sig_method('sender1', 'data1')

    self.assertEqual(1, len(signal_calls))
    self.assertEqual( 'function',           signal_calls[0][0] )
    self.assertEqual( 'sender1',            signal_calls[0][1] )
    self.assertEqual( 'data1',              signal_calls[0][2] )

    self.sig_method('sender2', 'data2')
    self.assertEqual(1, len(signal_calls))
Ejemplo n.º 9
0
class TestSignal(unittest.TestCase):
    def setUp(self):
        self.sig_function = Signal()
        self.sig_method = Signal()
        self.sig_function.connect(onSignalFunction)

        global signal_calls
        signal_calls = []

    def test_signal_function(self):
        self.sig_function('sender1', 'data1')
        self.assertEqual(1, len(signal_calls))

        self.assertEqual('function', signal_calls[0][0])
        self.assertEqual('sender1', signal_calls[0][1])
        self.assertEqual('data1', signal_calls[0][2])

    def test_signal_method(self):
        a = A()
        self.sig_method.connect(a.onSignalMethod)

        self.sig_method('sender1', 'data1')

        self.assertEqual(1, len(signal_calls))
        self.assertEqual('A::onSignalMethod', signal_calls[0][0])
        self.assertEqual('sender1', signal_calls[0][1])
        self.assertEqual('data1', signal_calls[0][2])

        del a
        self.sig_method('sender1', 'data1')
        self.assertEqual(1, len(signal_calls))

        b = B(self.sig_method)
        self.sig_method('sender2', 'data2')

        self.assertEqual(2, len(signal_calls))
        self.assertEqual('B::onSignalMethod', signal_calls[1][0])
        self.assertEqual('sender2', signal_calls[1][1])
        self.assertEqual('data2', signal_calls[1][2])

        del b
        self.sig_method('sender3', 'data3')
        self.assertEqual(2, len(signal_calls))

    def test_sender_signal_method(self):
        a = A()
        self.sig_method.connect(a.onSignalMethod, 'sender1')

        self.sig_method('sender1', 'data1')

        self.assertEqual(1, len(signal_calls))
        self.assertEqual('A::onSignalMethod', signal_calls[0][0])
        self.assertEqual('sender1', signal_calls[0][1])
        self.assertEqual('data1', signal_calls[0][2])

        self.sig_method('sender2', 'data2')
        self.assertEqual(1, len(signal_calls))

        self.sig_method('sender1', 'data2')
        self.assertEqual(2, len(signal_calls))

        del a
        self.sig_method('sender1', 'data3')
        self.assertEqual(2, len(signal_calls))

    def test_sender_signal_function(self):
        def on_signal_func(sender, data):
            signal_calls.append(('function', sender, data))

        self.sig_method.connect(on_signal_func, 'sender1')
        self.sig_method('sender1', 'data1')

        self.assertEqual(1, len(signal_calls))
        self.assertEqual('function', signal_calls[0][0])
        self.assertEqual('sender1', signal_calls[0][1])
        self.assertEqual('data1', signal_calls[0][2])

        self.sig_method('sender2', 'data2')
        self.assertEqual(1, len(signal_calls))