summaryrefslogtreecommitdiff
path: root/service/test/unit/adapter
diff options
context:
space:
mode:
authorKlaus Fl <kfleerko@thoughtworks.com>2015-08-07 17:19:25 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:33 +0200
commit319e5e2ddd20444bb30f294a2fd08854dfaae494 (patch)
tree1d341aca9bb601170414275f0cc90b3e19b22359 /service/test/unit/adapter
parent8585a186716a4f45132e3c9eea90a792ca76c2a2 (diff)
Make indexing recepients work again by fixing serialization bug
Diffstat (limited to 'service/test/unit/adapter')
-rw-r--r--service/test/unit/adapter/mailstore/test_leap_mailstore.py32
-rw-r--r--service/test/unit/adapter/test_mail.py15
-rw-r--r--service/test/unit/adapter/test_mail_service.py2
3 files changed, 43 insertions, 6 deletions
diff --git a/service/test/unit/adapter/mailstore/test_leap_mailstore.py b/service/test/unit/adapter/mailstore/test_leap_mailstore.py
index 429f1683..eec40ced 100644
--- a/service/test/unit/adapter/mailstore/test_leap_mailstore.py
+++ b/service/test/unit/adapter/mailstore/test_leap_mailstore.py
@@ -17,6 +17,7 @@ import json
from uuid import uuid4
from email.parser import Parser
import os
+from leap.mail.utils import CaseInsensitiveDict
from leap.soledad.common.document import SoledadDocument
from leap.mail.adaptors.soledad_indexes import MAIL_INDEXES
from twisted.internet.defer import FirstError
@@ -31,24 +32,44 @@ from leap.mail.mail import Message
from pixelated.adapter.mailstore import underscore_uuid
from pixelated.adapter.mailstore.leap_mailstore import LeapMailStore, LeapMail
-import test.support.mockito
+
class TestLeapMail(TestCase):
def test_leap_mail(self):
mail = LeapMail('', 'INBOX', {'From': 'test@example.test', 'Subject': 'A test Mail', 'To': 'receiver@example.test'})
self.assertEqual('test@example.test', mail.from_sender)
- self.assertEqual('receiver@example.test', mail.to)
+ self.assertEqual(['receiver@example.test'], mail.to)
self.assertEqual('A test Mail', mail.subject)
+ def test_email_addresses_in_to_are_split_into_a_list(self):
+ mail = LeapMail('', 'INBOX', {'To': 'first@example.test,second@example.test'})
+
+ self.assertEqual(['first@example.test', 'second@example.test'],mail.headers['To'])
+
+ def test_email_addresses_in_cc_are_split_into_a_list(self):
+ mail = LeapMail('', 'INBOX', {'Cc': 'first@example.test,second@example.test'})
+
+ self.assertEqual(['first@example.test', 'second@example.test'],mail.headers['Cc'])
+
+ def test_email_addresses_in_bcc_are_split_into_a_list(self):
+ mail = LeapMail('', 'INBOX', {'Bcc': 'first@example.test,second@example.test'})
+
+ self.assertEqual(['first@example.test', 'second@example.test'],mail.headers['Bcc'])
+
+ def test_email_addresses_might_be_none(self):
+ mail = LeapMail('', 'INBOX', {'Cc': None})
+
+ self.assertEqual(None, mail.headers['Cc'])
+
def test_as_dict(self):
- mail = LeapMail('doc id', 'INBOX', {'From': 'test@example.test', 'Subject': 'A test Mail', 'To': 'receiver@example.test'}, ('foo', 'bar'))
+ mail = LeapMail('doc id', 'INBOX', {'From': 'test@example.test', 'Subject': 'A test Mail', 'To': 'receiver@example.test,receiver2@other.test'}, ('foo', 'bar'))
expected = {
'header': {
'from': 'test@example.test',
'subject': 'A test Mail',
- 'to': 'receiver@example.test',
+ 'to': ['receiver@example.test', 'receiver2@other.test'],
},
'ident': 'doc id',
@@ -87,6 +108,7 @@ class TestLeapMailStore(TestCase):
@defer.inlineCallbacks
def test_get_mail_not_exist(self):
+ when(self.soledad).get_doc(ANY()).thenAnswer(lambda: defer.succeed(None))
store = LeapMailStore(self.soledad)
mail = yield store.get_mail(_format_mdoc_id(uuid4(), 1))
@@ -103,7 +125,7 @@ class TestLeapMailStore(TestCase):
self.assertIsInstance(mail, LeapMail)
self.assertEqual('darby.senger@zemlak.biz', mail.from_sender)
- self.assertEqual('carmel@murazikortiz.name', mail.to)
+ self.assertEqual(['carmel@murazikortiz.name'], mail.to)
self.assertEqual('Itaque consequatur repellendus provident sunt quia.', mail.subject)
self.assertIsNone(mail.body)
self.assertEqual('INBOX', mail.mailbox_name)
diff --git a/service/test/unit/adapter/test_mail.py b/service/test/unit/adapter/test_mail.py
index 4751bfdd..d30e2485 100644
--- a/service/test/unit/adapter/test_mail.py
+++ b/service/test/unit/adapter/test_mail.py
@@ -438,6 +438,21 @@ class InputMailTest(unittest.TestCase):
self.assertNotRegexpMatches(mime_multipart.as_string(), "\nCc: \n")
self.assertNotRegexpMatches(mime_multipart.as_string(), "\nSubject: \n")
+ def test_single_recipient(self):
+ mail_single_recipient = {
+ 'body': '',
+ 'header': {
+ 'to': ['to@pixelated.org'],
+ 'cc': [''],
+ 'bcc': [''],
+ 'subject': 'Oi'
+ }
+ }
+
+ result = InputMail.from_dict(mail_single_recipient).raw
+
+ self.assertRegexpMatches(result, 'To: to@pixelated.org')
+
def test_to_mime_multipart(self):
pixelated.support.date.iso_now = lambda: 'date now'
diff --git a/service/test/unit/adapter/test_mail_service.py b/service/test/unit/adapter/test_mail_service.py
index 9d1521b8..361f28f9 100644
--- a/service/test/unit/adapter/test_mail_service.py
+++ b/service/test/unit/adapter/test_mail_service.py
@@ -89,7 +89,7 @@ class TestMailService(unittest.TestCase):
def test_delete_mail(self):
mail_to_delete = LeapMail(1, 'INBOX')
- when(self.mail_store).get_mail(1).thenReturn(mail_to_delete)
+ when(self.mail_store).get_mail(1).thenReturn(defer.succeed(mail_to_delete))
self.mail_service.delete_mail(1)