mirror of https://github.com/python/cpython
Revert utime(..., None) strategy (it has too poor resolution under Windows) and restore the previous test workaround
(issue #19715)
This commit is contained in:
parent
c3055be5f3
commit
12820c0d5d
|
@ -6,6 +6,7 @@ import os
|
|||
import posixpath
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import weakref
|
||||
try:
|
||||
import threading
|
||||
|
@ -1075,8 +1076,9 @@ class Path(PurePath):
|
|||
# First try to bump modification time
|
||||
# Implementation note: GNU touch uses the UTIME_NOW option of
|
||||
# the utimensat() / futimens() functions.
|
||||
t = time.time()
|
||||
try:
|
||||
self._accessor.utime(self, None)
|
||||
self._accessor.utime(self, (t, t))
|
||||
except OSError:
|
||||
# Avoid exception chaining
|
||||
pass
|
||||
|
|
|
@ -1391,8 +1391,11 @@ class _BasePathTest(object):
|
|||
# The file mtime should be refreshed by calling touch() again
|
||||
p.touch()
|
||||
st = p.stat()
|
||||
self.assertGreaterEqual(st.st_mtime_ns, old_mtime_ns)
|
||||
self.assertGreaterEqual(st.st_mtime, old_mtime)
|
||||
# Issue #19715: there can be an inconsistency under Windows between
|
||||
# the timestamp rounding when creating a file, and the timestamp
|
||||
# rounding done when calling utime(). `delta` makes up for this.
|
||||
delta = 1e-6 if os.name == 'nt' else 0
|
||||
self.assertGreaterEqual(st.st_mtime, old_mtime - delta)
|
||||
# Now with exist_ok=False
|
||||
p = P / 'newfileB'
|
||||
self.assertFalse(p.exists())
|
||||
|
|
Loading…
Reference in New Issue