From 4bdd9f36a0c1ad8ec0cb95f3a4e014df1e6046a4 Mon Sep 17 00:00:00 2001 From: Tarek Ziade Date: Sat, 21 May 2011 15:12:10 +0200 Subject: fixed the move api in packaging.install, and closing the handle left by mkstemp() in its test module --- Lib/packaging/install.py | 6 ++---- Lib/packaging/tests/test_install.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Lib/packaging/install.py b/Lib/packaging/install.py index 3904727..92657ea 100644 --- a/Lib/packaging/install.py +++ b/Lib/packaging/install.py @@ -47,10 +47,8 @@ def _move_files(files, destination): destination = tempfile.mkdtemp() for old in files: - # not using os.path.join() because basename() might not be - # unique in destination - new = "%s%s" % (destination, old) - + filename = os.path.split(old)[-1] + new = os.path.join(destination, filename) # try to make the paths. try: os.makedirs(os.path.dirname(new)) diff --git a/Lib/packaging/tests/test_install.py b/Lib/packaging/tests/test_install.py index 7bdee94..01c3dcf 100644 --- a/Lib/packaging/tests/test_install.py +++ b/Lib/packaging/tests/test_install.py @@ -43,16 +43,18 @@ class ToInstallDist: self.version = "fake" if files: for f in range(0, 3): - self._real_files.append(mkstemp()) + fp, fn = mkstemp() + os.close(fp) + self._real_files.append(fn) def _unlink_installed_files(self): if self._files: - for f in self._real_files: - os.unlink(f[1]) + for fn in self._real_files: + os.unlink(fn) def list_installed_files(self, **args): if self._files: - return [f[1] for f in self._real_files] + return self._real_files def get_install(self, **args): return self.list_installed_files() @@ -231,8 +233,10 @@ class TestInstall(LoggingCatcher, TempdirManager, unittest.TestCase): output = [o for o in install._move_files(files, newpath)] # check that output return the list of old/new places - for f in files: - self.assertIn((f, '%s%s' % (newpath, f)), output) + for file_ in files: + name = os.path.split(file_)[-1] + newloc = os.path.join(newpath, name) + self.assertIn((file_, newloc), output) # remove the files for f in [o[1] for o in output]: # o[1] is the new place -- cgit v0.12