summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/adapter/model/mail.py6
-rw-r--r--service/test/unit/adapter/test_mail.py11
2 files changed, 16 insertions, 1 deletions
diff --git a/service/pixelated/adapter/model/mail.py b/service/pixelated/adapter/model/mail.py
index e11c4048..ff58b330 100644
--- a/service/pixelated/adapter/model/mail.py
+++ b/service/pixelated/adapter/model/mail.py
@@ -21,6 +21,7 @@ from email.header import decode_header
from leap.mail.imap.fields import fields
import leap.mail.walk as walk
import dateutil.parser as dateparser
+from datetime import datetime
from pixelated.adapter.model.status import Status
import pixelated.support.date
from email.MIMEMultipart import MIMEMultipart
@@ -291,7 +292,10 @@ class PixelatedMail(Mail):
for header in ['From', 'Subject']:
_headers[header] = self._decode_header(hdoc_headers.get(header))
- _headers['Date'] = self._get_date()
+ try:
+ _headers['Date'] = self._get_date()
+ except Exception, e:
+ _headers['Date'] = pixelated.support.date.iso_now()
if self.parts and len(self.parts['alternatives']) > 1:
_headers['content_type'] = 'multipart/alternative; boundary="%s"' % self.boundary
diff --git a/service/test/unit/adapter/test_mail.py b/service/test/unit/adapter/test_mail.py
index 68b340a7..dc683bb6 100644
--- a/service/test/unit/adapter/test_mail.py
+++ b/service/test/unit/adapter/test_mail.py
@@ -67,6 +67,17 @@ class TestPixelatedMail(unittest.TestCase):
self.assertEqual(str(mail.headers['Date']), leap_mail_date_in_iso_format)
+ def test_use_datetime_now_as_fallback_for_invalid_date(self):
+ leap_mail_date = 'söme däte'
+ date_expected = "2014-09-03T13:11:15-03:00"
+ when(pixelated.support.date).iso_now().thenReturn(date_expected)
+
+ leap_mail = test_helper.leap_mail(headers={'date': leap_mail_date})
+
+ mail = PixelatedMail.from_soledad(*leap_mail, soledad_querier=self.querier)
+
+ self.assertEqual(str(mail.headers['Date']), date_expected)
+
def test_update_tags_return_a_set_with_the_current_tags(self):
soledad_docs = test_helper.leap_mail(extra_headers={'X-tags': '["custom_1", "custom_2"]'})
pixelated_mail = PixelatedMail.from_soledad(*soledad_docs, soledad_querier=self.querier)