(self)
| 2220 | self.assertEqual(res, expected) |
| 2221 | |
| 2222 | def test_all_freed(self): |
| 2223 | # we want a weakrefable subclass of weakref.finalize |
| 2224 | class MyFinalizer(weakref.finalize): |
| 2225 | pass |
| 2226 | |
| 2227 | a = self.A() |
| 2228 | res = [] |
| 2229 | def callback(): |
| 2230 | res.append(123) |
| 2231 | f = MyFinalizer(a, callback) |
| 2232 | |
| 2233 | wr_callback = weakref.ref(callback) |
| 2234 | wr_f = weakref.ref(f) |
| 2235 | del callback, f |
| 2236 | |
| 2237 | self.assertIsNotNone(wr_callback()) |
| 2238 | self.assertIsNotNone(wr_f()) |
| 2239 | |
| 2240 | del a |
| 2241 | self._collect_if_necessary() |
| 2242 | |
| 2243 | self.assertIsNone(wr_callback()) |
| 2244 | self.assertIsNone(wr_f()) |
| 2245 | self.assertEqual(res, [123]) |
| 2246 | |
| 2247 | @classmethod |
| 2248 | def run_in_child(cls): |
nothing calls this directly
no test coverage detected