diff options
| author | Barry Warsaw | 2015-01-04 20:20:33 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2015-01-04 20:20:33 -0500 |
| commit | 4a612db8e89afed74173b93f3b64fa567b8417a3 (patch) | |
| tree | 81a687d113079a25f93279f35c7eee2aa2572510 /src/mailman/rules | |
| parent | 84af79988a4e916604cba31843778206efb7d1b8 (diff) | |
| parent | de181c1a40965a3a7deedd56a034a946f45b6984 (diff) | |
| download | mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.tar.gz mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.tar.zst mailman-4a612db8e89afed74173b93f3b64fa567b8417a3.zip | |
Merge the Python 3 branch.
Diffstat (limited to 'src/mailman/rules')
| -rw-r--r-- | src/mailman/rules/administrivia.py | 8 | ||||
| -rw-r--r-- | src/mailman/rules/any.py | 6 | ||||
| -rw-r--r-- | src/mailman/rules/approved.py | 8 | ||||
| -rw-r--r-- | src/mailman/rules/emergency.py | 6 | ||||
| -rw-r--r-- | src/mailman/rules/implicit_dest.py | 7 | ||||
| -rw-r--r-- | src/mailman/rules/loop.py | 6 | ||||
| -rw-r--r-- | src/mailman/rules/max_recipients.py | 6 | ||||
| -rw-r--r-- | src/mailman/rules/max_size.py | 6 | ||||
| -rw-r--r-- | src/mailman/rules/moderation.py | 8 | ||||
| -rw-r--r-- | src/mailman/rules/news_moderation.py | 6 | ||||
| -rw-r--r-- | src/mailman/rules/no_subject.py | 6 | ||||
| -rw-r--r-- | src/mailman/rules/suspicious.py | 7 | ||||
| -rw-r--r-- | src/mailman/rules/tests/test_approved.py | 17 | ||||
| -rw-r--r-- | src/mailman/rules/tests/test_moderation.py | 3 | ||||
| -rw-r--r-- | src/mailman/rules/truth.py | 6 |
15 files changed, 25 insertions, 81 deletions
diff --git a/src/mailman/rules/administrivia.py b/src/mailman/rules/administrivia.py index 3052dcb46..866463d6c 100644 --- a/src/mailman/rules/administrivia.py +++ b/src/mailman/rules/administrivia.py @@ -17,20 +17,16 @@ """The administrivia rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Administrivia', ] from email.iterators import typed_subpart_iterator -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer # The list of email commands we search for in the Subject header and payload. @@ -74,7 +70,7 @@ class Administrivia: # Search only the first text/plain subpart of the message. There's # really no good way to find email commands in any other content type. for part in typed_subpart_iterator(msg, 'text', 'plain'): - payload = part.get_payload(decode=True) + payload = part.get_payload() lines = payload.splitlines() # Count lines without using enumerate() because blank lines in the # payload don't count against the maximum examined. diff --git a/src/mailman/rules/any.py b/src/mailman/rules/any.py index e5f80fbc4..72f6da873 100644 --- a/src/mailman/rules/any.py +++ b/src/mailman/rules/any.py @@ -17,18 +17,14 @@ """Check if any previous rules have matched.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Any', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/approved.py b/src/mailman/rules/approved.py index 3b40d5dc9..5aa66c7df 100644 --- a/src/mailman/rules/approved.py +++ b/src/mailman/rules/approved.py @@ -17,9 +17,6 @@ """Look for moderator pre-approval.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Approved', ] @@ -28,11 +25,10 @@ __all__ = [ import re from email.iterators import typed_subpart_iterator -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer EMPTYSTRING = '' @@ -113,7 +109,7 @@ class Approved: # may not work with rtf or whatever else is possible. pattern = header + ':(\s| )*' + re.escape(password) for part in typed_subpart_iterator(msg, 'text'): - payload = part.get_payload(decode=True) + payload = part.get_payload() if payload is not None: if re.search(pattern, payload): reset_payload(part, re.sub(pattern, '', payload)) diff --git a/src/mailman/rules/emergency.py b/src/mailman/rules/emergency.py index ba7abe562..a1addcdb7 100644 --- a/src/mailman/rules/emergency.py +++ b/src/mailman/rules/emergency.py @@ -17,18 +17,14 @@ """The emergency hold rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Emergency', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/implicit_dest.py b/src/mailman/rules/implicit_dest.py index 0bc229b15..9d3e6d079 100644 --- a/src/mailman/rules/implicit_dest.py +++ b/src/mailman/rules/implicit_dest.py @@ -17,21 +17,18 @@ """The implicit destination rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ImplicitDestination', ] import re -from email.utils import getaddresses -from zope.interface import implementer +from email.utils import getaddresses from mailman.core.i18n import _ from mailman.interfaces.mailinglist import IAcceptableAliasSet from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/loop.py b/src/mailman/rules/loop.py index 145af8b34..30d7dde59 100644 --- a/src/mailman/rules/loop.py +++ b/src/mailman/rules/loop.py @@ -17,18 +17,14 @@ """Look for a posting loop.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Loop', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/max_recipients.py b/src/mailman/rules/max_recipients.py index 3b1d4f0c5..485368c0b 100644 --- a/src/mailman/rules/max_recipients.py +++ b/src/mailman/rules/max_recipients.py @@ -17,19 +17,15 @@ """The maximum number of recipients rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MaximumRecipients', ] from email.utils import getaddresses -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/max_size.py b/src/mailman/rules/max_size.py index 1e2b46184..4c8b58451 100644 --- a/src/mailman/rules/max_size.py +++ b/src/mailman/rules/max_size.py @@ -17,18 +17,14 @@ """The maximum message size rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MaximumSize', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/moderation.py b/src/mailman/rules/moderation.py index 46ed242fa..5b79677ed 100644 --- a/src/mailman/rules/moderation.py +++ b/src/mailman/rules/moderation.py @@ -17,23 +17,19 @@ """Membership related rules.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MemberModeration', 'NonmemberModeration', ] -from zope.component import getUtility -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.action import Action from mailman.interfaces.member import MemberRole from mailman.interfaces.rules import IRule from mailman.interfaces.usermanager import IUserManager +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/rules/news_moderation.py b/src/mailman/rules/news_moderation.py index c4372eb80..358368624 100644 --- a/src/mailman/rules/news_moderation.py +++ b/src/mailman/rules/news_moderation.py @@ -17,19 +17,15 @@ """The news moderation rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ModeratedNewsgroup', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.nntp import NewsgroupModeration from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/no_subject.py b/src/mailman/rules/no_subject.py index 8f01f0c15..e66046832 100644 --- a/src/mailman/rules/no_subject.py +++ b/src/mailman/rules/no_subject.py @@ -17,18 +17,14 @@ """The no-Subject header rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'NoSubject', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/suspicious.py b/src/mailman/rules/suspicious.py index 1841ed69e..fbd76b794 100644 --- a/src/mailman/rules/suspicious.py +++ b/src/mailman/rules/suspicious.py @@ -17,9 +17,6 @@ """The historical 'suspicious header' rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'SuspiciousHeader', ] @@ -28,10 +25,10 @@ __all__ = [ import re import logging -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer + log = logging.getLogger('mailman.error') diff --git a/src/mailman/rules/tests/test_approved.py b/src/mailman/rules/tests/test_approved.py index 9976d4eff..83088da55 100644 --- a/src/mailman/rules/tests/test_approved.py +++ b/src/mailman/rules/tests/test_approved.py @@ -17,9 +17,6 @@ """Test the `approved` handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestApproved', 'TestApprovedNonASCII', @@ -36,8 +33,7 @@ from mailman.app.lifecycle import create_list from mailman.config import config from mailman.rules import approved from mailman.testing.helpers import ( - configuration, - specialized_message_from_string as mfs) + configuration, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer @@ -433,7 +429,7 @@ class TestPasswordHashMigration(unittest.TestCase): # hash is chosen after the original password is set. As long as the # old password still validates, the migration happens automatically. self._mlist.moderator_password = config.password_context.encrypt( - b'super secret') + 'super secret') self._rule = approved.Approved() self._msg = mfs("""\ From: anne@example.com @@ -450,7 +446,7 @@ A message body. # hashing algorithm. When the old password is validated, it will be # automatically migrated to the new hash. self.assertEqual(self._mlist.moderator_password, - b'{plaintext}super secret') + '{plaintext}super secret') config_file = os.path.join(config.VAR_DIR, 'passlib.config') # XXX passlib seems to choose the default hashing scheme even if it is # deprecated. The default scheme is either specified explicitly, or @@ -466,14 +462,14 @@ deprecated = roundup_plaintext self._msg['Approved'] = 'super secret' result = self._rule.check(self._mlist, self._msg, {}) self.assertTrue(result) - self.assertEqual(self._mlist.moderator_password, b'super secret') + self.assertEqual(self._mlist.moderator_password, 'super secret') def test_invalid_password_does_not_migrate(self): # Now that the moderator password is set, change the default password # hashing algorithm. When the old password is invalid, it will not be # automatically migrated to the new hash. self.assertEqual(self._mlist.moderator_password, - b'{plaintext}super secret') + '{plaintext}super secret') config_file = os.path.join(config.VAR_DIR, 'passlib.config') # XXX passlib seems to choose the default hashing scheme even if it is # deprecated. The default scheme is either specified explicitly, or @@ -490,9 +486,10 @@ deprecated = roundup_plaintext result = self._rule.check(self._mlist, self._msg, {}) self.assertFalse(result) self.assertEqual(self._mlist.moderator_password, - b'{plaintext}super secret') + '{plaintext}super secret') + class TestApprovedNoTextPlainPart(unittest.TestCase): """Test the approved handler with HTML-only messages.""" diff --git a/src/mailman/rules/tests/test_moderation.py b/src/mailman/rules/tests/test_moderation.py index c0c3cf417..2db4e53cc 100644 --- a/src/mailman/rules/tests/test_moderation.py +++ b/src/mailman/rules/tests/test_moderation.py @@ -17,9 +17,6 @@ """Test the `member-moderation` and `nonmember-moderation` rules.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestModeration', ] diff --git a/src/mailman/rules/truth.py b/src/mailman/rules/truth.py index d50b5eae4..0bf3345b7 100644 --- a/src/mailman/rules/truth.py +++ b/src/mailman/rules/truth.py @@ -17,18 +17,14 @@ """A rule which always matches.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Truth', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer |
