summaryrefslogtreecommitdiff
path: root/service/test/adapter
diff options
context:
space:
mode:
Diffstat (limited to 'service/test/adapter')
-rw-r--r--service/test/adapter/mail_service_test.py47
1 files changed, 42 insertions, 5 deletions
diff --git a/service/test/adapter/mail_service_test.py b/service/test/adapter/mail_service_test.py
index 7b3f4e96..6c5eca24 100644
--- a/service/test/adapter/mail_service_test.py
+++ b/service/test/adapter/mail_service_test.py
@@ -16,7 +16,7 @@
import unittest
from pixelated.adapter.mail_service import MailService
-from mock import Mock, MagicMock, patch
+from mock import Mock, MagicMock, patch, PropertyMock
import test_helper
from pixelated.adapter.tag import Tag
from pixelated.adapter.pixelated_mailbox import PixelatedMailbox
@@ -27,11 +27,13 @@ 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):
- MailService._open_leap_session = lambda self: None
- MailService.mailbox = PixelatedMailbox(test_helper.leap_mailbox(leap_flags=['\\Recent']))
- MailService.account = Mock(return_value=MagicMock())
+ 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('username', 'password', 'leap_server')
+ mailservice = MailService(leap_session)
new_tags = ['test', 'inbox']
updated_tags = mailservice.update_tags(6, new_tags)
@@ -40,3 +42,38 @@ class TestMailService(unittest.TestCase):
# 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 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({})
+
+ # 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 = [mailbox]
+
+ leap_session = MagicMock(account=account)
+
+ # 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)
+