Commit 118a86f5 authored by Julian Descottes's avatar Julian Descottes
Browse files

Bug 1822772 - [wdspec] Add cleanup logic to the wait_for_event bidi fixture...

Bug 1822772 - [wdspec] Add cleanup logic to the wait_for_event bidi fixture r=webdriver-reviewers,whimboo

Depends on D173020

The new tests were failing on Android because the previous (expected fail) test was leaving the test harness in a bad state.

Differential Revision: https://phabricator.services.mozilla.com/D173164
parent 37482a46
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -77,17 +77,24 @@ def send_blocking_command(bidi_session):
@pytest.fixture
def wait_for_event(bidi_session, event_loop):
    """Wait until the BiDi session emits an event and resolve the event data."""
    remove_listeners = []
    def wait_for_event(event_name: str):
        future = event_loop.create_future()

        async def on_event(method, data):
            remove_listener()
            remove_listeners.remove(remove_listener)
            future.set_result(data)

        remove_listener = bidi_session.add_event_listener(event_name, on_event)

        remove_listeners.append(remove_listener)
        return future
    return wait_for_event

    yield wait_for_event

    # Cleanup any leftover callback for which no event was captured.
    for remove_listener in remove_listeners:
        remove_listener()


@pytest.fixture