mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-11 10:00:48 -05:00
Clear cache instead of working around it.
This commit is contained in:
parent
0cc7765f2b
commit
ac62bcb7ba
@ -1,6 +1,5 @@
|
|||||||
import dataclasses
|
import dataclasses
|
||||||
import email.contentmanager
|
import email.contentmanager
|
||||||
import imaplib
|
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
import uuid
|
import uuid
|
||||||
@ -99,8 +98,7 @@ class BogusMailBox(ContextManager):
|
|||||||
|
|
||||||
if "UNKEYWORD" in criteria:
|
if "UNKEYWORD" in criteria:
|
||||||
tag = criteria[criteria.index("UNKEYWORD") + 1].strip("'")
|
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 m.flags, msg)
|
||||||
msg = filter(lambda m: "processed" not in parse_raw_tags_omit_cache(m), msg)
|
|
||||||
|
|
||||||
return list(msg)
|
return list(msg)
|
||||||
|
|
||||||
@ -117,6 +115,7 @@ class BogusMailBox(ContextManager):
|
|||||||
message.seen = value
|
message.seen = value
|
||||||
if flag == "processed":
|
if flag == "processed":
|
||||||
message._raw_flag_data.append(f"+FLAGS (processed)".encode())
|
message._raw_flag_data.append(f"+FLAGS (processed)".encode())
|
||||||
|
MailMessage.flags.fget.cache_clear()
|
||||||
|
|
||||||
def move(self, uid_list, folder):
|
def move(self, uid_list, folder):
|
||||||
if folder == "spam":
|
if folder == "spam":
|
||||||
@ -186,6 +185,7 @@ def create_message(
|
|||||||
imap_msg.flagged = flagged
|
imap_msg.flagged = flagged
|
||||||
if processed:
|
if processed:
|
||||||
imap_msg._raw_flag_data.append(f"+FLAGS (processed)".encode())
|
imap_msg._raw_flag_data.append(f"+FLAGS (processed)".encode())
|
||||||
|
MailMessage.flags.fget.cache_clear()
|
||||||
|
|
||||||
return imap_msg
|
return imap_msg
|
||||||
|
|
||||||
@ -200,13 +200,6 @@ def fake_magic_from_buffer(buffer, mime=False):
|
|||||||
return "Some verbose file description"
|
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)
|
@mock.patch("paperless_mail.mail.magic.from_buffer", fake_magic_from_buffer)
|
||||||
class TestMail(DirectoriesMixin, TestCase):
|
class TestMail(DirectoriesMixin, TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user