mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Fixes the EmailAddress which was a dict and is now a class
This commit is contained in:
parent
02dc395880
commit
4f287b5ecd
@ -16,6 +16,7 @@ from imap_tools import AND
|
||||
from imap_tools import MailBox
|
||||
from imap_tools import MailboxFolderSelectError
|
||||
from imap_tools import MailBoxUnencrypted
|
||||
from imap_tools import MailMessage
|
||||
from imap_tools import MailMessageFlags
|
||||
from paperless_mail.models import MailAccount
|
||||
from paperless_mail.models import MailRule
|
||||
@ -122,7 +123,7 @@ class MailAccountHandler(LoggingMixin):
|
||||
"Unknown title selector.",
|
||||
) # pragma: nocover
|
||||
|
||||
def get_correspondent(self, message, rule):
|
||||
def get_correspondent(self, message: MailMessage, rule):
|
||||
c_from = rule.assign_correspondent_from
|
||||
|
||||
if c_from == MailRule.CORRESPONDENT_FROM_NOTHING:
|
||||
@ -132,12 +133,9 @@ class MailAccountHandler(LoggingMixin):
|
||||
return self._correspondent_from_name(message.from_)
|
||||
|
||||
elif c_from == MailRule.CORRESPONDENT_FROM_NAME:
|
||||
if (
|
||||
message.from_values
|
||||
and "name" in message.from_values
|
||||
and message.from_values["name"]
|
||||
):
|
||||
return self._correspondent_from_name(message.from_values["name"])
|
||||
from_values = message.from_values
|
||||
if from_values is not None and len(from_values.name) > 0:
|
||||
return self._correspondent_from_name(from_values.name)
|
||||
else:
|
||||
return self._correspondent_from_name(message.from_)
|
||||
|
||||
|
@ -9,6 +9,7 @@ from django.db import DatabaseError
|
||||
from django.test import TestCase
|
||||
from documents.models import Correspondent
|
||||
from documents.tests.utils import DirectoriesMixin
|
||||
from imap_tools import EmailAddress
|
||||
from imap_tools import MailboxFolderSelectError
|
||||
from imap_tools import MailMessageFlags
|
||||
from paperless_mail import tasks
|
||||
@ -19,7 +20,6 @@ from paperless_mail.models import MailRule
|
||||
|
||||
|
||||
class BogusFolderManager:
|
||||
|
||||
current_folder = "INBOX"
|
||||
|
||||
def set(self, new_folder):
|
||||
@ -129,7 +129,6 @@ def create_attachment(
|
||||
|
||||
|
||||
def fake_magic_from_buffer(buffer, mime=False):
|
||||
|
||||
if mime:
|
||||
if "PDF" in str(buffer):
|
||||
return "application/pdf"
|
||||
@ -188,11 +187,19 @@ class TestMail(DirectoriesMixin, TestCase):
|
||||
def test_get_correspondent(self):
|
||||
message = namedtuple("MailMessage", [])
|
||||
message.from_ = "someone@somewhere.com"
|
||||
message.from_values = {"name": "Someone!", "email": "someone@somewhere.com"}
|
||||
message.from_values = EmailAddress(
|
||||
"Someone!",
|
||||
"someone@somewhere.com",
|
||||
"Someone! <someone@somewhere.com>",
|
||||
)
|
||||
|
||||
message2 = namedtuple("MailMessage", [])
|
||||
message2.from_ = "me@localhost.com"
|
||||
message2.from_values = {"name": "", "email": "fake@localhost.com"}
|
||||
message2.from_values = EmailAddress(
|
||||
"",
|
||||
"fake@localhost.com",
|
||||
"",
|
||||
)
|
||||
|
||||
me_localhost = Correspondent.objects.create(name=message2.from_)
|
||||
someone_else = Correspondent.objects.create(name="someone else")
|
||||
@ -482,12 +489,11 @@ class TestMail(DirectoriesMixin, TestCase):
|
||||
password="wrong",
|
||||
)
|
||||
|
||||
try:
|
||||
with self.assertRaises(MailError) as context:
|
||||
self.mail_account_handler.handle_mail_account(account)
|
||||
except MailError as e:
|
||||
self.assertTrue(str(e).startswith("Error while authenticating account"))
|
||||
else:
|
||||
self.fail("Should raise exception")
|
||||
self.assertTrue(
|
||||
str(context).startswith("Error while authenticating account"),
|
||||
)
|
||||
|
||||
def test_error_skip_account(self):
|
||||
account_faulty = MailAccount.objects.create(
|
||||
@ -676,7 +682,6 @@ class TestManagementCommand(TestCase):
|
||||
"paperless_mail.management.commands.mail_fetcher.tasks.process_mail_accounts",
|
||||
)
|
||||
def test_mail_fetcher(self, m):
|
||||
|
||||
call_command("mail_fetcher")
|
||||
|
||||
m.assert_called_once()
|
||||
@ -711,7 +716,6 @@ class TestTasks(TestCase):
|
||||
|
||||
@mock.patch("paperless_mail.tasks.MailAccountHandler.handle_mail_account")
|
||||
def test_single_accounts(self, m):
|
||||
|
||||
MailAccount.objects.create(
|
||||
name="A",
|
||||
imap_server="A",
|
||||
|
Loading…
x
Reference in New Issue
Block a user