Commit 6c792bd6 authored by Yury Selivanov's avatar Yury Selivanov

asyncio: Add a test for asyncio.iscoroutine().

Test that asyncio.iscoroutine() supports 'async def' coroutines and
collections.abc.Coroutine types.
parent af928b65
"""Tests support for new syntax introduced by PEP 492."""
import collections.abc
import gc
import unittest
from test import support
from unittest import mock
import asyncio
......@@ -83,5 +87,30 @@ class StreamReaderTests(BaseTest):
self.assertEqual(data, [b'line1\n', b'line2\n', b'line3'])
class CoroutineTests(BaseTest):
def test_iscoroutine(self):
async def foo(): pass
f = foo()
try:
self.assertTrue(asyncio.iscoroutine(f))
finally:
f.close() # silence warning
class FakeCoro(collections.abc.Coroutine):
def send(self, value): pass
def throw(self, typ, val=None, tb=None): pass
fc = FakeCoro()
try:
self.assertTrue(asyncio.iscoroutine(fc))
finally:
# To make sure that ABCMeta caches are freed
# from FakeCoro ASAP.
fc = FakeCoro = None
support.gc_collect()
if __name__ == '__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