summaryrefslogtreecommitdiff
path: root/tests/extmod/asyncio_as_uasyncio.py
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2023-10-09 14:07:28 +1100
committerDamien George <damien@micropython.org>2023-10-30 11:10:02 +1100
commit78f4f30cb1aadbb46ad39220de5369e72c093509 (patch)
tree8fcd29126267d953fed62a38876a2f42c9f34407 /tests/extmod/asyncio_as_uasyncio.py
parent1a017511d0b25b8b4a6c3aaa2f2bc17e06b32fa2 (diff)
tests/extmod/asyncio_as_uasyncio.py: Fix qstr order dependency.
This test depends on the order in which qstrs are stored in ROM, which affects the order in which `dir()` will probe the object to see what it supports. Because of the lazy-loading in asyncio/__init__.py, if it tries to do e.g. `wait_for_ms` before `funcs` then it will import funcs, making `funcs` later succeed. But in the other way around, `funcs` will initially not be found. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'tests/extmod/asyncio_as_uasyncio.py')
-rw-r--r--tests/extmod/asyncio_as_uasyncio.py31
1 files changed, 26 insertions, 5 deletions
diff --git a/tests/extmod/asyncio_as_uasyncio.py b/tests/extmod/asyncio_as_uasyncio.py
index 612292299..b02198059 100644
--- a/tests/extmod/asyncio_as_uasyncio.py
+++ b/tests/extmod/asyncio_as_uasyncio.py
@@ -1,12 +1,33 @@
try:
import uasyncio
- import asyncio
except ImportError:
print("SKIP")
raise SystemExit
-x = set(dir(uasyncio))
-y = set(dir(asyncio)) - set(["event", "lock", "stream", "funcs"])
-print(x - y)
-print(y - x)
+# Sample of public symbols we expect to see from `asyncio`. Verify they're all
+# available on `uasyncio`.
+expected = [
+ "CancelledError",
+ "create_task",
+ "current_task",
+ "Event",
+ "gather",
+ "get_event_loop",
+ "Lock",
+ "Loop",
+ "open_connection",
+ "run",
+ "run_until_complete",
+ "sleep",
+ "sleep_ms",
+ "start_server",
+ "StreamReader",
+ "StreamWriter",
+ "Task",
+ "ThreadSafeFlag",
+ "wait_for",
+]
+
+for e in expected:
+ getattr(uasyncio, e)