mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Issue #22777: Test pickling with all protocols.
This commit is contained in:
commit
65ee4674e2
31 changed files with 704 additions and 623 deletions
|
@ -474,16 +474,17 @@ class TestBasic(unittest.TestCase):
|
|||
|
||||
def test_iterator_pickle(self):
|
||||
data = deque(range(200))
|
||||
it = itorg = iter(data)
|
||||
d = pickle.dumps(it)
|
||||
it = pickle.loads(d)
|
||||
self.assertEqual(type(itorg), type(it))
|
||||
self.assertEqual(list(it), list(data))
|
||||
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
|
||||
it = itorg = iter(data)
|
||||
d = pickle.dumps(it, proto)
|
||||
it = pickle.loads(d)
|
||||
self.assertEqual(type(itorg), type(it))
|
||||
self.assertEqual(list(it), list(data))
|
||||
|
||||
it = pickle.loads(d)
|
||||
next(it)
|
||||
d = pickle.dumps(it)
|
||||
self.assertEqual(list(it), list(data)[1:])
|
||||
it = pickle.loads(d)
|
||||
next(it)
|
||||
d = pickle.dumps(it, proto)
|
||||
self.assertEqual(list(it), list(data)[1:])
|
||||
|
||||
def test_deepcopy(self):
|
||||
mut = [10]
|
||||
|
@ -619,11 +620,12 @@ class TestSubclass(unittest.TestCase):
|
|||
self.assertEqual(type(d), type(e))
|
||||
self.assertEqual(list(d), list(e))
|
||||
|
||||
s = pickle.dumps(d)
|
||||
e = pickle.loads(s)
|
||||
self.assertNotEqual(id(d), id(e))
|
||||
self.assertEqual(type(d), type(e))
|
||||
self.assertEqual(list(d), list(e))
|
||||
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
|
||||
s = pickle.dumps(d, proto)
|
||||
e = pickle.loads(s)
|
||||
self.assertNotEqual(id(d), id(e))
|
||||
self.assertEqual(type(d), type(e))
|
||||
self.assertEqual(list(d), list(e))
|
||||
|
||||
d = Deque('abcde', maxlen=4)
|
||||
|
||||
|
@ -635,11 +637,12 @@ class TestSubclass(unittest.TestCase):
|
|||
self.assertEqual(type(d), type(e))
|
||||
self.assertEqual(list(d), list(e))
|
||||
|
||||
s = pickle.dumps(d)
|
||||
e = pickle.loads(s)
|
||||
self.assertNotEqual(id(d), id(e))
|
||||
self.assertEqual(type(d), type(e))
|
||||
self.assertEqual(list(d), list(e))
|
||||
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
|
||||
s = pickle.dumps(d, proto)
|
||||
e = pickle.loads(s)
|
||||
self.assertNotEqual(id(d), id(e))
|
||||
self.assertEqual(type(d), type(e))
|
||||
self.assertEqual(list(d), list(e))
|
||||
|
||||
## def test_pickle(self):
|
||||
## d = Deque('abc')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue