summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurélien Bompard <aurelien@bompard.org>2013-05-27 18:59:47 +0200
committerAurélien Bompard <aurelien@bompard.org>2013-05-27 18:59:47 +0200
commit91c10e88899497c76428f101667c3ab02bb7fe99 (patch)
tree07f38d86865e9d56ba5e22eaecbce82e717b855b
parentca0e0386e79c72b2dc28083ab2b6b85ef574b33d (diff)
downloadkittystore-91c10e88899497c76428f101667c3ab02bb7fe99.tar.gz
kittystore-91c10e88899497c76428f101667c3ab02bb7fe99.tar.xz
kittystore-91c10e88899497c76428f101667c3ab02bb7fe99.zip
Fix the storing of timezones
-rw-r--r--kittystore/storm/store.py2
-rw-r--r--kittystore/test/test_storm_store.py16
2 files changed, 17 insertions, 1 deletions
diff --git a/kittystore/storm/store.py b/kittystore/storm/store.py
index b4e0812..4afd463 100644
--- a/kittystore/storm/store.py
+++ b/kittystore/storm/store.py
@@ -121,10 +121,10 @@ class StormStore(object):
if msg_date is None:
# Absent or unparseable date
msg_date = datetime.datetime.now()
+ utcoffset = msg_date.utcoffset()
if msg_date.tzinfo is not None:
msg_date = msg_date.astimezone(tzutc()).replace(tzinfo=None)
email.date = msg_date
- utcoffset = msg_date.utcoffset()
if utcoffset is None:
email.timezone = 0
else:
diff --git a/kittystore/test/test_storm_store.py b/kittystore/test/test_storm_store.py
index 7ff7faa..b33304f 100644
--- a/kittystore/test/test_storm_store.py
+++ b/kittystore/test/test_storm_store.py
@@ -56,6 +56,22 @@ class TestStormStore(unittest.TestCase):
stored_msg = self.store.db.find(Email).one()
expected = datetime.datetime(2012, 11, 2, 16, 7, 54)
self.assertEqual(stored_msg.date, expected)
+ self.assertEqual(stored_msg.timezone, 0)
+
+ def test_date_aware(self):
+ msg = Message()
+ msg["From"] = "dummy@example.com"
+ msg["Message-ID"] = "<dummy>"
+ msg["Date"] = "Fri, 02 Nov 2012 16:07:54 +0100"
+ msg.set_payload("Dummy message")
+ try:
+ self.store.add_to_list(FakeList("example-list"), msg)
+ except IntegrityError, e:
+ self.fail(e)
+ stored_msg = self.store.db.find(Email).one()
+ expected = datetime.datetime(2012, 11, 2, 15, 7, 54)
+ self.assertEqual(stored_msg.date, expected)
+ self.assertEqual(stored_msg.timezone, 60)
def test_attachment_insert_order(self):
"""Attachments must not be inserted in the DB before the email"""