def test_on(ee: EventEmitter, mock: Mock) -> None: ee.on("event", mock.method) assert ee.listener_count("event") == 1 assert mock.method is ee.listeners("event")[0] assert ee.emit("event", 1, data=2) mock.method.assert_called_with(1, data=2) assert ee.listener_count("event") == 1 assert mock.method is ee.listeners("event")[0]
def test_on_decorator(ee: EventEmitter, mock: Mock) -> None: @ee.on("event") def handler(*args, **kwargs) -> None: mock.method(*args, **kwargs) assert ee.listener_count("event") == 1 assert handler is ee.listeners("event")[0] assert ee.emit("event", 1, data=2) mock.method.assert_called_with(1, data=2) assert ee.listener_count("event") == 1 assert handler is ee.listeners("event")[0]
async def test_coroutine_listener_once(ee_with_event_loop: EventEmitter, mock: Mock, deferred: Future) -> None: async def handler(*args, **kwargs) -> None: mock.method(*args, **kwargs) deferred.set_result(True) ee_with_event_loop.once("event", handler) assert ee_with_event_loop.listener_count("event") == 1 assert handler is ee_with_event_loop.listeners("event")[0] assert ee_with_event_loop.emit("event", 1, data=2) assert await deferred assert not ee_with_event_loop.emit("event", 1, data=2) mock.method.assert_called_once_with(1, data=2) assert ee_with_event_loop.listener_count("event") == 0 assert handler not in ee_with_event_loop.listeners("event")
def test_remove_all_listeners(ee: EventEmitter, arg_swallower: Callable[..., None]) -> None: ee.on("event", arg_swallower) assert ee.listener_count("event") == 1 assert arg_swallower is ee.listeners("event")[0] ee.remove_all_listeners() assert ee.listener_count("event") == 0
def test_get_listeners_registered_for_event( ee: EventEmitter, arg_swallower: Callable[..., None]) -> None: ee.on("event", arg_swallower) ee_listeners = ee.listeners("event") assert len(ee_listeners) == 1 assert ee_listeners[0] is arg_swallower