Merged revisions 67717 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r67717 | lars.gustaebel | 2008-12-12 14:58:03 +0100 (Fri, 12 Dec 2008) | 2 lines Issue #4616: TarFile.utime(): Restore directory times on Windows. ........
This commit is contained in:
parent
a5bbf20017
commit
43fcf3a493
|
@ -2265,10 +2265,6 @@ class TarFile(object):
|
|||
"""
|
||||
if not hasattr(os, 'utime'):
|
||||
return
|
||||
if sys.platform == "win32" and tarinfo.isdir():
|
||||
# According to msdn.microsoft.com, it is an error (EACCES)
|
||||
# to use utime() on directories.
|
||||
return
|
||||
try:
|
||||
os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime))
|
||||
except EnvironmentError as e:
|
||||
|
|
|
@ -255,17 +255,14 @@ class MiscReadTest(ReadTest):
|
|||
def test_extractall(self):
|
||||
# Test if extractall() correctly restores directory permissions
|
||||
# and times (see issue1735).
|
||||
if sys.platform == "win32":
|
||||
# Win32 has no support for utime() on directories or
|
||||
# fine grained permissions.
|
||||
return
|
||||
|
||||
tar = tarfile.open(tarname, encoding="iso8859-1")
|
||||
directories = [t for t in tar if t.isdir()]
|
||||
tar.extractall(TEMPDIR, directories)
|
||||
for tarinfo in directories:
|
||||
path = os.path.join(TEMPDIR, tarinfo.name)
|
||||
self.assertEqual(tarinfo.mode & 0o777, os.stat(path).st_mode & 0o777)
|
||||
if sys.platform != "win32":
|
||||
# Win32 has no support for fine grained permissions.
|
||||
self.assertEqual(tarinfo.mode & 0o777, os.stat(path).st_mode & 0o777)
|
||||
self.assertEqual(tarinfo.mtime, os.path.getmtime(path))
|
||||
tar.close()
|
||||
|
||||
|
|
Loading…
Reference in New Issue