From 1b97be644dc362b92bdd8686e59245438316c147 Mon Sep 17 00:00:00 2001
From: Elena ``of Valhalla'' Grandi <valhalla@trueelena.org>
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