Пример #1
0
    def mails(self, query):
        if not query:
            return self.mailbox.mails()

        mails = []
        if query['tags']:
            tags = [Tag(tag) for tag in query['tags']]
            for leap_mailbox_name in self.account.mailboxes:
                mailbox = PixelatedMailbox(self.account.getMailbox(leap_mailbox_name))
                if len(mailbox.all_tags().intersection(tags)):
                    # mailbox has at least one mail with tag
                    for mail in mailbox.mails():
                        if len(mail.tags.intersection(tags)) > 0:
                            mails.append(mail)
        return mails
    def test_retrieve_all_tags_from_mailbox(self):
        leap_flags = ['\\Deleted', '\\Draft', '\\Recent', 'tag_custom', 'should_ignore_all_from_here', 'List']
        mailbox = PixelatedMailbox(test_helper.leap_mailbox(leap_flags=leap_flags))

        self.assertEquals(set([Tag('trash'), Tag('inbox'), Tag('drafts'), Tag('custom')]), mailbox.all_tags())