Author: Armin Rigo <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit