diff options
Diffstat (limited to 'service/test')
-rw-r--r-- | service/test/adapter/mail_service_test.py | 47 | ||||
-rw-r--r-- | service/test/search/test_search_query.py | 2 |
2 files changed, 44 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) + diff --git a/service/test/search/test_search_query.py b/service/test/search/test_search_query.py index 3bcbd219..e9fcfa5a 100644 --- a/service/test/search/test_search_query.py +++ b/service/test/search/test_search_query.py @@ -37,3 +37,5 @@ class SearchTestCase(unittest.TestCase): def test_tags_with_quotes(self): self.assertEquals(search_query.compile(u"in:\"inbox\"")["tags"], ["inbox"]) self.assertEquals(search_query.compile(u"in:'inbox'")["tags"], ["inbox"]) + + |