diff options
| -rw-r--r-- | service/pixelated/adapter/model/mail.py | 6 | ||||
| -rw-r--r-- | service/test/unit/adapter/test_mail.py | 11 | 
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) | 
