Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core
Commits:
5a25970f by Mark Sapiro at 2021-01-20T15:48:49-08:00
Added reasons to vette log discard message.
- - - - -
836a9b93 by Mark Sapiro at 2021-01-21T00:46:48+00:00
Merge branch 'discard' into 'master'
Added reasons to vette log discard message.
Closes #816
See merge request mailman/mailman!766
- - - - -
3 changed files:
- src/mailman/chains/discard.py
- + src/mailman/chains/tests/test_discard.py
- src/mailman/docs/NEWS.rst
Changes:
=====================================
src/mailman/chains/discard.py
=====================================
@@ -42,6 +42,7 @@ class DiscardChain(TerminalChainBase):
This writes a log message, fires a Zope event and then throws the
message away.
"""
- log.info('DISCARD: %s', msg.get('message-id', 'n/a'))
+ log.info('DISCARD: %s; %s', msg.get('message-id', 'n/a'),
+ msgdata.get('moderation_reasons', '[n/a]'))
notify(DiscardEvent(mlist, msg, msgdata, self))
# Nothing more needs to happen.
=====================================
src/mailman/chains/tests/test_discard.py
=====================================
@@ -0,0 +1,61 @@
+# Copyright (C) 2015-2021 by the Free Software Foundation, Inc.
+#
+# This file is part of GNU Mailman.
+#
+# GNU Mailman is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# GNU Mailman. If not, see <https://www.gnu.org/licenses/>.
+
+"""Test the discard chain."""
+
+import unittest
+
+from mailman.app.lifecycle import create_list
+from mailman.core.chains import process as process_chain
+from mailman.testing.helpers import (
+ LogFileMark, specialized_message_from_string as mfs)
+from mailman.testing.layers import ConfigLayer
+
+
+class TestDiscard(unittest.TestCase):
+ """Test the discard chain."""
+
+ layer = ConfigLayer
+
+ def setUp(self):
+ self._mlist = create_list('[email protected]')
+ self._msg = mfs("""\
+From: [email protected]
+To: [email protected]
+Subject: Ignore
+Message-Id: <[email protected]>
+
+""")
+
+ def test_discard_reasons(self):
+ # The log message must contain the moderation reasons.
+ msgdata = dict(moderation_reasons=['TEST-REASON-1', 'TEST-REASON-2'])
+ log_file = LogFileMark('mailman.vette')
+ process_chain(self._mlist, self._msg, msgdata, start_chain='discard')
+ log_entry = log_file.read()
+ self.assertIn('DISCARD: <[email protected]>', log_entry)
+ self.assertIn('TEST-REASON-1', log_entry)
+ self.assertIn('TEST-REASON-2', log_entry)
+
+ def test_discard_no_reasons(self):
+ # The log message contains n/a if no moderation reasons.
+ msgdata = {}
+ log_file = LogFileMark('mailman.vette')
+ process_chain(self._mlist, self._msg, msgdata, start_chain='discard')
+ log_entry = log_file.read()
+ self.assertIn('DISCARD: <[email protected]>', log_entry)
+ self.assertIn('[n/a]', log_entry)
=====================================
src/mailman/docs/NEWS.rst
=====================================
@@ -36,6 +36,8 @@ Bugs
(Closes #809)
* Header filters will now properly match RFC 2047 encoded headers.
(Closes #815)
+* Mailman's ``vette`` log discard messages now include the reasons.
+ (Closes #816)
Command line
------------
View it on GitLab:
https://gitlab.com/mailman/mailman/-/compare/20adbc6b5f4f812f0e87086fb67f3066bc279935...836a9b93f71e9d25449f66ae5b57406d1f3252f6
--
View it on GitLab:
https://gitlab.com/mailman/mailman/-/compare/20adbc6b5f4f812f0e87086fb67f3066bc279935...836a9b93f71e9d25449f66ae5b57406d1f3252f6
You're receiving this email because of your account on gitlab.com.
_______________________________________________
Mailman-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/mailman-checkins.python.org/
Member address: [email protected]