From 6027c41c8f5b8f1a9e7b85b2bb93b3e6f2718e54 Mon Sep 17 00:00:00 2001 From: Jim Mussared Date: Thu, 8 Jun 2023 16:01:38 +1000 Subject: tests: Rename uasyncio to asyncio. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared --- tests/extmod/asyncio_task_done.py | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/extmod/asyncio_task_done.py (limited to 'tests/extmod/asyncio_task_done.py') diff --git a/tests/extmod/asyncio_task_done.py b/tests/extmod/asyncio_task_done.py new file mode 100644 index 0000000000..7cc493a122 --- /dev/null +++ b/tests/extmod/asyncio_task_done.py @@ -0,0 +1,63 @@ +# Test the Task.done() method + +try: + import asyncio +except ImportError: + print("SKIP") + raise SystemExit + + +async def task(t, exc=None): + print("task start") + if t >= 0: + await asyncio.sleep(t) + if exc: + raise exc + print("task done") + + +async def main(): + # Task that finishes immediately. + print("=" * 10) + t = asyncio.create_task(task(-1)) + print(t.done()) + await asyncio.sleep(0) + print(t.done()) + await t + print(t.done()) + + # Task that starts, runs and finishes. + print("=" * 10) + t = asyncio.create_task(task(0.01)) + print(t.done()) + await asyncio.sleep(0) + print(t.done()) + await t + print(t.done()) + + # Task that raises immediately. + print("=" * 10) + t = asyncio.create_task(task(-1, ValueError)) + print(t.done()) + await asyncio.sleep(0) + print(t.done()) + try: + await t + except ValueError as er: + print(repr(er)) + print(t.done()) + + # Task that raises after a delay. + print("=" * 10) + t = asyncio.create_task(task(0.01, ValueError)) + print(t.done()) + await asyncio.sleep(0) + print(t.done()) + try: + await t + except ValueError as er: + print(repr(er)) + print(t.done()) + + +asyncio.run(main()) -- cgit v1.2.3