def test_event_model(self): listener = SomeListener() listener.on('something', listener.listen_something) thrower = EventThrower() thrower.add_listener(listener) self.assertTrue(getattr(listener, 'foo', None) is None) thrower.emit('something') self.assertEqual(listener.foo, 'bar')
def test_a_listener_can_be_killed(self): listener = SomeListener() listener.on('something', listener.listen_something) thrower = EventThrower() thrower.add_listener(listener) thrower.emit('something') self.assertEqual(listener.foo, 'bar') del listener """ Garbage collector is required to simulate time passing """ import gc; gc.collect() thrower.emit('something') self.assertEqual(0, len(thrower.__LISTENERS__))
def __init__(self, **kwargs): ValidatingStruct.__init__(self, **kwargs) EventListener.__init__(self) EventThrower.__init__(self)