From 1b97be644dc362b92bdd8686e59245438316c147 Mon Sep 17 00:00:00 2001 From: Elena ``of Valhalla'' Grandi Date: Fri, 9 Oct 2020 09:49:43 +0200 Subject: Unix timestamps are assumed to be UTC. --- lesana/types.py | 7 +++++-- tests/test_types.py | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lesana/types.py b/lesana/types.py index ccdaf20..0f20a75 100644 --- a/lesana/types.py +++ b/lesana/types.py @@ -109,7 +109,7 @@ class LesanaDecimal(LesanaType): class LesanaTimestamp(LesanaType): """ - A unix timestamp + A unix timestamp, assumed to be UTC """ name = "timestamp" @@ -119,7 +119,10 @@ class LesanaTimestamp(LesanaType): if isinstance(data, datetime.datetime): return data try: - return datetime.datetime.fromtimestamp(int(data)) + return datetime.datetime.fromtimestamp( + int(data), + datetime.timezone.utc, + ) except (TypeError, ValueError): raise LesanaValueError( "Invalid value for timestamp field: {}".format(data) diff --git a/tests/test_types.py b/tests/test_types.py index 9e0c931..90f6482 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -126,7 +126,11 @@ class testTypes(unittest.TestCase): self.assertEqual(v, now) v = checker.load("1600000000") - self.assertEqual(v, datetime.datetime(2020, 9, 13, 14, 26, 40)) + wanted = datetime.datetime( + 2020, 9, 13, 12, 26, 40, 0, + datetime.timezone.utc, + ) + self.assertEqual(v, wanted) today = datetime.date.today() for d in ( -- cgit v1.2.3