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:
Lars Gustäbel 2008-12-12 14:14:42 +00:00
parent 717d5d0a50
commit 696d6ba6b9
3 changed files with 5 additions and 10 deletions

View File

@ -2284,10 +2284,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, e:

View File

@ -256,17 +256,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 & 0777, os.stat(path).st_mode & 0777)
if sys.platform != "win32":
# Win32 has no support for fine grained permissions.
self.assertEqual(tarinfo.mode & 0777, os.stat(path).st_mode & 0777)
self.assertEqual(tarinfo.mtime, os.path.getmtime(path))
tar.close()

View File

@ -32,6 +32,8 @@ Core and Builtins
Library
-------
- Issue #4616: TarFile.utime(): Restore directory times on Windows.
- Issue #4483: _dbm module now builds on systems with gdbm & gdbm_compat
libs.