From: Yury Selivanov Date: Thu, 14 May 2015 03:41:55 +0000 (-0400) Subject: collections.abc: Test that if an object is a Coroutine it is also an Awaitable X-Git-Tag: v3.5.0b1~141 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aded55c6e3d893d7543bd642d7f0a6609d26e2e3;p=python collections.abc: Test that if an object is a Coroutine it is also an Awaitable --- diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py index 2bb55385e3..3d1db5ca0e 100644 --- a/Lib/test/test_collections.py +++ b/Lib/test/test_collections.py @@ -495,6 +495,22 @@ class TestOneTrickPonyABCs(ABCTestCase): self.assertIsInstance(c, Awaitable) c.close() # awoid RuntimeWarning that coro() was not awaited + class CoroLike: + def send(self, value): + pass + def throw(self, typ, val=None, tb=None): + pass + def close(self): + pass + Coroutine.register(CoroLike) + try: + self.assertTrue(isinstance(CoroLike(), Awaitable)) + self.assertTrue(issubclass(CoroLike, Awaitable)) + CoroLike = None + finally: + support.gc_collect() # Kill CoroLike to clean-up ABCMeta cache + + def test_Coroutine(self): def gen(): yield