diff options
| author | Barry Warsaw | 2015-06-15 11:44:48 +0000 |
|---|---|---|
| committer | Barry Warsaw | 2015-06-15 11:44:48 +0000 |
| commit | e9799b26ffcdafd04f58d576d597860d073457e0 (patch) | |
| tree | ed79b94d4722df09157301a6189c886f81563efd /src/mailman/utilities/tests/test_email.py | |
| parent | 955abee5c16a4a35f270c54cb8d658c4445b4b18 (diff) | |
| parent | dc1db8a094570c3d74f31e78b4447ae807247c8b (diff) | |
| download | mailman-e9799b26ffcdafd04f58d576d597860d073457e0.tar.gz mailman-e9799b26ffcdafd04f58d576d597860d073457e0.tar.zst mailman-e9799b26ffcdafd04f58d576d597860d073457e0.zip | |
Replace X-Message-ID-Hash with Message-ID-Hash
See merge request !16
Diffstat (limited to 'src/mailman/utilities/tests/test_email.py')
| -rw-r--r-- | src/mailman/utilities/tests/test_email.py | 71 |
1 files changed, 62 insertions, 9 deletions
diff --git a/src/mailman/utilities/tests/test_email.py b/src/mailman/utilities/tests/test_email.py index 580a49805..44fa7d492 100644 --- a/src/mailman/utilities/tests/test_email.py +++ b/src/mailman/utilities/tests/test_email.py @@ -19,14 +19,18 @@ __all__ = [ 'TestEmail', + 'TestMessageIDHash', ] import unittest +from mailman.interfaces.messages import IMessageStore from mailman.testing.helpers import ( specialized_message_from_string as mfs) +from mailman.testing.layers import ConfigLayer from mailman.utilities.email import add_message_hash, split_email +from zope.component import getUtility @@ -50,30 +54,30 @@ Message-ID: <aardvark> """) add_message_hash(msg) - self.assertEqual(msg['x-message-id-hash'], + self.assertEqual(msg['message-id-hash'], '75E2XSUXAFQGWANWEROVQ7JGYMNWHJBT') def test_remove_hash_headers_first(self): # Any existing X-Mailman-Hash-ID header is removed first. msg = mfs("""\ Message-ID: <aardvark> -X-Message-ID-Hash: abc +Message-ID-Hash: abc """) add_message_hash(msg) - headers = msg.get_all('x-message-id-hash') + headers = msg.get_all('message-id-hash') self.assertEqual(len(headers), 1) self.assertEqual(headers[0], '75E2XSUXAFQGWANWEROVQ7JGYMNWHJBT') def test_hash_header_left_alone_if_no_message_id(self): # If the original message has no Message-ID header, then any existing - # X-Message-ID-Hash headers are left intact. + # Message-ID-Hash headers are left intact. msg = mfs("""\ -X-Message-ID-Hash: abc +Message-ID-Hash: abc """) add_message_hash(msg) - headers = msg.get_all('x-message-id-hash') + headers = msg.get_all('message-id-hash') self.assertEqual(len(headers), 1) self.assertEqual(headers[0], 'abc') @@ -85,7 +89,7 @@ Message-ID: aardvark """) add_message_hash(msg) - self.assertEqual(msg['x-message-id-hash'], + self.assertEqual(msg['message-id-hash'], '75E2XSUXAFQGWANWEROVQ7JGYMNWHJBT') def test_mismatched_angle_brackets_do_contribute_to_hash(self): @@ -96,12 +100,61 @@ Message-ID: <aardvark """) add_message_hash(msg) - self.assertEqual(msg['x-message-id-hash'], + self.assertEqual(msg['message-id-hash'], 'AOJ545GHRYD2Y3RUFG2EWMPHUABTG4SM') msg = mfs("""\ Message-ID: aardvark> """) add_message_hash(msg) - self.assertEqual(msg['x-message-id-hash'], + self.assertEqual(msg['message-id-hash'], '5KH3RA7ZM4VM6XOZXA7AST2XN2X4S3WY') + + def test_return_value(self): + msg = mfs("""\ +Message-ID: aardvark> + +""") + hash32 = add_message_hash(msg) + self.assertEqual(hash32, '5KH3RA7ZM4VM6XOZXA7AST2XN2X4S3WY') + + + +class TestMessageIDHash(unittest.TestCase): + + layer = ConfigLayer + + def setUp(self): + self._store = getUtility(IMessageStore) + + def test_message_id_hash_backward_compatibility(self): + msg = mfs("""\ +Message-ID: <ant> + +""") + self._store.add(msg) + stored_msg = self._store.get_message_by_id('<ant>') + self.assertEqual(stored_msg['message-id-hash'], + 'MS6QLWERIJLGCRF44J7USBFDELMNT2BW') + # For backward compatibility with the old spec. + self.assertEqual(stored_msg['x-message-id-hash'], + 'MS6QLWERIJLGCRF44J7USBFDELMNT2BW') + + def test_message_id_hash_gets_replaced_backward_compatibility(self): + msg = mfs("""\ +Message-ID: <ant> +Message-ID-Hash: abc +X-Message-ID-Hash: abc + +""") + self._store.add(msg) + stored_msg = self._store.get_message_by_id('<ant>') + message_id_hashes = stored_msg.get_all('message-id-hash') + self.assertEqual(len(message_id_hashes), 1) + self.assertEqual(message_id_hashes[0], + 'MS6QLWERIJLGCRF44J7USBFDELMNT2BW') + # For backward compatibility with the old spec. + x_message_id_hashes = stored_msg.get_all('x-message-id-hash') + self.assertEqual(len(x_message_id_hashes), 1) + self.assertEqual(x_message_id_hashes[0], + 'MS6QLWERIJLGCRF44J7USBFDELMNT2BW') |
