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 = ['inbox']
        account.getMailbox.return_value = 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)