mirror of
https://github.com/python/cpython.git
synced 2025-08-18 07:41:05 +00:00
PEP 410
This commit is contained in:
parent
6f91ce74a0
commit
ccd5715a14
9 changed files with 814 additions and 174 deletions
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue