From: Guido van Rossum Date: Mon, 18 Apr 2016 00:52:05 +0000 (-0700) Subject: Sync test_typing.py with upstream git repo (typing.py was already synced). X-Git-Tag: v3.6.0a1~178^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6aafbd433dbca6c11f41f1fc55d4304d2d98d6f5;p=thirdparty%2FPython%2Fcpython.git Sync test_typing.py with upstream git repo (typing.py was already synced). --- diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index f1c6e12b2163..b39efcf01913 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -1,3 +1,4 @@ +import contextlib import pickle import re import sys @@ -1309,6 +1310,21 @@ class CollectionsAbcTests(TestCase): assert len(MMB[KT, VT]()) == 0 +class OtherABCTests(TestCase): + + @skipUnless(hasattr(typing, 'ContextManager'), + 'requires typing.ContextManager') + def test_contextmanager(self): + @contextlib.contextmanager + def manager(): + yield 42 + + cm = manager() + assert isinstance(cm, typing.ContextManager) + assert isinstance(cm, typing.ContextManager[int]) + assert not isinstance(42, typing.ContextManager) + + class NamedTupleTests(TestCase): def test_basics(self): @@ -1447,12 +1463,16 @@ class AllTests(TestCase): assert 'ValuesView' in a assert 'cast' in a assert 'overload' in a + if hasattr(contextlib, 'AbstractContextManager'): + assert 'ContextManager' in a # Check that io and re are not exported. assert 'io' not in a assert 're' not in a # Spot-check that stdlib modules aren't exported. assert 'os' not in a assert 'sys' not in a + # Check that Text is defined. + assert 'Text' in a if __name__ == '__main__':