summaryrefslogtreecommitdiff
path: root/src/mailman/handlers/tests/test_cook_headers.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/handlers/tests/test_cook_headers.py')
-rw-r--r--src/mailman/handlers/tests/test_cook_headers.py33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/mailman/handlers/tests/test_cook_headers.py b/src/mailman/handlers/tests/test_cook_headers.py
index f9def6ca8..8ab301f96 100644
--- a/src/mailman/handlers/tests/test_cook_headers.py
+++ b/src/mailman/handlers/tests/test_cook_headers.py
@@ -21,9 +21,11 @@ import unittest
from mailman.app.lifecycle import create_list
from mailman.handlers import cook_headers
+from mailman.interfaces.mailinglist import ReplyToMunging
from mailman.interfaces.member import DeliveryMode
from mailman.testing.helpers import (
- get_queue_messages, LogFileMark, make_digest_messages, subscribe)
+ LogFileMark, get_queue_messages, make_digest_messages,
+ specialized_message_from_string as mfs, subscribe)
from mailman.testing.layers import ConfigLayer
@@ -33,7 +35,7 @@ class TestCookHeaders(unittest.TestCase):
layer = ConfigLayer
def setUp(self):
- self._mlist = create_list('test@example.com')
+ self._mlist = create_list('ant@example.com')
self._mlist.send_welcome_message = False
def test_process_digest(self):
@@ -56,8 +58,31 @@ class TestCookHeaders(unittest.TestCase):
mark = LogFileMark('mailman.error')
header = cook_headers.uheader(
self._mlist, 'A multiline\ndescription', 'X-Header')
- self.assertEqual(
- header.encode(), 'A multiline [...]')
+ self.assertEqual(header.encode(), 'A multiline [...]')
log_messages = mark.read()
self.assertIn(
'Header X-Header contains a newline, truncating it', log_messages)
+
+ def test_truncate_description(self):
+ # Existing multiline descriptions get truncated with ellipses.
+ self._mlist.description = 'A multiline\ndescription\nalready\nexists'
+ self._mlist.reply_goes_to_list = ReplyToMunging.point_to_list
+ msg = mfs("""\
+From: anne@example.com
+To: ant@example.com
+Subject: A subject
+X-Mailman-Version: X.Y
+
+More things to say.
+""")
+ cook_headers.process(self._mlist, msg, {})
+ self.assertMultiLineEqual(msg.as_string(), """\
+From: anne@example.com
+To: ant@example.com
+Subject: A subject
+X-Mailman-Version: X.Y
+Precedence: list
+Reply-To: "A multiline [...]" <ant@example.com>
+
+More things to say.
+""")