diff options
author | Giovane <giovaneliberato@gmail.com> | 2016-01-14 18:34:00 -0200 |
---|---|---|
committer | Bruno Wagner <bwagner@riseup.net> | 2016-01-15 11:11:55 -0200 |
commit | cd831d1dfc42c2a0d292fe5c1b7f497b2ca393eb (patch) | |
tree | 4069da65211b163f7718b8628349976748a6d0ee /service/test/unit/adapter | |
parent | 36972dc55f64100f4e056130cc1d32a266785a41 (diff) |
Removes InputMail.FROM_EMAIL_ADDRESS constant #578
- Created the replier component to generate the reply dict for the
email. This was needed to decouple the InputMail from the need to know
who is the logged user.
Diffstat (limited to 'service/test/unit/adapter')
-rw-r--r-- | service/test/unit/adapter/mailstore/test_leap_mail.py | 102 | ||||
-rw-r--r-- | service/test/unit/adapter/services/test_mail_sender.py | 6 | ||||
-rw-r--r-- | service/test/unit/adapter/test_draft_service.py | 2 | ||||
-rw-r--r-- | service/test/unit/adapter/test_mail.py | 16 | ||||
-rw-r--r-- | service/test/unit/adapter/test_mail_service.py | 8 |
5 files changed, 15 insertions, 119 deletions
diff --git a/service/test/unit/adapter/mailstore/test_leap_mail.py b/service/test/unit/adapter/mailstore/test_leap_mail.py index 91e960e1..cd8852ad 100644 --- a/service/test/unit/adapter/mailstore/test_leap_mail.py +++ b/service/test/unit/adapter/mailstore/test_leap_mail.py @@ -68,11 +68,6 @@ class TestLeapMail(TestCase): 'imprints': [{'state': 'no_signature_information'}], 'locks': [] }, - 'replying': {'all': {'cc-field': [], - 'to-field': ['receiver@example.test', - 'test@example.test', - 'receiver2@other.test']}, - 'single': 'test@example.test'}, 'attachments': [] } @@ -105,103 +100,6 @@ class TestLeapMail(TestCase): self.assertEqual([expected_address], mail.as_dict()['header']['cc']) self.assertEqual(expected_subject, mail.as_dict()['header']['subject']) - def test_as_dict_replying_with_special_chars(self): - expected_address = u'"\xc4lbert \xdcbr\xf6" <\xe4\xfc\xf6@example.mail>' - mail = LeapMail('', 'INBOX', - {'From': '=?iso-8859-1?q?=22=C4lbert_=DCbr=F6=22_=3C=E4=FC=F6=40example=2Email=3E?=', - 'To': '=?iso-8859-1?q?=22=C4lbert_=DCbr=F6=22_=3C=E4=FC=F6=40example=2Email=3E?=', - 'Cc': '=?iso-8859-1?q?=22=C4lbert_=DCbr=F6=22_=3C=E4=FC=F6=40example=2Email=3E?=', - 'Subject': '=?iso-8859-1?q?H=E4ll=F6_W=F6rld?='}) - self.assertEqual([expected_address], mail.as_dict()['replying']['all']['to-field']) - self.assertEqual([expected_address], mail.as_dict()['replying']['all']['cc-field']) - self.assertEqual(expected_address, mail.as_dict()['replying']['single']) - - def test_reply_all_result_does_not_contain_own_address_in_to_with_spaces(self): - my_address = 'myaddress@example.test' - - with patch('pixelated.adapter.mailstore.leap_mailstore.InputMail.FROM_EMAIL_ADDRESS', my_address): - mail = LeapMail('', 'INBOX', - {'From': 'test@example.test', - 'To': 'receiver@example.test, %s ' % my_address}) - expected_recipients = ['receiver@example.test', 'test@example.test'] - actual_recipients = mail.as_dict()['replying']['all']['to-field'] - expected_recipients.sort() - actual_recipients.sort() - - self.assertEqual(expected_recipients, actual_recipients) - - def test_reply_all_result_does_not_contain_own_address_in_to_with_name(self): - my_address = 'myaddress@example.test' - - with patch('pixelated.adapter.mailstore.leap_mailstore.InputMail.FROM_EMAIL_ADDRESS', my_address): - mail = LeapMail('', 'INBOX', - {'From': 'test@example.test', - 'To': 'receiver@example.test, Folker Bernitt <%s>' % my_address}) - - expected_recipients = ['receiver@example.test', 'test@example.test'] - actual_recipients = mail.as_dict()['replying']['all']['to-field'] - expected_recipients.sort() - actual_recipients.sort() - - self.assertEqual(expected_recipients, actual_recipients) - - # TODO: fix this test - def test_reply_all_does_not_contain_own_address_in_to_field_with_different_encodings(self): - my_address = 'myaddress@example.test' - - with patch('pixelated.adapter.mailstore.leap_mailstore.InputMail.FROM_EMAIL_ADDRESS', my_address): - mail = LeapMail('', 'INBOX', - {'From': 'test@example.test', - 'To': 'receiver@example.test, =?iso-8859-1?q?=C4lbert_=3Cmyaddress=40example=2Etest=3E?='}) - - expected_recipients = [u'receiver@example.test', u'test@example.test'] - actual_recipients = mail.as_dict()['replying']['all']['to-field'] - expected_recipients.sort() - actual_recipients.sort() - - self.assertEqual(expected_recipients, actual_recipients) - - def test_reply_all_result_does_not_contain_own_address_in_cc(self): - my_address = 'myaddress@example.test' - - with patch('pixelated.adapter.mailstore.leap_mailstore.InputMail.FROM_EMAIL_ADDRESS', my_address): - mail = LeapMail('', 'INBOX', - {'From': 'test@example.test', - 'To': 'receiver@example.test', - 'Cc': my_address}) - - self.assertEqual([my_address], mail.as_dict()['replying']['all']['cc-field']) - - def test_reply_all_result_does_not_contain_own_address_if_sender(self): - my_address = 'myaddress@example.test' - - with patch('pixelated.adapter.mailstore.leap_mailstore.InputMail.FROM_EMAIL_ADDRESS', my_address): - mail = LeapMail('', 'INBOX', - {'From': 'myaddress@example.test', - 'To': 'receiver@example.test'}) - - self.assertEqual(['receiver@example.test'], mail.as_dict()['replying']['all']['to-field']) - - def test_reply_all_result_does_contain_own_address_if_only_recipient(self): - my_address = 'myaddress@example.test' - - with patch('pixelated.adapter.mailstore.leap_mailstore.InputMail.FROM_EMAIL_ADDRESS', my_address): - mail = LeapMail('', 'INBOX', - {'From': 'myaddress@example.test', - 'To': 'myaddress@example.test'}) - - self.assertEqual(['myaddress@example.test'], mail.as_dict()['replying']['all']['to-field']) - - def test_reply_result_swaps_sender_and_recipient_if_i_am_the_sender(self): - my_address = 'myaddress@example.test' - - with patch('pixelated.adapter.mailstore.leap_mailstore.InputMail.FROM_EMAIL_ADDRESS', my_address): - mail = LeapMail('', 'INBOX', - {'From': 'myaddress@example.test', - 'To': 'recipient@example.test'}) - - self.assertEqual('myaddress@example.test', mail.as_dict()['replying']['single']) - def test_as_dict_with_mixed_encodings(self): subject = 'Another test with =?iso-8859-1?B?3G1s5Px0?= =?iso-8859-1?Q?s?=' mail = LeapMail('', 'INBOX', diff --git a/service/test/unit/adapter/services/test_mail_sender.py b/service/test/unit/adapter/services/test_mail_sender.py index cd4a84c3..9a7e8fea 100644 --- a/service/test/unit/adapter/services/test_mail_sender.py +++ b/service/test/unit/adapter/services/test_mail_sender.py @@ -67,7 +67,7 @@ class MailSenderTest(unittest.TestCase): @defer.inlineCallbacks def test_iterates_over_recipients(self): - input_mail = InputMail.from_dict(mail_dict()) + input_mail = InputMail.from_dict(mail_dict(), from_address='pixelated@org') when(OutgoingMail).send_message(any(), any()).thenReturn(defer.succeed(None)) @@ -78,7 +78,7 @@ class MailSenderTest(unittest.TestCase): @defer.inlineCallbacks def test_problem_with_email_raises_exception(self): - input_mail = InputMail.from_dict(mail_dict()) + input_mail = InputMail.from_dict(mail_dict(), from_address='pixelated@org') when(OutgoingMail).send_message(any(), any()).thenReturn(defer.fail(Exception('pretend something went wrong'))) @@ -91,7 +91,7 @@ class MailSenderTest(unittest.TestCase): @defer.inlineCallbacks def test_iterates_over_recipients_and_send_whitout_bcc_field(self): - input_mail = InputMail.from_dict(mail_dict()) + input_mail = InputMail.from_dict(mail_dict(), from_address='pixelated@org') bccs = input_mail.bcc when(OutgoingMail).send_message(any(), any()).thenReturn(defer.succeed(None)) diff --git a/service/test/unit/adapter/test_draft_service.py b/service/test/unit/adapter/test_draft_service.py index bf5e18c5..c2516013 100644 --- a/service/test/unit/adapter/test_draft_service.py +++ b/service/test/unit/adapter/test_draft_service.py @@ -22,7 +22,7 @@ class DraftServiceTest(unittest.TestCase): verify(self.mail_store).add_mail('DRAFTS', mail.raw) def test_update_draft(self): - mail = InputMail.from_dict(test_helper.mail_dict()) + mail = InputMail.from_dict(test_helper.mail_dict(), from_address='pixelated@org') when(self.mail_store).delete_mail(mail.ident).thenReturn(defer.succeed(True)) when(self.mail_store).add_mail('DRAFTS', mail.raw).thenReturn(defer.succeed(LeapMail('id', 'DRAFTS'))) diff --git a/service/test/unit/adapter/test_mail.py b/service/test/unit/adapter/test_mail.py index 6e4943fa..d66eddd9 100644 --- a/service/test/unit/adapter/test_mail.py +++ b/service/test/unit/adapter/test_mail.py @@ -81,7 +81,7 @@ class InputMailTest(unittest.TestCase): mail_dict['header']['cc'] = '' mail_dict['header']['subject'] = '' - mime_multipart = InputMail.from_dict(mail_dict).to_mime_multipart() + mime_multipart = InputMail.from_dict(mail_dict, from_address='pixelated@org').to_mime_multipart() self.assertNotRegexpMatches(mime_multipart.as_string(), "\nTo: \n") self.assertNotRegexpMatches(mime_multipart.as_string(), "\nBcc: \n") @@ -99,14 +99,14 @@ class InputMailTest(unittest.TestCase): } } - result = InputMail.from_dict(mail_single_recipient).raw + result = InputMail.from_dict(mail_single_recipient, from_address='pixelated@org').raw self.assertRegexpMatches(result, 'To: to@pixelated.org') def test_to_mime_multipart(self): pixelated.support.date.mail_date_now = lambda: 'date now' - mime_multipart = InputMail.from_dict(simple_mail_dict()).to_mime_multipart() + mime_multipart = InputMail.from_dict(simple_mail_dict(), from_address='pixelated@org').to_mime_multipart() self.assertRegexpMatches(mime_multipart.as_string(), "\nTo: to@pixelated.org, anotherto@pixelated.org\n") self.assertRegexpMatches(mime_multipart.as_string(), "\nCc: cc@pixelated.org, anothercc@pixelated.org\n") @@ -120,20 +120,18 @@ class InputMailTest(unittest.TestCase): mail_dict['header']['to'] = u'"Älbert Übrö \xF0\x9F\x92\xA9" <äüö@example.mail>' pixelated.support.date.mail_date_now = lambda: 'date now' - mime_multipart = InputMail.from_dict(mail_dict).to_mime_multipart() + mime_multipart = InputMail.from_dict(mail_dict, from_address='pixelated@org').to_mime_multipart() expected_part_of_encoded_to = 'Iiwgw4QsIGwsIGIsIGUsIHIsIHQsICAsIMOcLCBiLCByLCDDtiwgICwgw7As' self.assertRegexpMatches(mime_multipart.as_string(), expected_part_of_encoded_to) def test_smtp_format(self): - InputMail.FROM_EMAIL_ADDRESS = 'pixelated@org' - - smtp_format = InputMail.from_dict(simple_mail_dict()).to_smtp_format() + smtp_format = InputMail.from_dict(simple_mail_dict(), from_address='pixelated@org').to_smtp_format() self.assertRegexpMatches(smtp_format, "\nFrom: pixelated@org") def test_to_mime_multipart_handles_alternative_bodies(self): - mime_multipart = InputMail.from_dict(multipart_mail_dict()).to_mime_multipart() + mime_multipart = InputMail.from_dict(multipart_mail_dict(), from_address='pixelated@org').to_mime_multipart() part_one = 'Content-Type: text/plain; charset="us-ascii"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\n\nHello world!' part_two = 'Content-Type: text/html; charset="us-ascii"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\n\n<p>Hello html world!</p>' @@ -142,7 +140,7 @@ class InputMailTest(unittest.TestCase): self.assertRegexpMatches(mime_multipart.as_string(), part_two) def test_raw_with_attachment_data(self): - input_mail = InputMail.from_dict(with_attachment_mail_dict()) + input_mail = InputMail.from_dict(with_attachment_mail_dict(), from_address='pixelated@org') attachment = MIMENonMultipart('text', 'plain', Content_Disposition='attachment; filename=ayoyo.txt') attachment.set_payload('Hello World') diff --git a/service/test/unit/adapter/test_mail_service.py b/service/test/unit/adapter/test_mail_service.py index 27c80fde..a8b6d597 100644 --- a/service/test/unit/adapter/test_mail_service.py +++ b/service/test/unit/adapter/test_mail_service.py @@ -45,7 +45,7 @@ class TestMailService(unittest.TestCase): def test_send_mail(self): input_mail = InputMail() - when(InputMail).from_dict(ANY()).thenReturn(input_mail) + when(InputMail).from_dict(ANY(), ANY()).thenReturn(input_mail) when(self.mail_sender).sendmail(ANY()).thenReturn(defer.Deferred()) sent_deferred = self.mail_service.send_mail(mail_dict()) @@ -60,7 +60,7 @@ class TestMailService(unittest.TestCase): def test_send_mail_removes_draft(self): mail = LeapMail('id', 'INBOX') when(mail).raw = 'raw mail' - when(InputMail).from_dict(ANY()).thenReturn(mail) + when(InputMail).from_dict(ANY(), ANY()).thenReturn(mail) when(self.mail_store).delete_mail('12').thenReturn(defer.succeed(None)) when(self.mail_store).add_mail('SENT', ANY()).thenReturn(mail) @@ -77,7 +77,7 @@ class TestMailService(unittest.TestCase): def test_send_mail_marks_as_read(self): mail = InputMail() when(mail).raw = 'raw mail' - when(InputMail).from_dict(ANY()).thenReturn(mail) + when(InputMail).from_dict(ANY(), ANY()).thenReturn(mail) when(self.mail_store).delete_mail('12').thenReturn(defer.succeed(None)) when(self.mail_sender).sendmail(mail).thenReturn(defer.succeed(None)) @@ -93,7 +93,7 @@ class TestMailService(unittest.TestCase): @defer.inlineCallbacks def test_send_mail_does_not_delete_draft_on_error(self): input_mail = InputMail() - when(InputMail).from_dict(ANY()).thenReturn(input_mail) + when(InputMail).from_dict(ANY(), ANY()).thenReturn(input_mail) deferred_failure = defer.fail(Exception("Assume sending mail failed")) when(self.mail_sender).sendmail(ANY()).thenReturn(deferred_failure) |