Kaydet (Commit) fb5a7ad4 authored tarafından Nathaniel J. Smith's avatar Nathaniel J. Smith Kaydeden (comit) Yury Selivanov

bpo-32636: Fix @asyncio.coroutine debug mode bug exposed by gh-5250 (#5291)

üst 0a5e71b4
...@@ -132,8 +132,9 @@ def coroutine(func): ...@@ -132,8 +132,9 @@ def coroutine(func):
res = yield from await_meth() res = yield from await_meth()
return res return res
coro = types.coroutine(coro)
if not _DEBUG: if not _DEBUG:
wrapper = types.coroutine(coro) wrapper = coro
else: else:
@functools.wraps(func) @functools.wraps(func)
def wrapper(*args, **kwds): def wrapper(*args, **kwds):
......
...@@ -9,6 +9,7 @@ import io ...@@ -9,6 +9,7 @@ import io
import random import random
import re import re
import sys import sys
import textwrap
import types import types
import unittest import unittest
import weakref import weakref
...@@ -3090,6 +3091,22 @@ class CompatibilityTests(test_utils.TestCase): ...@@ -3090,6 +3091,22 @@ class CompatibilityTests(test_utils.TestCase):
result = self.loop.run_until_complete(inner()) result = self.loop.run_until_complete(inner())
self.assertEqual(['ok1', 'ok2'], result) self.assertEqual(['ok1', 'ok2'], result)
def test_debug_mode_interop(self):
# https://bugs.python.org/issue32636
code = textwrap.dedent("""
import asyncio
async def native_coro():
pass
@asyncio.coroutine
def old_style_coro():
yield from native_coro()
asyncio.run(old_style_coro())
""")
assert_python_ok("-c", code, PYTHONASYNCIODEBUG="1")
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment