(Pickler)
| 156 | @support.cpython_only |
| 157 | def test_pickler_reference_cycle(self): |
| 158 | def check(Pickler): |
| 159 | for proto in range(pickle.HIGHEST_PROTOCOL + 1): |
| 160 | f = io.BytesIO() |
| 161 | pickler = Pickler(f, proto) |
| 162 | pickler.dump('abc') |
| 163 | self.assertEqual(self.loads(f.getvalue()), 'abc') |
| 164 | pickler = Pickler(io.BytesIO()) |
| 165 | self.assertEqual(pickler.persistent_id('def'), 'def') |
| 166 | r = weakref.ref(pickler) |
| 167 | del pickler |
| 168 | self.assertIsNone(r()) |
| 169 | |
| 170 | class PersPickler(self.pickler): |
| 171 | def persistent_id(subself, obj): |
nothing calls this directly
no test coverage detected