Issue #23517: fromtimestamp() and utcfromtimestamp() methods of

datetime.datetime now round microseconds to nearest with ties going away from
zero (ROUND_HALF_UP), as Python 2 and Python older than 3.3, instead of
rounding towards -Infinity (ROUND_FLOOR).
This commit is contained in:
Victor Stinner 2015-09-03 09:06:44 +02:00
parent 0fa5ef72b7
commit 2ec5bd6fb2
4 changed files with 14 additions and 8 deletions

View file

@ -1847,6 +1847,7 @@ class TestDateTime(TestDate):
zero = fts(0)
self.assertEqual(zero.second, 0)
self.assertEqual(zero.microsecond, 0)
one = fts(1e-6)
try:
minus_one = fts(-1e-6)
except OSError:
@ -1857,22 +1858,22 @@ class TestDateTime(TestDate):
self.assertEqual(minus_one.microsecond, 999999)
t = fts(-1e-8)
self.assertEqual(t, minus_one)
self.assertEqual(t, zero)
t = fts(-9e-7)
self.assertEqual(t, minus_one)
t = fts(-1e-7)
self.assertEqual(t, minus_one)
self.assertEqual(t, zero)
t = fts(1e-7)
self.assertEqual(t, zero)
t = fts(9e-7)
self.assertEqual(t, zero)
self.assertEqual(t, one)
t = fts(0.99999949)
self.assertEqual(t.second, 0)
self.assertEqual(t.microsecond, 999999)
t = fts(0.9999999)
self.assertEqual(t.second, 0)
self.assertEqual(t.microsecond, 999999)
self.assertEqual(t.second, 1)
self.assertEqual(t.microsecond, 0)
def test_insane_fromtimestamp(self):
# It's possible that some platform maps time_t to double,