summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÉric Araujo <merwok@netwok.org>2011-08-19 01:07:39 (GMT)
committerÉric Araujo <merwok@netwok.org>2011-08-19 01:07:39 (GMT)
commite7329f47e777d75a6602418f3198589828c35fce (patch)
treeff8e347615836328b741af06e8d5d3b2e783305f
parent99c4c340e6bb61966643c54b4ff3db832237203a (diff)
downloadcpython-e7329f47e777d75a6602418f3198589828c35fce.zip
cpython-e7329f47e777d75a6602418f3198589828c35fce.tar.gz
cpython-e7329f47e777d75a6602418f3198589828c35fce.tar.bz2
Guard shutil._make_archive against a logger=None argument.
Backporting two lines from the 3.x tests was enough to trigger the bug. I also took the opportunity of making the logging call lazy.
-rw-r--r--Lib/shutil.py3
-rw-r--r--Lib/test/test_shutil.py4
-rw-r--r--Misc/NEWS2
3 files changed, 8 insertions, 1 deletions
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 9d922fb..59a38fe 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -359,7 +359,8 @@ def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0,
archive_dir = os.path.dirname(archive_name)
if not os.path.exists(archive_dir):
- logger.info("creating %s" % archive_dir)
+ if logger is not None:
+ logger.info("creating %s", archive_dir)
if not dry_run:
os.makedirs(archive_dir)
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index 9f9bf45..b4e5415 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -349,6 +349,8 @@ class TestShutil(unittest.TestCase):
self.write_file([tmpdir, 'sub', 'file3'], 'xxx')
tmpdir2 = self.mkdtemp()
+ # force shutil to create the directory
+ os.rmdir(tmpdir2)
unittest.skipUnless(splitdrive(tmpdir)[0] == splitdrive(tmpdir2)[0],
"source and target should be on same drive")
@@ -464,6 +466,8 @@ class TestShutil(unittest.TestCase):
self.write_file([tmpdir, 'file2'], 'xxx')
tmpdir2 = self.mkdtemp()
+ # force shutil to create the directory
+ os.rmdir(tmpdir2)
base_name = os.path.join(tmpdir2, 'archive')
_make_zipfile(base_name, tmpdir)
diff --git a/Misc/NEWS b/Misc/NEWS
index 679b4b0..78f4fa6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -40,6 +40,8 @@ Core and Builtins
Library
-------
+- Issue #9173: Let shutil._make_archive work if the logger argument is None.
+
- Issue #12650: Fix a race condition where a subprocess.Popen could leak
resources (FD/zombie) when killed at the wrong time.