From c00e4115f5bd205a0f65224dccd5e889e7cbf3b8 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Mon, 10 Aug 2015 14:51:55 +0200 Subject: Fixed unit and integration tests. --- service/pixelated/adapter/mailstore/leap_mailstore.py | 9 +++++++-- service/pixelated/adapter/search/__init__.py | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'service/pixelated/adapter') diff --git a/service/pixelated/adapter/mailstore/leap_mailstore.py b/service/pixelated/adapter/mailstore/leap_mailstore.py index 8831ae84..a641c35b 100644 --- a/service/pixelated/adapter/mailstore/leap_mailstore.py +++ b/service/pixelated/adapter/mailstore/leap_mailstore.py @@ -13,6 +13,7 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . +from email.header import decode_header from uuid import uuid4 from leap.mail.adaptors.soledad import SoledadMailAdaptor from twisted.internet import defer @@ -64,9 +65,13 @@ class LeapMail(Mail): @property def raw(self): - result = '' + result = u'' for k, v in self._headers.items(): - result += '%s: %s\n' % (k, v) + content, encoding = decode_header(v)[0] + if encoding: + result += '%s: %s\n' % (k, unicode(content, encoding=encoding)) + else: + result += '%s: %s\n' % (k, v) result += '\n' if self._body: diff --git a/service/pixelated/adapter/search/__init__.py b/service/pixelated/adapter/search/__init__.py index a95055d2..e1ce5e8c 100644 --- a/service/pixelated/adapter/search/__init__.py +++ b/service/pixelated/adapter/search/__init__.py @@ -129,9 +129,9 @@ class SearchEngine(object): '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', [''])]), - 'bcc': u','.join([h.decode('utf-8') for h in header.get('bcc', [''])]), + 'to': u','.join([h for h in header.get('to', [''])]), + 'cc': u','.join([h for h in header.get('cc', [''])]), + 'bcc': u','.join([h for h in header.get('bcc', [''])]), 'tag': u','.join(unique(tags)), 'bounced': u','.join(bounced), 'body': unicode(mdict['textPlainBody'] if 'textPlainBody' in mdict else mdict['body']), -- cgit v1.2.3