diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_os.py | 31 | ||||
-rw-r--r-- | Lib/test/test_time.py | 33 |
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() |