From ac62bcb7baa6151c0054ee4891a869e487bbe2a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Fri, 27 May 2022 22:51:32 +0200 Subject: [PATCH] Clear cache instead of working around it. --- src/paperless_mail/tests/test_mail.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 348876be2..2aaa588d6 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -1,6 +1,5 @@ import dataclasses import email.contentmanager -import imaplib import os import random import uuid @@ -99,8 +98,7 @@ class BogusMailBox(ContextManager): if "UNKEYWORD" in criteria: tag = criteria[criteria.index("UNKEYWORD") + 1].strip("'") - # For custom-flags, we need to access the `_raw_flags` field, as calls to `.flags` get cached, thus breaking the test. - msg = filter(lambda m: "processed" not in parse_raw_tags_omit_cache(m), msg) + msg = filter(lambda m: "processed" not in m.flags, msg) return list(msg) @@ -117,6 +115,7 @@ class BogusMailBox(ContextManager): message.seen = value if flag == "processed": message._raw_flag_data.append(f"+FLAGS (processed)".encode()) + MailMessage.flags.fget.cache_clear() def move(self, uid_list, folder): if folder == "spam": @@ -186,6 +185,7 @@ def create_message( imap_msg.flagged = flagged if processed: imap_msg._raw_flag_data.append(f"+FLAGS (processed)".encode()) + MailMessage.flags.fget.cache_clear() return imap_msg @@ -200,13 +200,6 @@ def fake_magic_from_buffer(buffer, mime=False): return "Some verbose file description" -def parse_raw_tags_omit_cache(m: MailMessage) -> List[str]: - raw_result: list[bytes] = [] - for rf in m._raw_flag_data: - raw_result.extend(imaplib.ParseFlags(rf)) - return [f.decode().strip() for f in raw_result] - - @mock.patch("paperless_mail.mail.magic.from_buffer", fake_magic_from_buffer) class TestMail(DirectoriesMixin, TestCase): def setUp(self):