From 53e623075dbcba2afaffc859c2fae9bff48e9abf Mon Sep 17 00:00:00 2001 From: Yury Selivanov Date: Fri, 3 Jul 2015 00:35:02 -0400 Subject: Issue #24450: Proxy cr_await and gi_yieldfrom in @types.coroutine --- Lib/test/test_types.py | 7 +++++-- Lib/types.py | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py index e283f32..ba8a1b9 100644 --- a/Lib/test/test_types.py +++ b/Lib/test/test_types.py @@ -1295,8 +1295,8 @@ class CoroutineTests(unittest.TestCase): self.assertIs(wrapper.__name__, gen.__name__) # Test AttributeErrors - for name in {'gi_running', 'gi_frame', 'gi_code', - 'cr_running', 'cr_frame', 'cr_code'}: + for name in {'gi_running', 'gi_frame', 'gi_code', 'gi_yieldfrom', + 'cr_running', 'cr_frame', 'cr_code', 'cr_await'}: with self.assertRaises(AttributeError): getattr(wrapper, name) @@ -1304,12 +1304,15 @@ class CoroutineTests(unittest.TestCase): gen.gi_running = object() gen.gi_frame = object() gen.gi_code = object() + gen.gi_yieldfrom = object() self.assertIs(wrapper.gi_running, gen.gi_running) self.assertIs(wrapper.gi_frame, gen.gi_frame) self.assertIs(wrapper.gi_code, gen.gi_code) + self.assertIs(wrapper.gi_yieldfrom, gen.gi_yieldfrom) self.assertIs(wrapper.cr_running, gen.gi_running) self.assertIs(wrapper.cr_frame, gen.gi_frame) self.assertIs(wrapper.cr_code, gen.gi_code) + self.assertIs(wrapper.cr_await, gen.gi_yieldfrom) wrapper.close() gen.close.assert_called_once_with() diff --git a/Lib/types.py b/Lib/types.py index 38b453a..8c5fc65 100644 --- a/Lib/types.py +++ b/Lib/types.py @@ -188,9 +188,13 @@ class _GeneratorWrapper: @property def gi_running(self): return self.__wrapped.gi_running + @property + def gi_yieldfrom(self): + return self.__wrapped.gi_yieldfrom cr_code = gi_code cr_frame = gi_frame cr_running = gi_running + cr_await = gi_yieldfrom def __next__(self): return next(self.__wrapped) def __iter__(self): -- cgit v0.12