[Python-checkins] cpython (3.5): Issue #24450: Proxy cr_await and gi_yieldfrom in @types.coroutine

yury.selivanov python-checkins at python.org
Fri Jul 3 06:35:46 CEST 2015


https://hg.python.org/cpython/rev/9bae275e99b3
changeset:   96767:9bae275e99b3
branch:      3.5
parent:      96765:84eb9a020011
user:        Yury Selivanov <yselivanov at sprymix.com>
date:        Fri Jul 03 00:35:02 2015 -0400
summary:
  Issue #24450: Proxy cr_await and gi_yieldfrom in @types.coroutine

files:
  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
--- a/Lib/test/test_types.py
+++ b/Lib/test/test_types.py
@@ -1295,8 +1295,8 @@
         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 @@
         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
--- a/Lib/types.py
+++ b/Lib/types.py
@@ -188,9 +188,13 @@
     @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):

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list