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: def _correspondent_from_name(self, name: str) -> Correspondent | None:
try: 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: except DatabaseError as e:
self.log.error(f"Error while retrieving correspondent {name}: {e}") self.log.error(f"Error while retrieving correspondent {name}: {e}")
return None return None

View File

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