summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/async_for.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/async_for.py')
-rw-r--r--tests/basics/async_for.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/basics/async_for.py b/tests/basics/async_for.py
new file mode 100644
index 0000000000..6b4e136d59
--- /dev/null
+++ b/tests/basics/async_for.py
@@ -0,0 +1,29 @@
+# test basic async for execution
+# example taken from PEP0492
+
+class AsyncIteratorWrapper:
+ def __init__(self, obj):
+ print('init')
+ self._it = iter(obj)
+
+ async def __aiter__(self):
+ print('aiter')
+ return self
+
+ async def __anext__(self):
+ print('anext')
+ try:
+ value = next(self._it)
+ except StopIteration:
+ raise StopAsyncIteration
+ return value
+
+async def coro():
+ async for letter in AsyncIteratorWrapper('abc'):
+ print(letter)
+
+o = coro()
+try:
+ o.send(None)
+except StopIteration:
+ print('finished')