summaryrefslogtreecommitdiff
path: root/src/mailman/email/tests/test_message.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/email/tests/test_message.py')
-rw-r--r--src/mailman/email/tests/test_message.py37
1 files changed, 35 insertions, 2 deletions
diff --git a/src/mailman/email/tests/test_message.py b/src/mailman/email/tests/test_message.py
index e281c0d06..1fdef5e86 100644
--- a/src/mailman/email/tests/test_message.py
+++ b/src/mailman/email/tests/test_message.py
@@ -22,13 +22,15 @@ from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
'TestMessage',
+ 'TestMessageSubclass',
]
import unittest
+from email.parser import FeedParser
from mailman.app.lifecycle import create_list
-from mailman.email.message import UserNotification
+from mailman.email.message import Message, UserNotification
from mailman.testing.helpers import get_queue_messages
from mailman.testing.layers import ConfigLayer
@@ -56,5 +58,36 @@ class TestMessage(unittest.TestCase):
self._msg.send(self._mlist)
messages = get_queue_messages('virgin')
self.assertEqual(len(messages), 1)
- self.assertEqual(messages[0].msg.get_all('precedence'),
+ self.assertEqual(messages[0].msg.get_all('precedence'),
['omg wtf bbq'])
+
+
+
+class TestMessageSubclass(unittest.TestCase):
+ def test_i18n_filenames(self):
+ parser = FeedParser(_factory=Message)
+ parser.feed(b"""\
+Message-ID: <blah@example.com>
+Content-Type: multipart/mixed; boundary="------------050607040206050605060208"
+
+This is a multi-part message in MIME format.
+--------------050607040206050605060208
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: quoted-printable
+
+Test message containing an attachment with an accented filename
+
+--------------050607040206050605060208
+Content-Disposition: attachment;
+ filename*=UTF-8''d%C3%A9jeuner.txt
+
+Test content
+--------------050607040206050605060208--
+""")
+ msg = parser.close()
+ attachment = msg.get_payload(1)
+ try:
+ filename = attachment.get_filename()
+ except TypeError as e:
+ self.fail(e)
+ self.assertEqual(filename, u'd\xe9jeuner.txt')