summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/search/__init__.py
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2015-03-20 14:56:33 +0100
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-03-20 14:56:33 +0100
commit28917526fd8111483cfaf6cfb0ffe714f9ae9f1c (patch)
treec0fdb536063d0e6e388d7a5d7406777fc9f9519e /service/pixelated/adapter/search/__init__.py
parent0b315e9c26c2d815111d1517cb8d4598fc341dc6 (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__.py10
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: