def test_no_banned_sender(self): # Simple case where the sender is not banned. user_manager = getUtility(IUserManager) anne = user_manager.create_user('*****@*****.**') set_preferred(anne) msg = mfs("""\ From: [email protected] To: [email protected] Subject: A test message Message-ID: <ant> MIME-Version: 1.0 A message body. """) rule = banned_address.BannedAddress() result = rule.check(self._mlist, msg, {}) self.assertFalse(result)
def test_banned_sender_among_multiple_senders(self): # Two addresses are created, one of which is banned. The rule matches # because all senders are checked. user_manager = getUtility(IUserManager) user_manager.create_address('*****@*****.**') user_manager.create_address('*****@*****.**') IBanManager(self._mlist).ban('*****@*****.**') msg = mfs("""\ From: [email protected] Sender: [email protected] To: [email protected] Subject: A test message Message-ID: <ant> MIME-Version: 1.0 A message body. """) rule = banned_address.BannedAddress() result = rule.check(self._mlist, msg, {}) self.assertTrue(result)
def test_banned_address_linked_to_user(self): # Anne is subscribed to a mailing list as a user with her preferred # address. She also has a secondary address which is banned and which # she uses to post to the mailing list. The rule matches because the # posting address is banned. user_manager = getUtility(IUserManager) anne = user_manager.create_user('*****@*****.**') set_preferred(anne) anne.link(user_manager.create_address('*****@*****.**')) IBanManager(self._mlist).ban('*****@*****.**') msg = mfs("""\ From: [email protected] To: [email protected] Subject: A test message Message-ID: <ant> MIME-Version: 1.0 A message body. """) rule = banned_address.BannedAddress() result = rule.check(self._mlist, msg, {}) self.assertTrue(result)
def test_rule_returns_reason(self): # Ensure a reason is returned. user_manager = getUtility(IUserManager) anne = user_manager.create_user('*****@*****.**') set_preferred(anne) IBanManager(self._mlist).ban('*****@*****.**') msg = mfs("""\ From: [email protected] To: [email protected] Subject: A test message Message-ID: <ant> MIME-Version: 1.0 A message body. """) rule = banned_address.BannedAddress() msgdata = {} result = rule.check(self._mlist, msg, msgdata) self.assertTrue(result) self.assertEqual(msgdata['moderation_reasons'], [ ('Message sender {} is banned from this list', '*****@*****.**') ])