From 597dfa88606bf2861988e810e9e3ae06fbd9a3f2 Mon Sep 17 00:00:00 2001 From: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Sun, 4 Oct 2026 15:05:19 -0700 Subject: [PATCH] Fix: Set the ProcessedMail owner based on the rule owner in all cases --- src/paperless_mail/mail.py | 2 ++ src/paperless_mail/tests/test_mail.py | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 8e9170a6b..fb8568e8f 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -347,6 +347,7 @@ def error_callback( uid=message_uid, uid_validity=uid_validity, defaults={ + "owner": rule.owner, "subject": message_subject[:256], "received": received, "status": "FAILED", @@ -947,6 +948,7 @@ class MailAccountHandler(LoggingMixin): folder=rule.folder, uid_validity=self._current_uid_validity, defaults={ + "owner": rule.owner, "subject": message.subject[:256], "received": make_aware(message.date) if is_naive(message.date) diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 2278df11d..56c2da467 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -384,8 +384,10 @@ class TestMail( ) account = MailAccount.objects.create() + owner = UserFactory() rule = MailRule.objects.create( account=account, + owner=owner, consumption_scope=MailRule.ConsumptionScope.ATTACHMENTS_ONLY, ) @@ -400,6 +402,7 @@ class TestMail( folder=rule.folder, ) self.assertEqual(processed.status, "PROCESSED_WO_CONSUMPTION") + self.assertEqual(processed.owner, owner) # Calling it again must not create a second row self.mail_account_handler._handle_message(message, rule) @@ -1843,7 +1846,8 @@ class TestErrorCallback: THEN: - Only one ProcessedMail row is created for that mail """ - rule = MailRuleFactory() + owner = UserFactory() + rule = MailRuleFactory(owner=owner) message_uid = "12345" for _ in range(2): @@ -1866,6 +1870,7 @@ class TestErrorCallback: ) assert processed_mails.count() == 1 assert processed_mails.get().status == "FAILED" + assert processed_mails.get().owner == owner class TestManagementCommand(TestCase):