Fix: set match value for correspondents created by mail rule (#10820)

This commit is contained in:
shamoon
2025-09-09 09:14:48 -07:00
committed by GitHub
parent 894939e492
commit 7a1aae7749
2 changed files with 9 additions and 1 deletions

View File

@@ -468,7 +468,12 @@ class MailAccountHandler(LoggingMixin):
def _correspondent_from_name(self, name: str) -> Correspondent | None:
try:
return Correspondent.objects.get_or_create(name=name)[0]
return Correspondent.objects.get_or_create(
name=name,
defaults={
"match": name,
},
)[0]
except DatabaseError as e:
self.log.error(f"Error while retrieving correspondent {name}: {e}")
return None

View File

@@ -26,6 +26,7 @@ from rest_framework import status
from rest_framework.test import APITestCase
from documents.models import Correspondent
from documents.models import MatchingModel
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import FileSystemAssertsMixin
from paperless_mail import tasks
@@ -446,6 +447,8 @@ class TestMail(
c = handler._get_correspondent(message, rule)
self.assertIsNotNone(c)
self.assertEqual(c.name, "someone@somewhere.com")
self.assertEqual(c.matching_algorithm, MatchingModel.MATCH_ANY)
self.assertEqual(c.match, "someone@somewhere.com")
c = handler._get_correspondent(message2, rule)
self.assertIsNotNone(c)
self.assertEqual(c.name, "me@localhost.com")