mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
bpo-33209: End framing at the end of C implementation of pickle.Pickler.dump(). (GH-6363)
This commit is contained in:
parent
629338f140
commit
c869529ea9
3 changed files with 22 additions and 19 deletions
|
@ -2781,29 +2781,30 @@ class AbstractPicklerUnpicklerObjectTests(unittest.TestCase):
|
|||
# object again, the third serialized form should be identical to the
|
||||
# first one we obtained.
|
||||
data = ["abcdefg", "abcdefg", 44]
|
||||
f = io.BytesIO()
|
||||
pickler = self.pickler_class(f)
|
||||
for proto in protocols:
|
||||
f = io.BytesIO()
|
||||
pickler = self.pickler_class(f, proto)
|
||||
|
||||
pickler.dump(data)
|
||||
first_pickled = f.getvalue()
|
||||
pickler.dump(data)
|
||||
first_pickled = f.getvalue()
|
||||
|
||||
# Reset BytesIO object.
|
||||
f.seek(0)
|
||||
f.truncate()
|
||||
# Reset BytesIO object.
|
||||
f.seek(0)
|
||||
f.truncate()
|
||||
|
||||
pickler.dump(data)
|
||||
second_pickled = f.getvalue()
|
||||
pickler.dump(data)
|
||||
second_pickled = f.getvalue()
|
||||
|
||||
# Reset the Pickler and BytesIO objects.
|
||||
pickler.clear_memo()
|
||||
f.seek(0)
|
||||
f.truncate()
|
||||
# Reset the Pickler and BytesIO objects.
|
||||
pickler.clear_memo()
|
||||
f.seek(0)
|
||||
f.truncate()
|
||||
|
||||
pickler.dump(data)
|
||||
third_pickled = f.getvalue()
|
||||
pickler.dump(data)
|
||||
third_pickled = f.getvalue()
|
||||
|
||||
self.assertNotEqual(first_pickled, second_pickled)
|
||||
self.assertEqual(first_pickled, third_pickled)
|
||||
self.assertNotEqual(first_pickled, second_pickled)
|
||||
self.assertEqual(first_pickled, third_pickled)
|
||||
|
||||
def test_priming_pickler_memo(self):
|
||||
# Verify that we can set the Pickler's memo attribute.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue