From c98aad18880d4e3e9601a74c9749dbc38916b5d5 Mon Sep 17 00:00:00 2001 From: Julien Muchembled Date: Thu, 5 May 2016 05:09:19 +0200 Subject: [PATCH] TimeStamp: sub-second precision for Python implementation of timeTime() The fractional part of return values was always 0. --- persistent/tests/test_timestamp.py | 3 ++- persistent/timestamp.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/persistent/tests/test_timestamp.py b/persistent/tests/test_timestamp.py index f83c31d..1bb40ef 100644 --- a/persistent/tests/test_timestamp.py +++ b/persistent/tests/test_timestamp.py @@ -100,9 +100,10 @@ def test_ctor_from_string(self): self.assertEqual(ts.timeTime(), DELTA_SECS) def test_ctor_from_string_non_zero(self): - before = self._makeOne(2011, 2, 16, 14, 37, 22.0) + before = self._makeOne(2011, 2, 16, 14, 37, 22.80544) after = self._makeOne(before.raw()) self.assertEqual(before.raw(), after.raw()) + self.assertEqual(before.timeTime(), 1297867042.80544) def test_ctor_from_elements(self): from persistent.timestamp import _makeOctets diff --git a/persistent/timestamp.py b/persistent/timestamp.py index df99dc5..195eee1 100644 --- a/persistent/timestamp.py +++ b/persistent/timestamp.py @@ -119,7 +119,7 @@ def timeTime(self): """ -> seconds since epoch, as a float. """ delta = _makeUTC(*self._elements) - _EPOCH - return delta.days * 86400.0 + delta.seconds + return delta.days * 86400 + delta.seconds + delta.microseconds / 1e6 def laterThan(self, other): """ Return a timestamp instance which is later than 'other'.