diff options
author | Duda Dornelles <ddornell@thoughtworks.com> | 2014-08-29 16:29:22 -0300 |
---|---|---|
committer | Duda Dornelles <ddornell@thoughtworks.com> | 2014-08-29 18:10:48 -0300 |
commit | b727ab8090790db2854dac191faee702f085ac20 (patch) | |
tree | 6fc0fc8be8410def37d1931ea17a490f5bca96f1 /service/test/adapter/mail_service_test.py | |
parent | c11bef55ee74edddaa054456338ebd3bbf72ee2f (diff) |
Refactoring into mailboxes and mailsender - less colaborators for mail service
Diffstat (limited to 'service/test/adapter/mail_service_test.py')
-rw-r--r-- | service/test/adapter/mail_service_test.py | 77 |
1 files changed, 12 insertions, 65 deletions
diff --git a/service/test/adapter/mail_service_test.py b/service/test/adapter/mail_service_test.py index 04fbeb82..f66a3fae 100644 --- a/service/test/adapter/mail_service_test.py +++ b/service/test/adapter/mail_service_test.py @@ -16,80 +16,27 @@ import unittest from pixelated.adapter.mail_service import MailService -from mock import Mock, MagicMock, patch, PropertyMock -import test_helper -from pixelated.adapter.tag import Tag -from pixelated.adapter.pixelated_mailbox import PixelatedMailbox +from mockito import * class TestMailService(unittest.TestCase): - - @patch.object(MailService, '_append_mail_flags', return_value=None) - @patch.object(MailService, '_remove_mail_flags', return_value=None) - def test_custom_tags_get_created_if_not_exists(self, mockRemoveFlags, mockAppendFlags): - mailbox = test_helper.leap_mailbox(leap_flags=['\\Recent']) - account = MagicMock() - leap_session = MagicMock() - leap_session.account = account - leap_session.account.getMailbox.return_value = mailbox - - mailservice = MailService(leap_session) - - new_tags = ['test', 'inbox'] - updated_tags = mailservice.update_tags(6, new_tags) - - self.assertEquals(set([Tag('test'), Tag('inbox')]), set(updated_tags)) - # make sure that special tags are skipped when setting leap flags (eg.: tag_inbox) - mockAppendFlags.assert_called_with(6, ['tag_test']) - mockRemoveFlags.assert_called_with(6, []) + def setUp(self): + self.mailboxes = mock() + self.mail_sender = mock() + self.mail_service = MailService(self.mailboxes, self.mail_sender) def test_search_without_query_returns_unfiltered_mailbox(self): - # given - mailbox = test_helper.leap_mailbox(leap_flags=['\\Recent'], extra_flags=['tag_custom_tag']) - account = MagicMock() - account.getMailbox.return_value = mailbox - leap_session = MagicMock(account=account) - - # when - mailservice = MailService(leap_session) - mails = mailservice.mails({}) + mailbox_inbox = mock() + when(mailbox_inbox).mails().thenReturn(["mail"]) + when(self.mailboxes).inbox().thenReturn(mailbox_inbox) - # then - self.assertEqual(1, len(mails)) - - def test_search_for_tags(self): - # given - mailbox = test_helper.leap_mailbox(leap_flags=['\\Recent'], extra_flags=['tag_custom_tag']) - matching_mail = test_helper.leap_mail(uid=6, leap_flags=[], extra_flags=['tag_custom_tag']) - not_matching_mail = test_helper.leap_mail(uid=6, leap_flags=[], extra_flags=['tag_other']) - mailbox.messages = [matching_mail, not_matching_mail] - mailbox.all_tags.return_value = set() - account = MagicMock() - account.mailboxes = ['inbox'] - account.getMailbox.return_value = mailbox - - leap_session = MagicMock(account=account) + mails = self.mail_service.mails({}) - # when - mailservice = MailService(leap_session) - mails = mailservice.mails({'tags': ['inbox', 'custom_tag']}) - - # then self.assertEqual(1, len(mails)) - self.assertEqual(set([Tag('custom_tag')]), mails[0].tags) def test_send_mail(self): - leap_session = Mock(account_email=lambda: "username@leap_server") - mail_service = MailService(leap_session) - mail_service._create_smtp_server = lambda: None - mail_service._create_smtp_server = lambda: None - - mail_service.smtp_client = Mock() - mail = Mock( - to_smtp_format=lambda _from=None: "mail as string", - get_to=lambda: 'to@pixelated.org' - ) + mail = "mail" - mail_service.send(mail) + self.mail_service.send(mail) - mail_service.smtp_client.sendmail.assert_called_with('username@leap_server', 'to@pixelated.org', "mail as string") + verify(self.mail_sender).sendmail(mail) |