diff options
| author | Alexandre Vassalotti <alexandre@peadrop.com> | 2013-11-30 21:24:13 (GMT) |
|---|---|---|
| committer | Alexandre Vassalotti <alexandre@peadrop.com> | 2013-11-30 21:24:13 (GMT) |
| commit | 1d3a17332683bc38f8be956ac3dc9ea8fbba27af (patch) | |
| tree | 5102c3544b9ff7f3b78e3eafdd4b2e78d8f19827 /Lib/test/pickletester.py | |
| parent | 72a01b29bf7ac17de81c294f4ee6e5cc7359c685 (diff) | |
| download | cpython-1d3a17332683bc38f8be956ac3dc9ea8fbba27af.zip cpython-1d3a17332683bc38f8be956ac3dc9ea8fbba27af.tar.gz cpython-1d3a17332683bc38f8be956ac3dc9ea8fbba27af.tar.bz2 | |
Issue #16231: Allow false values other than None to be used as persistent IDs.
Diffstat (limited to 'Lib/test/pickletester.py')
| -rw-r--r-- | Lib/test/pickletester.py | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 34cafcb..1599893 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -1152,30 +1152,34 @@ class AbstractPersistentPicklerTests(unittest.TestCase): if isinstance(object, int) and object % 2 == 0: self.id_count += 1 return str(object) + elif object == "test_false_value": + self.false_count += 1 + return "" else: return None def persistent_load(self, oid): - self.load_count += 1 - object = int(oid) - assert object % 2 == 0 - return object + if not oid: + self.load_false_count += 1 + return "test_false_value" + else: + self.load_count += 1 + object = int(oid) + assert object % 2 == 0 + return object def test_persistence(self): - self.id_count = 0 - self.load_count = 0 - L = range(10) - self.assertEqual(self.loads(self.dumps(L)), L) - self.assertEqual(self.id_count, 5) - self.assertEqual(self.load_count, 5) - - def test_bin_persistence(self): - self.id_count = 0 - self.load_count = 0 - L = range(10) - self.assertEqual(self.loads(self.dumps(L, 1)), L) - self.assertEqual(self.id_count, 5) - self.assertEqual(self.load_count, 5) + L = range(10) + ["test_false_value"] + for proto in protocols: + self.id_count = 0 + self.false_count = 0 + self.load_false_count = 0 + self.load_count = 0 + self.assertEqual(self.loads(self.dumps(L, proto)), L) + self.assertEqual(self.id_count, 5) + self.assertEqual(self.false_count, 1) + self.assertEqual(self.load_count, 5) + self.assertEqual(self.load_false_count, 1) class AbstractPicklerUnpicklerObjectTests(unittest.TestCase): |
