]> granicus.if.org Git - python/commitdiff
whatsnew: unittest drops references to successful tests.
authorR David Murray <rdmurray@bitdance.com>
Mon, 24 Feb 2014 01:53:50 +0000 (20:53 -0500)
committerR David Murray <rdmurray@bitdance.com>
Mon, 24 Feb 2014 01:53:50 +0000 (20:53 -0500)
Doc/whatsnew/3.4.rst

index d474a95f422acb6015194d6bef0819fe1b97e9be..008660bbd042b404eb6acf35f29ba691efefc943 100644 (file)
@@ -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
 --------------------