diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2010-11-01 21:39:13 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2010-11-01 21:39:13 (GMT) |
commit | 16f344df36a8a7d7c609eb7036bb52b8a9a47a23 (patch) | |
tree | 31a0a830b06d94a759541064c58080c768d9c4c7 /Lib/test/test_tarfile.py | |
parent | bbea35f194c6a2a64ce96526bd5eee37a75e8c0a (diff) | |
download | cpython-16f344df36a8a7d7c609eb7036bb52b8a9a47a23.zip cpython-16f344df36a8a7d7c609eb7036bb52b8a9a47a23.tar.gz cpython-16f344df36a8a7d7c609eb7036bb52b8a9a47a23.tar.bz2 |
Issue #10184: Touch directories only once when extracting a tarfile.
Diffstat (limited to 'Lib/test/test_tarfile.py')
-rw-r--r-- | Lib/test/test_tarfile.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 302ee85..daf46f7 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -377,6 +377,15 @@ class MiscReadTest(CommonReadTest): finally: tar.close() + def test_extract_directory(self): + dirtype = "ustar/dirtype" + with tarfile.open(tarname, encoding="iso8859-1") as tar: + tarinfo = tar.getmember(dirtype) + tar.extract(tarinfo) + self.assertEqual(os.path.getmtime(dirtype), tarinfo.mtime) + if sys.platform != "win32": + self.assertEqual(os.stat(dirtype).st_mode & 0o777, 0o755) + def test_init_close_fobj(self): # Issue #7341: Close the internal file object in the TarFile # constructor in case of an error. For the test we rely on |