def test_remove_listener_with_invalid_event_failed(self): mediator = Mediator() listener = Listener() with self.assertRaises(TypeError) as context: mediator.remove_listener(1, listener) self.assertEqual(str(context.exception), 'Expects subclass of Event or str')
def test_remove_listener(self): mediator = Mediator() listener1 = Listener() listener2 = Listener() mediator.add_listener(Event, listener1) mediator.add_listener(Event, listener2) event = Event() mediator.dispatch(event) mediator.remove_listener(Event, listener1) mediator.dispatch(event) self.assertEqual(len(listener1.events), 1) self.assertEqual(len(listener2.events), 2) mediator.remove_listener(Event) mediator.dispatch(event) self.assertEqual(len(listener1.events), 1) self.assertEqual(len(listener2.events), 2)