diff options
Diffstat (limited to 'Lib/test/test_typing.py')
| -rw-r--r-- | Lib/test/test_typing.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index a74ec07..dc4c152 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -1,4 +1,5 @@ from collections import namedtuple +import pickle import re import sys from unittest import TestCase, main @@ -583,6 +584,35 @@ class GenericTests(TestCase): self.assertEqual(repr(MySimpleMapping), __name__ + '.' + 'MySimpleMapping[~XK, ~XV]') + def test_dict(self): + T = TypeVar('T') + class B(Generic[T]): + pass + b = B() + b.foo = 42 + self.assertEqual(b.__dict__, {'foo': 42}) + class C(B[int]): + pass + c = C() + c.bar = 'abc' + self.assertEqual(c.__dict__, {'bar': 'abc'}) + + def test_pickle(self): + T = TypeVar('T') + class B(Generic[T]): + pass + global C # pickle wants to reference the class by name + class C(B[int]): + pass + c = C() + c.foo = 42 + c.bar = 'abc' + z = pickle.dumps(c) + x = pickle.loads(z) + self.assertEqual(x.foo, 42) + self.assertEqual(x.bar, 'abc') + self.assertEqual(x.__dict__, {'foo': 42, 'bar': 'abc'}) + def test_errors(self): with self.assertRaises(TypeError): B = SimpleMapping[XK, Any] |
