From: R David Murray Date: Mon, 24 Feb 2014 01:53:50 +0000 (-0500) Subject: whatsnew: unittest drops references to successful tests. X-Git-Tag: v3.4.1rc1~233^2~226 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ef3da23cb3fbd1c9e35b0c7f56577312b764bd06;p=python whatsnew: unittest drops references to successful tests. --- diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst index d474a95f42..008660bbd0 100644 --- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -1286,6 +1286,14 @@ error. (Contributed by Zach Ware in :issue:`16935`.) consistent test ordering. (Contributed by Martin Melin and Jeff Ramnani in :issue:`16709`.) +:class:`~unittest.TestSuite` now drops references to tests as soon as the test +has been run, if the test is successful. On Python interpreters that do +garbage collection, this allows the tests to be garbage collected if nothing +else is holding a reference to the test. It is possible to override this +behavior by creating a :class:`~unittest.TestSuite` subclass that defines a +custom ``_removeTestAtIndex`` method. (Contributed by Tom Wardill, Matt +McClure, and Andrew Svetlov in :issue:`11798`.) + venv ---- @@ -1871,6 +1879,16 @@ Changes in the Python API Previously some builtin hashes had uppercase names, but now that it is a formal public interface the naming has been made consistent (:issue:`18532`). +* Because :mod:`unittest.TestSuite` now drops references to tests after they + are run, test harnesses that re-use a :class:`~unittest.TestSuite` to re-run + a set of tests may fail. Test suites should not be re-used in this fashion + since it means state is retained between test runs, breaking the test + isolation that :mod:`unittest` is designed to provide. However, if the lack + of isolation is considered acceptable, the old behavior can be restored by + creating a :mod:`~unittest.TestSuite` subclass that defines a + ``_removeTestAtIndex`` method that does nothing (see + :meth:`.TestSuite.__iter__`) (:issue:`11798`). + Changes in the C API --------------------