[Python-checkins] cpython: Packaging tests: don’t let an internal cache grow indefinitely.

eric.araujo python-checkins at python.org
Fri Jun 17 19:41:38 CEST 2011


http://hg.python.org/cpython/rev/27a70dfc38cc
changeset:   70850:27a70dfc38cc
user:        Éric Araujo <merwok at netwok.org>
date:        Fri Jun 17 15:43:18 2011 +0200
summary:
  Packaging tests: don’t let an internal cache grow indefinitely.

Victor Stinner diagnosed on #12167 that some reference leaks came from
util._path_created, a set used for caching; there are two tests that
cause additions to this set, so now they clear it in tearDown, avoiding
17 refleaks.  (My tests show that it’s necessary to clear the set in
only one test, clearing it in both does not stop more refleaks, but
there’s no harm in doing it.)

files:
  Lib/packaging/tests/test_command_bdist_dumb.py |  2 ++
  Lib/packaging/tests/test_uninstall.py          |  2 ++
  2 files changed, 4 insertions(+), 0 deletions(-)


diff --git a/Lib/packaging/tests/test_command_bdist_dumb.py b/Lib/packaging/tests/test_command_bdist_dumb.py
--- a/Lib/packaging/tests/test_command_bdist_dumb.py
+++ b/Lib/packaging/tests/test_command_bdist_dumb.py
@@ -1,6 +1,7 @@
 """Tests for distutils.command.bdist_dumb."""
 
 import os
+import packaging.util
 
 from packaging.dist import Distribution
 from packaging.command.bdist_dumb import bdist_dumb
@@ -18,6 +19,7 @@
 
     def tearDown(self):
         os.chdir(self.old_location)
+        packaging.util._path_created.clear()
         super(BuildDumbTestCase, self).tearDown()
 
     @requires_zlib
diff --git a/Lib/packaging/tests/test_uninstall.py b/Lib/packaging/tests/test_uninstall.py
--- a/Lib/packaging/tests/test_uninstall.py
+++ b/Lib/packaging/tests/test_uninstall.py
@@ -3,6 +3,7 @@
 import sys
 from io import StringIO
 import stat
+import packaging.util
 
 from packaging.database import disable_cache, enable_cache
 from packaging.run import main
@@ -43,6 +44,7 @@
 
     def tearDown(self):
         os.chdir(self.cwd)
+        packaging.util._path_created.clear()
         super(UninstallTestCase, self).tearDown()
 
     def run_setup(self, *args):

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list