Kaydet (Commit) be647e28 authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Remove extracted trees at the end of the test.

üst 16f344df
...@@ -355,11 +355,13 @@ class MiscReadTest(CommonReadTest): ...@@ -355,11 +355,13 @@ class MiscReadTest(CommonReadTest):
# Test if extractall() correctly restores directory permissions # Test if extractall() correctly restores directory permissions
# and times (see issue1735). # and times (see issue1735).
tar = tarfile.open(tarname, encoding="iso8859-1") tar = tarfile.open(tarname, encoding="iso8859-1")
DIR = os.path.join(TEMPDIR, "extractall")
os.mkdir(DIR)
try: try:
directories = [t for t in tar if t.isdir()] directories = [t for t in tar if t.isdir()]
tar.extractall(TEMPDIR, directories) tar.extractall(DIR, directories)
for tarinfo in directories: for tarinfo in directories:
path = os.path.join(TEMPDIR, tarinfo.name) path = os.path.join(DIR, tarinfo.name)
if sys.platform != "win32": if sys.platform != "win32":
# Win32 has no support for fine grained permissions. # Win32 has no support for fine grained permissions.
self.assertEqual(tarinfo.mode & 0o777, os.stat(path).st_mode & 0o777) self.assertEqual(tarinfo.mode & 0o777, os.stat(path).st_mode & 0o777)
...@@ -376,15 +378,22 @@ class MiscReadTest(CommonReadTest): ...@@ -376,15 +378,22 @@ class MiscReadTest(CommonReadTest):
self.assertEqual(tarinfo.mtime, file_mtime, errmsg) self.assertEqual(tarinfo.mtime, file_mtime, errmsg)
finally: finally:
tar.close() tar.close()
shutil.rmtree(DIR)
def test_extract_directory(self): def test_extract_directory(self):
dirtype = "ustar/dirtype" dirtype = "ustar/dirtype"
with tarfile.open(tarname, encoding="iso8859-1") as tar: DIR = os.path.join(TEMPDIR, "extractdir")
tarinfo = tar.getmember(dirtype) os.mkdir(DIR)
tar.extract(tarinfo) try:
self.assertEqual(os.path.getmtime(dirtype), tarinfo.mtime) with tarfile.open(tarname, encoding="iso8859-1") as tar:
if sys.platform != "win32": tarinfo = tar.getmember(dirtype)
self.assertEqual(os.stat(dirtype).st_mode & 0o777, 0o755) tar.extract(tarinfo, path=DIR)
extracted = os.path.join(DIR, dirtype)
self.assertEqual(os.path.getmtime(extracted), tarinfo.mtime)
if sys.platform != "win32":
self.assertEqual(os.stat(extracted).st_mode & 0o777, 0o755)
finally:
shutil.rmtree(DIR)
def test_init_close_fobj(self): def test_init_close_fobj(self):
# Issue #7341: Close the internal file object in the TarFile # Issue #7341: Close the internal file object in the TarFile
......
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