Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core
Commits: 66e21c03 by Mark Sapiro at 2023-02-03T19:34:35+00:00 Reset bounce score when disabling delivery. Fixes #1061 * Reset bounce3 score when disabling delivery. - - - - - 37432e6b by Mark Sapiro at 2023-02-03T19:34:36+00:00 Merge branch 'bounce' into 'master' Reset bounce score when disabling delivery. Closes #1061 See merge request mailman/mailman!1097 Merged-by: Mark Sapiro <m...@msapiro.net> Reviewed-by: - - - - - 5 changed files: - src/mailman/docs/NEWS.rst - src/mailman/model/bounce.py - src/mailman/model/docs/bounce.rst - src/mailman/model/tests/test_bounce.py - src/mailman/runners/tests/test_bounce.py Changes: ===================================== src/mailman/docs/NEWS.rst ===================================== @@ -28,6 +28,8 @@ Bugs fixed terminate and restarts them (Closes #898). * Setting Postfix transport_file_type: regex without setting something for postmap_command: no longer throws an exception. (Closes #1058) +* When bounce processing disables delivery for a user, the user's score is + reset so it will be zero if delivery is enabled. (Closes #1061) .. _news-3.3.8: ===================================== src/mailman/model/bounce.py ===================================== @@ -234,6 +234,9 @@ class BounceProcessor: send_probe(member, msg=msg, message_id=event.message_id) action = 'sending probe' else: + # Bounce score is reset by sending a probe but needs to be + # reset here too. See #1061. + member.bounce_score = 0 self._disable_delivery(mlist, member, event) action = 'disabling delivery' log.info( ===================================== src/mailman/model/docs/bounce.rst ===================================== @@ -170,8 +170,9 @@ If the ``bounce_score`` reaches the Mailinglist's configured >>> event = processor.register( ... mlist, 'b...@example.com', msg, BounceContext.normal) >>> processor.process_event(event) + >>> # Disabling delivery resets the score. >>> print(bart_member.bounce_score) - 5 + 0 >>> print(bart_member.preferences.delivery_status) DeliveryStatus.by_bounces ===================================== src/mailman/model/tests/test_bounce.py ===================================== @@ -202,9 +202,10 @@ Message-Id: <first> # Now, process the events and check that user is disabled. for event in events: self._processor.process_event(event) - # The first event scores 1 and disables delivery. The second is - # not processed because delivery is already disabled. - self.assertEqual(member.bounce_score, 1) + # The first event scores 1 and disables delivery. Disabling delivery + # resets the score. The second is not processed because delivery is + # already disabled. + self.assertEqual(member.bounce_score, 0) self.assertEqual( member.preferences.delivery_status, DeliveryStatus.by_bounces) @@ -295,7 +296,8 @@ Message-Id: <first> self._process_pending_events() self.assertEqual(member.preferences.delivery_status, DeliveryStatus.by_bounces) - self.assertEqual(member.bounce_score, 4) + # Disabling delivery resets the score. + self.assertEqual(member.bounce_score, 0) self._processor._send_warnings() self.assertEqual(member.last_warning_sent.day, now().day) ===================================== src/mailman/runners/tests/test_bounce.py ===================================== @@ -473,7 +473,8 @@ Message-Id: <first> anne.bounce_score = 2 anne.last_bounce_received = now() - timedelta(days=2) self._runner.run() - self.assertEqual(anne.bounce_score, 3) + # Score is reset when delovery is disabled. + self.assertEqual(anne.bounce_score, 0) self.assertEqual( anne.preferences.delivery_status, DeliveryStatus.by_bounces) # There should also be a pending notification for the list View it on GitLab: https://gitlab.com/mailman/mailman/-/compare/726c23c330ea775b268c3385a5f38e17615c86c6...37432e6b9a6f05b34145e0ab23a019f6a1f80011 -- View it on GitLab: https://gitlab.com/mailman/mailman/-/compare/726c23c330ea775b268c3385a5f38e17615c86c6...37432e6b9a6f05b34145e0ab23a019f6a1f80011 You're receiving this email because of your account on gitlab.com.
_______________________________________________ Mailman-checkins mailing list -- mailman-checkins@python.org To unsubscribe send an email to mailman-checkins-le...@python.org https://mail.python.org/mailman3/lists/mailman-checkins.python.org/ Member address: arch...@jab.org