[wdspec] Use "asyncio.sleep()" and not "time.sleep() which blocks.
Depends on D138996
Differential Revision: https://phabricator.services.mozilla.com/D138997
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1754981
gecko-commit: ecab2a7d150fe2531dd3a849deb1b2c6ac075b56
gecko-reviewers: webdriver-reviewers, jdescottes
diff --git a/webdriver/tests/bidi/log/entry_added/event_buffer.py b/webdriver/tests/bidi/log/entry_added/event_buffer.py
index 8d0bbac..1d45192 100644
--- a/webdriver/tests/bidi/log/entry_added/event_buffer.py
+++ b/webdriver/tests/bidi/log/entry_added/event_buffer.py
@@ -1,15 +1,15 @@
+import asyncio
+
import pytest
-import time
from . import assert_base_entry, create_log
+
@pytest.mark.asyncio
@pytest.mark.parametrize("log_type", ["console_api_log", "javascript_error"])
-async def test_console_log_cached_messages(bidi_session,
- current_session,
- wait_for_event,
- inline,
- log_type):
+async def test_console_log_cached_messages(
+ bidi_session, current_session, wait_for_event, inline, log_type
+):
# Unsubscribe in case previous tests subscribed to log.entryAdded
await bidi_session.session.unsubscribe(events=["log.entryAdded"])
@@ -22,15 +22,17 @@
# Track all received log.entryAdded events in the events array
events = []
+
async def on_event(method, data):
events.append(data)
+
remove_listener = bidi_session.add_event_listener("log.entryAdded", on_event)
# Subscribe
on_entry_added = wait_for_event("log.entryAdded")
await bidi_session.session.subscribe(events=["log.entryAdded"])
await on_entry_added
- assert len(events) == 1;
+ assert len(events) == 1
# Check the log.entryAdded event received has the expected properties.
assert_base_entry(events[0], text=expected_text)
@@ -40,17 +42,17 @@
await bidi_session.session.subscribe(events=["log.entryAdded"])
# Wait for some time to catch all messages.
- time.sleep(0.5)
+ await asyncio.sleep(0.5)
# Check that the cached event was not re-emitted.
- assert len(events) == 1;
+ assert len(events) == 1
on_entry_added = wait_for_event("log.entryAdded")
expected_text = create_log(current_session, inline, log_type, "live_message")
await on_entry_added
# Check that we only received the live message.
- assert len(events) == 2;
+ assert len(events) == 2
assert_base_entry(events[1], text=expected_text)
# Unsubscribe, log a message and re-subscribe
@@ -62,7 +64,7 @@
await on_entry_added
# Check that only the newly cached event was emitted
- assert len(events) == 3;
+ assert len(events) == 3
assert_base_entry(events[2], text=expected_text)
remove_listener()
@@ -70,11 +72,9 @@
@pytest.mark.asyncio
@pytest.mark.parametrize("log_type", ["console_api_log", "javascript_error"])
-async def test_console_log_cached_message_after_refresh(bidi_session,
- current_session,
- wait_for_event,
- inline,
- log_type):
+async def test_console_log_cached_message_after_refresh(
+ bidi_session, current_session, wait_for_event, inline, log_type
+):
# Unsubscribe in case previous tests subscribed to log.entryAdded
await bidi_session.session.unsubscribe(events=["log.entryAdded"])
@@ -84,13 +84,15 @@
# Track all received log.entryAdded events in the events array
events = []
+
async def on_event(method, data):
events.append(data)
+
remove_listener = bidi_session.add_event_listener("log.entryAdded", on_event)
# Log a message, refresh, log another message and subscribe
create_log(current_session, inline, log_type, "missed_message")
- current_session.refresh();
+ current_session.refresh()
expected_text = create_log(current_session, inline, log_type, "cached_message")
on_entry_added = wait_for_event("log.entryAdded")
@@ -98,11 +100,10 @@
await on_entry_added
# Wait for some time to catch all messages.
- time.sleep(0.5)
+ asyncio.sleep(0.5)
# Check that only the cached message was retrieved.
- assert len(events) == 1;
+ assert len(events) == 1
assert_base_entry(events[0], text=expected_text)
remove_listener()
-
diff --git a/webdriver/tests/bidi/log/entry_added/subscription.py b/webdriver/tests/bidi/log/entry_added/subscription.py
index e9a3be5..889d093 100644
--- a/webdriver/tests/bidi/log/entry_added/subscription.py
+++ b/webdriver/tests/bidi/log/entry_added/subscription.py
@@ -1,23 +1,22 @@
-import pytest
+import asyncio
-import time
+import pytest
from . import assert_base_entry, create_log
@pytest.mark.asyncio
@pytest.mark.parametrize("log_type", ["console_api_log", "javascript_error"])
-async def test_subscribe_twice(bidi_session,
- current_session,
- inline,
- wait_for_event,
- log_type):
+async def test_subscribe_twice(
+ bidi_session, current_session, inline, wait_for_event, log_type
+):
# Subscribe to log.entryAdded twice and check that events are received once.
await bidi_session.session.subscribe(events=["log.entryAdded"])
await bidi_session.session.subscribe(events=["log.entryAdded"])
# Track all received log.entryAdded events in the events array
events = []
+
async def on_event(method, data):
events.append(data)
@@ -32,19 +31,17 @@
assert_base_entry(events[0], text=expected_text)
# Wait for some time and check the events array again
- time.sleep(0.5)
- assert len(events) == 1;
+ asyncio.sleep(0.5)
+ assert len(events) == 1
remove_listener()
@pytest.mark.asyncio
@pytest.mark.parametrize("log_type", ["console_api_log", "javascript_error"])
-async def test_subscribe_unsubscribe(bidi_session,
- current_session,
- inline,
- wait_for_event,
- log_type):
+async def test_subscribe_unsubscribe(
+ bidi_session, current_session, inline, wait_for_event, log_type
+):
# Subscribe for log events globally
await bidi_session.session.subscribe(events=["log.entryAdded"])
@@ -57,6 +54,7 @@
# Track all received log.entryAdded events in the events array
events = []
+
async def on_event(method, data):
events.append(data)
@@ -65,8 +63,8 @@
create_log(current_session, inline, log_type, "text2")
# Wait for some time before checking the events array
- time.sleep(0.5)
- assert len(events) == 0;
+ asyncio.sleep(0.5)
+ assert len(events) == 0
# Refresh to create a new context
current_session.refresh()
@@ -75,8 +73,8 @@
create_log(current_session, inline, log_type, "text3")
# Wait for some time before checking the events array
- time.sleep(0.5)
- assert len(events) == 0;
+ asyncio.sleep(0.5)
+ assert len(events) == 0
# Refresh to create a new context. Note that we refresh to avoid getting
# cached events from the log event buffer.
@@ -89,7 +87,7 @@
expected_text = create_log(current_session, inline, log_type, "text4")
await on_entry_added
- assert len(events) == 1;
+ assert len(events) == 1
assert_base_entry(events[0], text=expected_text)
# Check that we also get events from new tab/window
@@ -99,7 +97,7 @@
expected_text = create_log(current_session, inline, log_type, "text5")
await on_entry_added
- assert len(events) == 2;
+ assert len(events) == 2
assert_base_entry(events[1], text=expected_text)
remove_listener()