summaryrefslogtreecommitdiff
path: root/service/test/adapter/mail_service_test.py
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-08-29 16:29:22 -0300
committerDuda Dornelles <ddornell@thoughtworks.com>2014-08-29 18:10:48 -0300
commitb727ab8090790db2854dac191faee702f085ac20 (patch)
tree6fc0fc8be8410def37d1931ea17a490f5bca96f1 /service/test/adapter/mail_service_test.py
parentc11bef55ee74edddaa054456338ebd3bbf72ee2f (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.py77
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)