summaryrefslogtreecommitdiff
path: root/src/mailman/app/tests
diff options
context:
space:
mode:
authorBarry Warsaw2016-03-08 23:01:14 -0500
committerBarry Warsaw2016-03-08 23:01:14 -0500
commitcb8ddd1671e424478f002e527871f0c5839425d9 (patch)
treeff8845ca998b2b4ea2f67a908c862d79f664f6d7 /src/mailman/app/tests
parent47b4d1f987a91e1a2ce9b1e533c166ca21c2477e (diff)
downloadmailman-cb8ddd1671e424478f002e527871f0c5839425d9.tar.gz
mailman-cb8ddd1671e424478f002e527871f0c5839425d9.tar.zst
mailman-cb8ddd1671e424478f002e527871f0c5839425d9.zip
Fix cross-posting held on more than one list.
Closes #176 Also: * IMessageStore no longer raises a ValueError if the Message-ID already exists in the store; it just returns None. * The internal handle_message() function no longer takes a `preserve` argument, since messages are never removed from the IMessageStore.
Diffstat (limited to 'src/mailman/app/tests')
-rw-r--r--src/mailman/app/tests/test_moderation.py36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/mailman/app/tests/test_moderation.py b/src/mailman/app/tests/test_moderation.py
index 9a8d2721a..e71b692c0 100644
--- a/src/mailman/app/tests/test_moderation.py
+++ b/src/mailman/app/tests/test_moderation.py
@@ -121,31 +121,12 @@ Message-ID: <alpha>
key, data = self._request_db.get_request(request_id)
self.assertEqual(data['received_time'], received_time)
- def test_non_preserving_disposition(self):
- # By default, disposed messages are not preserved.
- request_id = hold_message(self._mlist, self._msg)
- handle_message(self._mlist, request_id, Action.discard)
- message_store = getUtility(IMessageStore)
- self.assertIsNone(message_store.get_message_by_id('<alpha>'))
-
- def test_preserving_disposition(self):
- # Preserving a message keeps it in the store.
- request_id = hold_message(self._mlist, self._msg)
- handle_message(self._mlist, request_id, Action.discard, preserve=True)
- message_store = getUtility(IMessageStore)
- preserved_message = message_store.get_message_by_id('<alpha>')
- self.assertEqual(preserved_message['message-id'], '<alpha>')
-
- def test_preserve_and_forward(self):
- # We can both preserve and forward the message.
+ def test_forward(self):
+ # We can forward the message to an email address.
request_id = hold_message(self._mlist, self._msg)
handle_message(self._mlist, request_id, Action.discard,
- preserve=True, forward=['zack@example.com'])
- # The message is preserved in the store.
- message_store = getUtility(IMessageStore)
- preserved_message = message_store.get_message_by_id('<alpha>')
- self.assertEqual(preserved_message['message-id'], '<alpha>')
- # And the forwarded message lives in the virgin queue.
+ forward=['zack@example.com'])
+ # The forwarded message lives in the virgin queue.
messages = get_queue_messages('virgin')
self.assertEqual(len(messages), 1)
self.assertEqual(str(messages[0].msg['subject']),
@@ -162,6 +143,15 @@ Message-ID: <alpha>
handle_message(self._mlist, request_id, Action.discard)
self.assertEqual(self._request_db.count, 0)
+ def test_handled_message_stays_in_store(self):
+ # The message is still available in the store, even when it's been
+ # disposed of.
+ request_id = hold_message(self._mlist, self._msg)
+ handle_message(self._mlist, request_id, Action.discard)
+ self.assertEqual(self._request_db.count, 0)
+ message = getUtility(IMessageStore).get_message_by_id('<alpha>')
+ self.assertEqual(message['subject'], 'hold me')
+
class TestUnsubscription(unittest.TestCase):