diff options
author | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-29 13:01:47 (GMT) |
---|---|---|
committer | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-29 13:01:47 (GMT) |
commit | a24fcfdf23f6b1c1757e04bbc743039d55aceca3 (patch) | |
tree | 24d04cefe93ecb919c126f347d36056ffe95f3ef /Lib/test/test_collections.py | |
parent | 41a6a625d488fee413427f9bf682c199dce97be7 (diff) | |
parent | 56fc61402533dc550244efe3e860242872f35bad (diff) | |
download | cpython-a24fcfdf23f6b1c1757e04bbc743039d55aceca3.zip cpython-a24fcfdf23f6b1c1757e04bbc743039d55aceca3.tar.gz cpython-a24fcfdf23f6b1c1757e04bbc743039d55aceca3.tar.bz2 |
Issue 24315: Make collections.abc.Coroutine derived from Awaitable
(Merge 3.5)
Diffstat (limited to 'Lib/test/test_collections.py')
-rw-r--r-- | Lib/test/test_collections.py | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py index ac7b9af..58d2e9c 100644 --- a/Lib/test/test_collections.py +++ b/Lib/test/test_collections.py @@ -496,6 +496,8 @@ class TestOneTrickPonyABCs(ABCTestCase): return value def throw(self, typ, val=None, tb=None): super().throw(typ, val, tb) + def __await__(self): + yield non_samples = [None, int(), gen(), object()] for x in non_samples: @@ -515,13 +517,7 @@ 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 + class CoroLike: pass Coroutine.register(CoroLike) self.assertTrue(isinstance(CoroLike(), Awaitable)) self.assertTrue(issubclass(CoroLike, Awaitable)) @@ -548,6 +544,8 @@ class TestOneTrickPonyABCs(ABCTestCase): return value def throw(self, typ, val=None, tb=None): super().throw(typ, val, tb) + def __await__(self): + yield non_samples = [None, int(), gen(), object(), Bar()] for x in non_samples: @@ -567,6 +565,28 @@ class TestOneTrickPonyABCs(ABCTestCase): self.assertIsInstance(c, Coroutine) 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 + def __await__(self): + pass + self.assertTrue(isinstance(CoroLike(), Coroutine)) + self.assertTrue(issubclass(CoroLike, Coroutine)) + + class CoroLike: + def send(self, value): + pass + def close(self): + pass + def __await__(self): + pass + self.assertFalse(isinstance(CoroLike(), Coroutine)) + self.assertFalse(issubclass(CoroLike, Coroutine)) + def test_Hashable(self): # Check some non-hashables non_samples = [bytearray(), list(), set(), dict()] |