[pypy-commit] pypy py3.6: Add test and implementation for async generator ignoring GeneratorExit.
mjacob
pypy.commits at gmail.com
Tue Jul 18 13:57:01 EDT 2017
Author: Manuel Jacob <me at manueljacob.de>
Branch: py3.6
Changeset: r91919:958a9c75a085
Date: 2017-07-18 19:56 +0200
http://bitbucket.org/pypy/pypy/changeset/958a9c75a085/
Log: Add test and implementation for async generator ignoring
GeneratorExit.
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -713,7 +713,8 @@
w_value = self.async_gen.throw(space.w_GeneratorExit,
None, None)
if w_value is not None:
- XXX
+ raise oefmt(space.w_RuntimeError,
+ "async generator ignored GeneratorExit")
else:
w_value = self.async_gen.throw(self.w_exc_type,
self.w_exc_value,
diff --git a/pypy/interpreter/test/test_coroutine.py b/pypy/interpreter/test/test_coroutine.py
--- a/pypy/interpreter/test/test_coroutine.py
+++ b/pypy/interpreter/test/test_coroutine.py
@@ -470,3 +470,18 @@
pass
assert raises_generator_exit
"""
+
+ def test_async_aclose_ignore_generator_exit(self): """
+ async def ag():
+ try:
+ yield
+ except GeneratorExit:
+ yield
+
+ async def run():
+ a = ag()
+ async for i in a:
+ break
+ await a.aclose()
+ raises(RuntimeError, run().send, None)
+ """
More information about the pypy-commit
mailing list