diff options
author | Guido van Rossum <guido@python.org> | 2016-10-29 12:44:31 -0700 |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2016-10-29 12:44:31 -0700 |
commit | fd274c47aa99fc0add7457a0ee4f3d4228bab1fe (patch) | |
tree | 9f3557a474f4c323fac90dcea626c5df8525789a /Lib/test | |
parent | 27c22f900c8267148d2ffecce8f0a474774420f1 (diff) | |
parent | c6c1c6ef79b359ca4f6b30c0c91514e9ea486b9c (diff) | |
download | cpython-git-fd274c47aa99fc0add7457a0ee4f3d4228bab1fe.tar.gz |
Issue #28556: updates to typing.py (fix copy, deepcopy, pickle) (3.6->3.7)
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_typing.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 8e0a8c522f..b50f36679d 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -4,6 +4,7 @@ import pickle import re import sys from unittest import TestCase, main, skipUnless, SkipTest +from copy import copy, deepcopy from typing import Any from typing import TypeVar, AnyStr @@ -845,6 +846,24 @@ class GenericTests(BaseTestCase): self.assertEqual(x.foo, 42) self.assertEqual(x.bar, 'abc') self.assertEqual(x.__dict__, {'foo': 42, 'bar': 'abc'}) + simples = [Any, Union, Tuple, Callable, ClassVar, List, typing.Iterable] + for s in simples: + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + z = pickle.dumps(s, proto) + x = pickle.loads(z) + self.assertEqual(s, x) + + def test_copy_and_deepcopy(self): + T = TypeVar('T') + class Node(Generic[T]): ... + things = [Union[T, int], Tuple[T, int], Callable[..., T], Callable[[int], int], + Tuple[Any, Any], Node[T], Node[int], Node[Any], typing.Iterable[T], + typing.Iterable[Any], typing.Iterable[int], typing.Dict[int, str], + typing.Dict[T, Any], ClassVar[int], ClassVar[List[T]], Tuple['T', 'T'], + Union['T', int], List['T'], typing.Mapping['T', int]] + for t in things + [Any]: + self.assertEqual(t, copy(t)) + self.assertEqual(t, deepcopy(t)) def test_errors(self): with self.assertRaises(TypeError): |