diff options
| author | Aurélien Bompard | 2016-02-09 12:23:38 +0100 |
|---|---|---|
| committer | Barry Warsaw | 2016-03-31 18:29:27 -0400 |
| commit | 71cfeda5fb51c49fd87b6d34e00221a3725b9ec0 (patch) | |
| tree | d571db90e7010643ea7cca81ab91eaee89e0f378 /src/mailman/rules/tests/test_moderation.py | |
| parent | 011d278abcc25d417673f70a4eac0a8a78137d95 (diff) | |
| download | mailman-71cfeda5fb51c49fd87b6d34e00221a3725b9ec0.tar.gz mailman-71cfeda5fb51c49fd87b6d34e00221a3725b9ec0.tar.zst mailman-71cfeda5fb51c49fd87b6d34e00221a3725b9ec0.zip | |
Diffstat (limited to 'src/mailman/rules/tests/test_moderation.py')
| -rw-r--r-- | src/mailman/rules/tests/test_moderation.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/mailman/rules/tests/test_moderation.py b/src/mailman/rules/tests/test_moderation.py index df1658792..3e80aeeb5 100644 --- a/src/mailman/rules/tests/test_moderation.py +++ b/src/mailman/rules/tests/test_moderation.py @@ -144,3 +144,60 @@ A message body. self.assertEqual( msgdata['moderation_action'], action_name, 'Wrong action for {}: {}'.format(address, action_name)) + + def test_nonmember_fallback_to_list_defaults(self): + # https://gitlab.com/mailman/mailman/issues/189 + self._mlist.default_nonmember_action = Action.hold + user_manager = getUtility(IUserManager) + user_manager.create_address('anne@example.com') + rule = moderation.NonmemberModeration() + msg = mfs("""\ +From: anne@example.com +To: test@example.com +Subject: A test message +Message-ID: <ant> +MIME-Version: 1.0 + +A message body. +""") + # First, the message should get held + msgdata = {} + result = rule.check(self._mlist, msg, msgdata) + self.assertTrue(result) + self.assertEqual(msgdata.get('moderation_action'), 'hold') + # Then the list's default nonmember action is changed + self._mlist.default_nonmember_action = Action.discard + msg.replace_header('Message-ID', '<ant2>') + # This time, the message should be discarded + result = rule.check(self._mlist, msg, msgdata) + self.assertTrue(result) + self.assertEqual(msgdata.get('moderation_action'), 'discard') + + def test_member_fallback_to_list_defaults(self): + # https://gitlab.com/mailman/mailman/issues/189 + self._mlist.default_member_action = Action.accept + user_manager = getUtility(IUserManager) + anne = user_manager.create_address('anne@example.com') + self._mlist.subscribe(anne, MemberRole.member) + rule = moderation.MemberModeration() + msg = mfs("""\ +From: anne@example.com +To: test@example.com +Subject: A test message +Message-ID: <ant> +MIME-Version: 1.0 + +A message body. +""") + # First, the message should get held + msgdata = {} + result = rule.check(self._mlist, msg, msgdata) + self.assertTrue(result) + self.assertEqual(msgdata.get('moderation_action'), 'accept') + # Then the list's default nonmember action is changed + self._mlist.default_member_action = Action.hold + msg.replace_header('Message-ID', '<ant2>') + # This time, the message should be discarded + result = rule.check(self._mlist, msg, msgdata) + self.assertTrue(result) + self.assertEqual(msgdata.get('moderation_action'), 'hold') |
