diff options
author | Folker Bernitt <fbernitt@thoughtworks.com> | 2015-03-20 14:56:33 +0100 |
---|---|---|
committer | Folker Bernitt <fbernitt@thoughtworks.com> | 2015-03-20 14:56:33 +0100 |
commit | 28917526fd8111483cfaf6cfb0ffe714f9ae9f1c (patch) | |
tree | c0fdb536063d0e6e388d7a5d7406777fc9f9519e /service/pixelated/adapter/search/__init__.py | |
parent | 0b315e9c26c2d815111d1517cb8d4598fc341dc6 (diff) |
Gracefully handle None from and subject values during tests.
- Issue #248
Diffstat (limited to 'service/pixelated/adapter/search/__init__.py')
-rw-r--r-- | service/pixelated/adapter/search/__init__.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/service/pixelated/adapter/search/__init__.py b/service/pixelated/adapter/search/__init__.py index dcdade11..91eff4c3 100644 --- a/service/pixelated/adapter/search/__init__.py +++ b/service/pixelated/adapter/search/__init__.py @@ -129,8 +129,8 @@ class SearchEngine(object): bounced = mail.bounced if mail.bounced else [''] index_data = { - 'sender': unicode(header.get('from', '').decode('utf-8')), - 'subject': unicode(header.get('subject', '').decode('utf-8')), + 'sender': self._unicode_header_field(header.get('from', '')), + 'subject': self._unicode_header_field(header.get('subject', '')), 'date': milliseconds(header.get('date', '')), 'to': u','.join([h.decode('utf-8') for h in header.get('to', [''])]), 'cc': u','.join([h.decode('utf-8') for h in header.get('cc', [''])]), @@ -145,6 +145,12 @@ class SearchEngine(object): writer.update_document(**index_data) + def _unicode_header_field(self, field_value): + if not field_value: + return None + + return unicode(field_value.decode('utf-8')) + def index_mails(self, mails, callback=None): try: with self._write_lock: |