diff options
author | Jim Mussared <jim.mussared@gmail.com> | 2023-06-08 16:01:38 +1000 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2023-06-19 17:33:03 +1000 |
commit | 6027c41c8f5b8f1a9e7b85b2bb93b3e6f2718e54 (patch) | |
tree | 08f41a4d0cd48fa5c0bc49519832ac2faba6923a /tests/extmod/asyncio_loop_stop.py | |
parent | 2fbc08c462e247e7f78460783c9a07c76c5b762e (diff) |
tests: Rename uasyncio to asyncio.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'tests/extmod/asyncio_loop_stop.py')
-rw-r--r-- | tests/extmod/asyncio_loop_stop.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/extmod/asyncio_loop_stop.py b/tests/extmod/asyncio_loop_stop.py new file mode 100644 index 000000000..b4bd0c74a --- /dev/null +++ b/tests/extmod/asyncio_loop_stop.py @@ -0,0 +1,42 @@ +# Test Loop.stop() to stop the event loop + +try: + import asyncio +except ImportError: + print("SKIP") + raise SystemExit + + +async def task(): + print("task") + + +async def main(): + print("start") + + # Stop the loop after next yield + loop.stop() + + # Check that calling stop() again doesn't do/break anything + loop.stop() + + # This await should stop + print("sleep") + await asyncio.sleep(0) + + # Schedule stop, then create a new task, then yield + loop.stop() + asyncio.create_task(task()) + await asyncio.sleep(0) + + # Final stop + print("end") + loop.stop() + + +loop = asyncio.get_event_loop() +loop.create_task(main()) + +for i in range(3): + print("run", i) + loop.run_forever() |