From 28917526fd8111483cfaf6cfb0ffe714f9ae9f1c Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Fri, 20 Mar 2015 14:56:33 +0100 Subject: Gracefully handle None from and subject values during tests. - Issue #248 --- service/pixelated/adapter/search/__init__.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'service/pixelated/adapter/search/__init__.py') 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: -- cgit v1.2.3