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.)