Issue 17534: unittest keeps references to test cases alive (original) (raw)
After the subtests commit (5c09e1c57200/#16997), test_queue started showing the following warning: Warning -- threading._dangling was modified by test_queue 1 test altered the execution environment: test_queue
The warning was caused by the fact that the TestCase subclasses in test_queue kept references to the thread, but before 5c09e1c57200 these subclasses (and hence the references to the thread) were destroyed before the regrtest check for threading._dangling, whereas now they are kept alive (due to Lib/unittest/case.py:72, that adds a reference to the TestCase even in case of success). I now fixed the warning in test_queue (1747e50fca55), however unittest should probably avoid keeping alive TestCases when they are not needed anymore.
See also #9815.
(Thanks to Antoine for the help while I was debugging the issue.)