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())