Commit abf202d7 authored by Nick Coghlan's avatar Nick Coghlan

Close #11548: Correctly handle format argument in shutil.unpack_archive

parent a78e4e6d
......@@ -737,8 +737,8 @@ def unpack_archive(filename, extract_dir=None, format=None):
except KeyError:
raise ValueError("Unknown unpack format '{0}'".format(format))
func = format_info[0]
func(filename, extract_dir, **dict(format_info[1]))
func = format_info[1]
func(filename, extract_dir, **dict(format_info[2]))
else:
# we need to look at the registered unpackers supported extensions
format = _find_unpack_format(filename)
......
......@@ -645,6 +645,14 @@ class TestShutil(unittest.TestCase):
diff = self._compare_dirs(tmpdir, tmpdir2)
self.assertEqual(diff, [])
# and again, this time with the format specified
tmpdir3 = self.mkdtemp()
unpack_archive(filename, tmpdir3, format=format)
diff = self._compare_dirs(tmpdir, tmpdir3)
self.assertEqual(diff, [])
self.assertRaises(shutil.ReadError, unpack_archive, TESTFN)
self.assertRaises(ValueError, unpack_archive, TESTFN, format='xxx')
def test_unpack_registery(self):
formats = get_unpack_formats()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment