From ac6602bdc17973c121ea6cce9ae6768a9e5db8c3 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 17 Jun 2011 12:20:46 +0200 Subject: Issue #12333: restore the previous dir before removing the current directory packaging.tests.support.TempdirManager: removing the current directory is not allowed on Windows or Solaris. Store the current directory and restore it before removing the temporary directory (which is used as the working directory during the tests). --- Lib/packaging/tests/support.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Lib/packaging/tests/support.py b/Lib/packaging/tests/support.py index 501f126..47ce513 100644 --- a/Lib/packaging/tests/support.py +++ b/Lib/packaging/tests/support.py @@ -37,7 +37,7 @@ import tempfile from packaging import logger from packaging.dist import Distribution from packaging.tests import unittest -from test.support import requires_zlib +from test.support import requires_zlib, unlink __all__ = ['LoggingCatcher', 'TempdirManager', 'EnvironRestorer', 'DummyCommand', 'unittest', 'create_distribution', @@ -121,20 +121,17 @@ class TempdirManager: def setUp(self): super(TempdirManager, self).setUp() + self._olddir = os.getcwd() self._basetempdir = tempfile.mkdtemp() self._files = [] def tearDown(self): - shutil.rmtree(self._basetempdir, os.name in ('nt', 'cygwin')) + os.chdir(self._olddir) + shutil.rmtree(self._basetempdir) for handle, name in self._files: handle.close() - if os.path.exists(name): - try: - os.remove(name) - except OSError as exc: - if exc.errno != errno.ENOENT: - raise + unlink(name) super(TempdirManager, self).tearDown() -- cgit v0.12