Author: Manuel Jacob <m...@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) + """ _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit