class AnNewSender(unittest.TestCase): def setUp(self): self.sender = Sender() self.called = False def callback(self, event, arg): self.called = True def test_should_add_a_callback_on_register(self): self.sender.register('some_event', self.callback) self.assertEqual(len(self.sender.callbacks), 1) def test_should_have_zero_callbacks(self): self.assertEqual(len(self.sender.callbacks), 0) def test_should_not_call_anything_on_notify(self): self.sender.notify('some_event', 'msg') self.assertFalse(self.called) def test_should_not_raise_error_on_unregister(self): self.sender.unregister('some_event', self.callback)
class ASenderWithOneCallback(unittest.TestCase): def setUp(self): self.sender = Sender() self.called = False self.sender.register('event', self.callback) def callback(self, event, arg): self.called = True def test_should_notify_if_the_registered_signal_was_called(self): self.sender.notify('event', 'message') self.assertTrue(self.called) def test_should_not_notify_if_another_signal_was_called(self): self.sender.notify('other_event', 'message') self.assertFalse(self.called) def test_should_remove_the_callback_on_unregister(self): self.sender.unregister('event', self.callback) self.sender.notify('event', 'message') self.assertFalse(self.called)