MCPcopy Index your code
hub / github.com/python/cpython / test_mutating_seq_class_iter_pickle

Method test_mutating_seq_class_iter_pickle

Lib/test/test_iter.py:205–239  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

203 self.check_iterator(iter(SequenceClass(10)), list(range(10)))
204
205 def test_mutating_seq_class_iter_pickle(self):
206 orig = SequenceClass(5)
207 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
208 # initial iterator
209 itorig = iter(orig)
210 d = pickle.dumps((itorig, orig), proto)
211 it, seq = pickle.loads(d)
212 seq.n = 7
213 self.assertIs(type(it), type(itorig))
214 self.assertEqual(list(it), list(range(7)))
215
216 # running iterator
217 next(itorig)
218 d = pickle.dumps((itorig, orig), proto)
219 it, seq = pickle.loads(d)
220 seq.n = 7
221 self.assertIs(type(it), type(itorig))
222 self.assertEqual(list(it), list(range(1, 7)))
223
224 # empty iterator
225 for i in range(1, 5):
226 next(itorig)
227 d = pickle.dumps((itorig, orig), proto)
228 it, seq = pickle.loads(d)
229 seq.n = 7
230 self.assertIs(type(it), type(itorig))
231 self.assertEqual(list(it), list(range(5, 7)))
232
233 # exhausted iterator
234 self.assertRaises(StopIteration, next, itorig)
235 d = pickle.dumps((itorig, orig), proto)
236 it, seq = pickle.loads(d)
237 seq.n = 7
238 self.assertTrue(isinstance(it, collections.abc.Iterator))
239 self.assertEqual(list(it), [])
240
241 def test_mutating_seq_class_exhausted_iter(self):
242 a = SequenceClass(5)

Callers

nothing calls this directly

Calls 8

assertIsMethod · 0.95
assertEqualMethod · 0.95
assertRaisesMethod · 0.95
assertTrueMethod · 0.95
listClass · 0.85
SequenceClassClass · 0.70
dumpsMethod · 0.45
loadsMethod · 0.45

Tested by

no test coverage detected