summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_os.py31
-rw-r--r--Lib/test/test_time.py33
2 files changed, 60 insertions, 4 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 4d27c2b..379dc58e 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -2,6 +2,7 @@
# does add tests for a few functions which have been determined to be more
# portable than they had been thought to be.
+import decimal
import os
import errno
import unittest
@@ -238,6 +239,36 @@ class StatAttributeTests(unittest.TestCase):
warnings.simplefilter("ignore", DeprecationWarning)
self.check_stat_attributes(fname)
+ def test_stat_timestamp(self):
+ # test deprecation
+ with warnings.catch_warnings():
+ warnings.simplefilter("error", DeprecationWarning)
+ self.assertRaises(DeprecationWarning, os.stat_float_times, False)
+
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", DeprecationWarning)
+ old_value = os.stat_float_times()
+ try:
+ # test invalid timestamp types
+ self.assertRaises(ValueError, os.stat, self.fname,
+ timestamp="abc")
+ self.assertRaises(ValueError, os.stat, self.fname,
+ timestamp=decimal.Context)
+
+ for float_times in (False, True):
+ os.stat_float_times(float_times)
+ t = os.stat(self.fname).st_mtime
+ if float_times:
+ self.assertIsInstance(t, float)
+ else:
+ self.assertIsInstance(t, int)
+
+ for type in (int, float, decimal.Decimal):
+ t = os.stat(self.fname, timestamp=type).st_mtime
+ self.assertIsInstance(t, type)
+ finally:
+ os.stat_float_times(old_value)
+
def test_statvfs_attributes(self):
if not hasattr(os, "statvfs"):
return
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index a89c511..52904fa 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -1,10 +1,10 @@
+import locale
+import platform
+import sys
+import sysconfig
from test import support
import time
import unittest
-import locale
-import sysconfig
-import sys
-import platform
# Max year is only limited by the size of C int.
SIZEOF_INT = sysconfig.get_config_var('SIZEOF_INT') or 4
@@ -345,6 +345,31 @@ class TimeTestCase(unittest.TestCase):
self.assertGreater(t2, t1)
self.assertAlmostEqual(dt, 0.1, delta=0.2)
+ def test_timestamp(self):
+ import decimal
+ calls = [
+ (time.time,),
+ (time.mktime, time.localtime()),
+ ]
+ if hasattr(time, 'monotonic'):
+ calls.append((time.monotonic,))
+ if hasattr(time, 'wallclock'):
+ calls.append((time.wallclock,))
+ if hasattr(time, 'CLOCK_REALTIME'):
+ if hasattr(time, 'clock_gettime'):
+ calls.append((time.clock_gettime, time.CLOCK_REALTIME))
+ if hasattr(time, 'clock_getres'):
+ calls.append((time.clock_getres, time.CLOCK_REALTIME))
+ for call in calls:
+ func, *args = call
+
+ # test invalid timestamp
+ for invalid in ("int", decimal.Context):
+ self.assertRaises(ValueError, func, *args, timestamp=invalid)
+
+ for type in (int, float, decimal.Decimal):
+ self.assertIsInstance(func(*args, timestamp=type), type)
+
def test_wallclock(self):
t1 = time.wallclock()
t2 = time.wallclock()