diff options
| author | Barry Warsaw | 2016-03-08 23:01:14 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2016-03-08 23:01:14 -0500 |
| commit | cb8ddd1671e424478f002e527871f0c5839425d9 (patch) | |
| tree | ff8845ca998b2b4ea2f67a908c862d79f664f6d7 /src/mailman/app/tests | |
| parent | 47b4d1f987a91e1a2ce9b1e533c166ca21c2477e (diff) | |
| download | mailman-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.py | 36 |
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): |
