summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/async_await2.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/async_await2.py')
-rw-r--r--tests/basics/async_await2.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/basics/async_await2.py b/tests/basics/async_await2.py
new file mode 100644
index 0000000000..129d3751a5
--- /dev/null
+++ b/tests/basics/async_await2.py
@@ -0,0 +1,27 @@
+# test await expression
+
+import sys
+if sys.implementation.name == 'micropython':
+ # uPy allows normal generators to be awaitables
+ coroutine = lambda f: f
+else:
+ import types
+ coroutine = types.coroutine
+
+@coroutine
+def wait(value):
+ print('wait value:', value)
+ msg = yield 'message from wait(%u)' % value
+ print('wait got back:', msg)
+ return 10
+
+async def f():
+ x = await wait(1)**2
+ print('x =', x)
+
+coro = f()
+print('return from send:', coro.send(None))
+try:
+ coro.send('message from main')
+except StopIteration:
+ print('got StopIteration')