Paper over bug 1054615 by passing sane values to os.utime().
The underlying bug still exists, but also existed in 2.3.4:
import.c's load_source_module() returns NULL if
PyOS_GetLastModificationTime() returns -1, but
PyOS_GetLastModificationTime() doesn't set any exception when it returns
-1, and neither does load_source_module() when it gets back -1. This
leads to "SystemError: NULL result without error in PyObject_Call"
on an import that fails in this way.
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py
index 6812095..0a614ae 100644
--- a/Lib/test/test_traceback.py
+++ b/Lib/test/test_traceback.py
@@ -41,7 +41,8 @@
self.assert_(err[1].strip() == "[x for x in x] = x")
def test_bug737473(self):
- import sys, os, tempfile
+ import sys, os, tempfile, time
+
savedpath = sys.path[:]
testdir = tempfile.mkdtemp()
try:
@@ -51,8 +52,10 @@
def test():
raise ValueError"""
+ # XXX Unclear why we're doing this next bit.
if hasattr(os, 'utime'):
- os.utime(testfile, (0, 0))
+ past = time.time() - 3
+ os.utime(testfile, (past, past))
else:
import time
time.sleep(3) # not to stay in same mtime.