(self)
| 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) |
nothing calls this directly
no test coverage detected