diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2010-09-04 17:49:13 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-09-04 17:49:13 (GMT) |
commit | ce111caaeb9ae6cf3c04dfdc26cc4e53f015f31d (patch) | |
tree | bd6c69abb37da6d5e9757ecb181624b35ab5cb87 /Lib/test/test_copy.py | |
parent | 5c78edae51aa087ed8f1468769f86f47b62eec6e (diff) | |
download | cpython-ce111caaeb9ae6cf3c04dfdc26cc4e53f015f31d.zip cpython-ce111caaeb9ae6cf3c04dfdc26cc4e53f015f31d.tar.gz cpython-ce111caaeb9ae6cf3c04dfdc26cc4e53f015f31d.tar.bz2 |
Merged revisions 84495-84497 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r84495 | antoine.pitrou | 2010-09-04 19:40:21 +0200 (sam., 04 sept. 2010) | 4 lines
Issue #1100562: Fix deep-copying of objects derived from the list and dict types.
Patch by Michele Orrù and Björn Lindqvist.
........
r84496 | antoine.pitrou | 2010-09-04 19:40:51 +0200 (sam., 04 sept. 2010) | 3 lines
Fix Björn's name in ACKS.
........
r84497 | antoine.pitrou | 2010-09-04 19:46:44 +0200 (sam., 04 sept. 2010) | 3 lines
Fix running the copy module from the command-line (however use{ful,less} it may be).
........
Diffstat (limited to 'Lib/test/test_copy.py')
-rw-r--r-- | Lib/test/test_copy.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py index 2af2109..f4ca6b3 100644 --- a/Lib/test/test_copy.py +++ b/Lib/test/test_copy.py @@ -532,6 +532,26 @@ class TestCopy(unittest.TestCase): self.assertEqual(x.foo, y.foo) self.assertTrue(x.foo is not y.foo) + def test_deepcopy_dict_subclass(self): + class C(dict): + def __init__(self, d=None): + if not d: + d = {} + self._keys = list(d.keys()) + super().__init__(d) + def __setitem__(self, key, item): + super().__setitem__(key, item) + if key not in self._keys: + self._keys.append(key) + x = C(d={'foo':0}) + y = copy.deepcopy(x) + self.assertEqual(x, y) + self.assertEqual(x._keys, y._keys) + self.assertTrue(x is not y) + x['bar'] = 1 + self.assertNotEqual(x, y) + self.assertNotEqual(x._keys, y._keys) + def test_copy_list_subclass(self): class C(list): pass |