Пример #1
0
def test_once_does_not_emits_error_when_not_listening_for_errors(
        ee: EventEmitter, error_helper: "EEExceptionHelper") -> None:
    ee.once("event", error_helper.error_raiser)
    assert ee.listener_count("event") == 1
    assert ee.listener_count("error") == 0
    assert ee.emit("event", 1, data=2)
    error_helper.assert_error_was_not_emitted()
    assert ee.listener_count("event") == 0
    assert ee.listener_count("error") == 0
Пример #2
0
def test_once(ee: EventEmitter, mock: Mock) -> None:
    ee.once("event", mock.method)

    assert ee.listener_count("event") == 1
    assert mock.method is ee.listeners("event")[0]
    assert ee.emit("event", 1, data=2)
    assert not ee.emit("event", 1, data=2)
    mock.method.assert_called_once_with(1, data=2)
    assert ee.listener_count("event") == 0
    assert mock.method not in ee.listeners("event")
Пример #3
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")