From 434d1fe225f1bcad0d76b68387e0e5d06938be08 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 24 Apr 2023 20:55:01 -0700 Subject: [PATCH 1/2] Handle delete mail action with no filters --- src/paperless_mail/mail.py | 3 ++- src/paperless_mail/tests/test_mail.py | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index d792b5a97..a4a25fa0a 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -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) diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 1f482f336..4ad79563b 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -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", From 0557a15fa87e82b0571a891d603acaa937ceffff Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 25 Apr 2023 07:22:16 -0700 Subject: [PATCH 2/2] Update src/paperless_mail/mail.py with code suggestions Co-authored-by: Trenton H <797416+stumpylog@users.noreply.github.com> --- src/paperless_mail/mail.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index a4a25fa0a..1014e4035 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -381,7 +381,7 @@ def make_criterias(rule): rule_query = get_rule_action(rule).get_criteria() if isinstance(rule_query, dict): - if len(rule_query) != 0 or len(criterias) != 0: + if len(rule_query) or len(criterias): return AND(**rule_query, **criterias) else: return AND(rule_query, **criterias)