From c06f46f74c4a5f3cc46aa3a6d1c9cc1cb187e4c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Fri, 17 Jun 2011 15:43:18 +0200 Subject: [PATCH] =?UTF-8?q?Packaging=20tests:=20don=E2=80=99t=20let=20an?= =?UTF-8?q?=20internal=20cache=20grow=20indefinitely.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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.) --- Lib/packaging/tests/test_command_bdist_dumb.py | 2 ++ Lib/packaging/tests/test_uninstall.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Lib/packaging/tests/test_command_bdist_dumb.py b/Lib/packaging/tests/test_command_bdist_dumb.py index fd199ea932e..25f3276b0c8 100644 --- 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 @@ class BuildDumbTestCase(support.TempdirManager, 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 index 00e97e4c700..0ef7f3be90b 100644 --- a/Lib/packaging/tests/test_uninstall.py +++ b/Lib/packaging/tests/test_uninstall.py @@ -3,6 +3,7 @@ import os 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 @@ class UninstallTestCase(support.TempdirManager, def tearDown(self): os.chdir(self.cwd) + packaging.util._path_created.clear() super(UninstallTestCase, self).tearDown() def run_setup(self, *args):