]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Handle delete mail action with no filters
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 25 Apr 2023 03:55:01 +0000 (20:55 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Tue, 25 Apr 2023 03:55:01 +0000 (20:55 -0700)
src/paperless_mail/mail.py
src/paperless_mail/tests/test_mail.py

index d792b5a9776d55b649d37a6e25522428794117cc..a4a25fa0a54ea7cf8f7dcdd01d8a1401efd7a225 100644 (file)
@@ -381,7 +381,8 @@ def make_criterias(rule):
 
     rule_query = get_rule_action(rule).get_criteria()
     if isinstance(rule_query, dict):
-        return AND(**rule_query, **criterias)
+        if len(rule_query) != 0 or len(criterias) != 0:
+            return AND(**rule_query, **criterias)
     else:
         return AND(rule_query, **criterias)
 
index 1f482f3367c2a0ac724da0e607ee5e82a382a104..4ad79563b78c77e59f81f3d6ebc015e8b9f907ae 100644 (file)
@@ -612,6 +612,29 @@ class TestMail(
 
         self.assertEqual(len(self.bogus_mailbox.messages), 1)
 
+    def test_handle_mail_account_delete_no_filters(self):
+
+        account = MailAccount.objects.create(
+            name="test",
+            imap_server="",
+            username="admin",
+            password="secret",
+        )
+
+        _ = MailRule.objects.create(
+            name="testrule",
+            account=account,
+            action=MailRule.MailAction.DELETE,
+            maximum_age=0,
+        )
+
+        self.assertEqual(len(self.bogus_mailbox.messages), 3)
+
+        self.mail_account_handler.handle_mail_account(account)
+        self.apply_mail_actions()
+
+        self.assertEqual(len(self.bogus_mailbox.messages), 0)
+
     def test_handle_mail_account_flag(self):
         account = MailAccount.objects.create(
             name="test",