Author: Armin Rigo <ar...@tunes.org>
Branch: py3.5
Changeset: r89946:1368d86f0ce9
Date: 2017-02-05 18:00 +0100
http://bitbucket.org/pypy/pypy/changeset/1368d86f0ce9/

Log:    PyCoro_CheckExact()

diff --git a/pypy/module/cpyext/genobject.py b/pypy/module/cpyext/genobject.py
--- a/pypy/module/cpyext/genobject.py
+++ b/pypy/module/cpyext/genobject.py
@@ -1,5 +1,7 @@
-from pypy.interpreter.generator import GeneratorIterator
+from pypy.interpreter.generator import GeneratorIterator, Coroutine
 from pypy.module.cpyext.api import build_type_checkers
 
 
 PyGen_Check, PyGen_CheckExact = build_type_checkers("Gen", GeneratorIterator)
+
+_, PyCoro_CheckExact = build_type_checkers("Coro", Coroutine)
diff --git a/pypy/module/cpyext/test/test_genobject.py 
b/pypy/module/cpyext/test/test_genobject.py
--- a/pypy/module/cpyext/test/test_genobject.py
+++ b/pypy/module/cpyext/test/test_genobject.py
@@ -1,5 +1,6 @@
 from pypy.module.cpyext.test.test_api import BaseApiTest
 from pypy.module.cpyext.genobject import PyGen_Check, PyGen_CheckExact
+from pypy.module.cpyext.genobject import PyCoro_CheckExact
 
 
 class TestGenObject(BaseApiTest):
@@ -11,5 +12,16 @@
         """)
         assert PyGen_Check(space, w_geniter)
         assert PyGen_CheckExact(space, w_geniter)
+        assert not PyCoro_CheckExact(space, w_geniter)
         assert not PyGen_Check(space, space.wrap(2))
         assert not PyGen_CheckExact(space, space.wrap("b"))
+        assert not PyCoro_CheckExact(space, space.wrap([]))
+
+        w_coroutine = space.appexec([], """():
+            async def f():
+                pass
+            return f()
+        """)
+        assert not PyGen_Check(space, w_coroutine)
+        assert not PyGen_CheckExact(space, w_coroutine)
+        assert PyCoro_CheckExact(space, w_coroutine)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to