Fixed #22681 -- Made TarArchive recognize leading directories properly.
This commit is contained in:
parent
61960dd02c
commit
083d285b82
|
@ -144,7 +144,7 @@ class TarArchive(BaseArchive):
|
||||||
# note: python<=2.5 doesn't seem to know about pax headers, filter them
|
# note: python<=2.5 doesn't seem to know about pax headers, filter them
|
||||||
members = [member for member in self._archive.getmembers()
|
members = [member for member in self._archive.getmembers()
|
||||||
if member.name != 'pax_global_header']
|
if member.name != 'pax_global_header']
|
||||||
leading = self.has_leading_dir(members)
|
leading = self.has_leading_dir(x.name for x in members)
|
||||||
for member in members:
|
for member in members:
|
||||||
name = member.name
|
name = member.name
|
||||||
if leading:
|
if leading:
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -21,6 +21,7 @@ class ArchiveTester(object):
|
||||||
self.tmpdir = tempfile.mkdtemp()
|
self.tmpdir = tempfile.mkdtemp()
|
||||||
self.addCleanup(shutil.rmtree, self.tmpdir)
|
self.addCleanup(shutil.rmtree, self.tmpdir)
|
||||||
self.archive_path = os.path.join(TEST_DIR, self.archive)
|
self.archive_path = os.path.join(TEST_DIR, self.archive)
|
||||||
|
self.archive_lead_path = os.path.join(TEST_DIR, "leadpath_%s" % self.archive)
|
||||||
# Always start off in TEST_DIR.
|
# Always start off in TEST_DIR.
|
||||||
os.chdir(TEST_DIR)
|
os.chdir(TEST_DIR)
|
||||||
|
|
||||||
|
@ -42,6 +43,10 @@ class ArchiveTester(object):
|
||||||
extract(self.archive_path, self.tmpdir)
|
extract(self.archive_path, self.tmpdir)
|
||||||
self.check_files(self.tmpdir)
|
self.check_files(self.tmpdir)
|
||||||
|
|
||||||
|
def test_extract_function_with_leadpath(self):
|
||||||
|
extract(self.archive_lead_path, self.tmpdir)
|
||||||
|
self.check_files(self.tmpdir)
|
||||||
|
|
||||||
def test_extract_function_no_to_path(self):
|
def test_extract_function_no_to_path(self):
|
||||||
os.chdir(self.tmpdir)
|
os.chdir(self.tmpdir)
|
||||||
extract(self.archive_path)
|
extract(self.archive_path)
|
||||||
|
|
Loading…
Reference in New Issue