/tests/extmod/uasyncio_micropython.py
https://github.com/mcauser/micropython · Python · 37 lines · 21 code · 10 blank · 6 comment · 4 complexity · 4280e40f9d901bf7e7e19d59bfd497e4 MD5 · raw file
- # Test MicroPython extensions on CPython asyncio:
- # - sleep_ms
- # - wait_for_ms
- try:
- import utime, uasyncio
- except ImportError:
- print("SKIP")
- raise SystemExit
- async def task(id, t):
- print("task start", id)
- await uasyncio.sleep_ms(t)
- print("task end", id)
- return id * 2
- async def main():
- # Simple sleep_ms
- t0 = utime.ticks_ms()
- await uasyncio.sleep_ms(1)
- print(utime.ticks_diff(utime.ticks_ms(), t0) < 100)
- # When task finished before the timeout
- print(await uasyncio.wait_for_ms(task(1, 5), 50))
- # When timeout passes and task is cancelled
- try:
- print(await uasyncio.wait_for_ms(task(2, 50), 5))
- except uasyncio.TimeoutError:
- print("timeout")
- print("finish")
- uasyncio.run(main())