(self)
| 771 | del fut._log_traceback |
| 772 | |
| 773 | def test_callbacks_copy(self): |
| 774 | # See https://github.com/python/cpython/issues/125789 |
| 775 | # In C implementation, the `_callbacks` attribute |
| 776 | # always returns a new list to avoid mutations of internal state |
| 777 | |
| 778 | fut = self._new_future(loop=self.loop) |
| 779 | f1 = lambda _: 1 |
| 780 | f2 = lambda _: 2 |
| 781 | fut.add_done_callback(f1) |
| 782 | fut.add_done_callback(f2) |
| 783 | callbacks = fut._callbacks |
| 784 | self.assertIsNot(callbacks, fut._callbacks) |
| 785 | fut.remove_done_callback(f1) |
| 786 | callbacks = fut._callbacks |
| 787 | self.assertIsNot(callbacks, fut._callbacks) |
| 788 | fut.remove_done_callback(f2) |
| 789 | self.assertIsNone(fut._callbacks) |
| 790 | |
| 791 | |
| 792 | @unittest.skipUnless(hasattr(futures, '_CFuture'), |
nothing calls this directly
no test coverage detected