summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_asyncio/test_pep492.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/test/test_asyncio/test_pep492.py b/Lib/test/test_asyncio/test_pep492.py
index 3d8d1b8..6e235c6 100644
--- a/Lib/test/test_asyncio/test_pep492.py
+++ b/Lib/test/test_asyncio/test_pep492.py
@@ -1,6 +1,10 @@
"""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()