diff options
author | Yury Selivanov <yselivanov@sprymix.com> | 2015-07-03 04:35:02 (GMT) |
---|---|---|
committer | Yury Selivanov <yselivanov@sprymix.com> | 2015-07-03 04:35:02 (GMT) |
commit | 53e623075dbcba2afaffc859c2fae9bff48e9abf (patch) | |
tree | 16826cf2473cbd2f1a943ae1c8ef9265b8833ecd | |
parent | e13f8f3cabda31742beba3dc9e5e170d7bbdbb88 (diff) | |
download | cpython-53e623075dbcba2afaffc859c2fae9bff48e9abf.zip cpython-53e623075dbcba2afaffc859c2fae9bff48e9abf.tar.gz cpython-53e623075dbcba2afaffc859c2fae9bff48e9abf.tar.bz2 |
Issue #24450: Proxy cr_await and gi_yieldfrom in @types.coroutine
-rw-r--r-- | Lib/test/test_types.py | 7 | ||||
-rw-r--r-- | 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): |