diff options
author | Georg Brandl <georg@python.org> | 2006-03-31 18:25:44 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2006-03-31 18:25:44 (GMT) |
commit | 22ec80bc4f3e66990981ca57b66b38873e2711df (patch) | |
tree | 6374fe9880a0a2f4d2d7442a0bbffc85bcca3440 /Lib/test | |
parent | 43f08a85e4b86acf6e4313a51cec4df0cc586da7 (diff) | |
download | cpython-22ec80bc4f3e66990981ca57b66b38873e2711df.zip cpython-22ec80bc4f3e66990981ca57b66b38873e2711df.tar.gz cpython-22ec80bc4f3e66990981ca57b66b38873e2711df.tar.bz2 |
Patch #1462313, bug #1443328: the pickle modules now can handle classes
that have __private names in their __slots__.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_copy_reg.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/test/test_copy_reg.py b/Lib/test/test_copy_reg.py index c41946a..c3d3964 100644 --- a/Lib/test/test_copy_reg.py +++ b/Lib/test/test_copy_reg.py @@ -8,6 +8,22 @@ class C: pass +class WithoutSlots(object): + pass + +class WithWeakref(object): + __slots__ = ('__weakref__',) + +class WithPrivate(object): + __slots__ = ('__spam',) + +class WithSingleString(object): + __slots__ = 'spam' + +class WithInherited(WithSingleString): + __slots__ = ('eggs',) + + class CopyRegTestCase(unittest.TestCase): def test_class(self): @@ -84,6 +100,19 @@ class CopyRegTestCase(unittest.TestCase): self.assertRaises(ValueError, copy_reg.add_extension, mod, func, code) + def test_slotnames(self): + self.assertEquals(copy_reg._slotnames(WithoutSlots), []) + self.assertEquals(copy_reg._slotnames(WithWeakref), []) + expected = ['_WithPrivate__spam'] + self.assertEquals(copy_reg._slotnames(WithPrivate), expected) + self.assertEquals(copy_reg._slotnames(WithSingleString), ['spam']) + expected = ['eggs', 'spam'] + expected.sort() + result = copy_reg._slotnames(WithInherited) + result.sort() + self.assertEquals(result, expected) + + def test_main(): test_support.run_unittest(CopyRegTestCase) |