Extract MessageBuilder

This commit is contained in:
Daniel Bankmann 2024-08-21 00:08:48 +02:00 committed by shamoon
parent a6deeed793
commit 77f28932b5

View File

@ -193,32 +193,10 @@ def fake_magic_from_buffer(buffer, mime=False):
return "Some verbose file description" return "Some verbose file description"
@mock.patch("paperless_mail.mail.magic.from_buffer", fake_magic_from_buffer) class MessageBuilder:
class TestMail( def __init__(self):
DirectoriesMixin,
FileSystemAssertsMixin,
TestCase,
):
def setUp(self):
self._used_uids = set() self._used_uids = set()
self.bogus_mailbox = BogusMailBox()
patcher = mock.patch("paperless_mail.mail.MailBox")
m = patcher.start()
m.return_value = self.bogus_mailbox
self.addCleanup(patcher.stop)
patcher = mock.patch("paperless_mail.mail.queue_consumption_tasks")
self._queue_consumption_tasks_mock = patcher.start()
self.addCleanup(patcher.stop)
self.reset_bogus_mailbox()
self.mail_account_handler = MailAccountHandler()
super().setUp()
def create_message( def create_message(
self, self,
attachments: Union[int, list[_AttachmentDef]] = 1, attachments: Union[int, list[_AttachmentDef]] = 1,
@ -284,11 +262,37 @@ class TestMail(
return imap_msg return imap_msg
@mock.patch("paperless_mail.mail.magic.from_buffer", fake_magic_from_buffer)
class TestMail(
DirectoriesMixin,
FileSystemAssertsMixin,
TestCase,
):
def setUp(self):
self.bogus_mailbox = BogusMailBox()
self.messageBuilder = MessageBuilder()
patcher = mock.patch("paperless_mail.mail.MailBox")
m = patcher.start()
m.return_value = self.bogus_mailbox
self.addCleanup(patcher.stop)
patcher = mock.patch("paperless_mail.mail.queue_consumption_tasks")
self._queue_consumption_tasks_mock = patcher.start()
self.addCleanup(patcher.stop)
self.reset_bogus_mailbox()
self.mail_account_handler = MailAccountHandler()
super().setUp()
def reset_bogus_mailbox(self): def reset_bogus_mailbox(self):
self.bogus_mailbox.messages = [] self.bogus_mailbox.messages = []
self.bogus_mailbox.messages_spam = [] self.bogus_mailbox.messages_spam = []
self.bogus_mailbox.messages.append( self.bogus_mailbox.messages.append(
self.create_message( self.messageBuilder.create_message(
subject="Invoice 1", subject="Invoice 1",
from_="amazon@amazon.de", from_="amazon@amazon.de",
to=["me@myselfandi.com", "helpdesk@mydomain.com"], to=["me@myselfandi.com", "helpdesk@mydomain.com"],
@ -299,7 +303,7 @@ class TestMail(
), ),
) )
self.bogus_mailbox.messages.append( self.bogus_mailbox.messages.append(
self.create_message( self.messageBuilder.create_message(
subject="Invoice 2", subject="Invoice 2",
body="from my favorite electronic store", body="from my favorite electronic store",
to=["invoices@mycompany.com"], to=["invoices@mycompany.com"],
@ -309,7 +313,7 @@ class TestMail(
), ),
) )
self.bogus_mailbox.messages.append( self.bogus_mailbox.messages.append(
self.create_message( self.messageBuilder.create_message(
subject="Claim your $10M price now!", subject="Claim your $10M price now!",
from_="amazon@amazon-some-indian-site.org", from_="amazon@amazon-some-indian-site.org",
to="special@me.me", to="special@me.me",
@ -400,7 +404,7 @@ class TestMail(
self.assertEqual(handler._get_title(message, att, rule), None) self.assertEqual(handler._get_title(message, att, rule), None)
def test_handle_message(self): def test_handle_message(self):
message = self.create_message( message = self.messageBuilder.create_message(
subject="the message title", subject="the message title",
from_="Myself", from_="Myself",
attachments=2, attachments=2,
@ -440,7 +444,7 @@ class TestMail(
self.assertEqual(result, 0) self.assertEqual(result, 0)
def test_handle_unknown_mime_type(self): def test_handle_unknown_mime_type(self):
message = self.create_message( message = self.messageBuilder.create_message(
attachments=[ attachments=[
_AttachmentDef(filename="f1.pdf"), _AttachmentDef(filename="f1.pdf"),
_AttachmentDef( _AttachmentDef(
@ -469,7 +473,7 @@ class TestMail(
) )
def test_handle_disposition(self): def test_handle_disposition(self):
message = self.create_message( message = self.messageBuilder.create_message(
attachments=[ attachments=[
_AttachmentDef( _AttachmentDef(
filename="f1.pdf", filename="f1.pdf",
@ -497,7 +501,7 @@ class TestMail(
) )
def test_handle_inline_files(self): def test_handle_inline_files(self):
message = self.create_message( message = self.messageBuilder.create_message(
attachments=[ attachments=[
_AttachmentDef( _AttachmentDef(
filename="f1.pdf", filename="f1.pdf",
@ -537,7 +541,7 @@ class TestMail(
- Mail action should not be performed for files excluded - Mail action should not be performed for files excluded
- Mail action should be performed for files included - Mail action should be performed for files included
""" """
message = self.create_message( message = self.messageBuilder.create_message(
attachments=[ attachments=[
_AttachmentDef(filename="f1.pdf"), _AttachmentDef(filename="f1.pdf"),
_AttachmentDef(filename="f2.pdf"), _AttachmentDef(filename="f2.pdf"),
@ -649,7 +653,7 @@ class TestMail(
THEN: THEN:
- Mail action should not be performed - Mail action should not be performed
""" """
message = self.create_message( message = self.messageBuilder.create_message(
attachments=[ attachments=[
_AttachmentDef( _AttachmentDef(
filename="test.png", filename="test.png",