[prev in list] [next in list] [prev in thread] [next in thread]
List: mailman-cvs
Subject: [Mailman-checkins] SF.net SVN: mailman: [8180] trunk/mailman/Mailman
From: tkikuchi () users ! sourceforge ! net
Date: 2007-03-24 6:01:35
Message-ID: E1HUzJn-0001DD-NP () sc8-pr-svn1 ! sourceforge ! net
[Download RAW message or body]
Revision: 8180
http://svn.sourceforge.net/mailman/?rev=8180&view=rev
Author: tkikuchi
Date: 2007-03-23 23:01:35 -0700 (Fri, 23 Mar 2007)
Log Message:
-----------
CookHeaders.py:
Subject munging code made unified for both i18n and ascii encodings.
test_handlers.py
Adding test code for i18n and numbering subject munging.
(also tab normalization for the last commit)
Modified Paths:
--------------
trunk/mailman/Mailman/Handlers/CookHeaders.py
trunk/mailman/Mailman/testing/test_handlers.py
Modified: trunk/mailman/Mailman/Handlers/CookHeaders.py
===================================================================
--- trunk/mailman/Mailman/Handlers/CookHeaders.py 2007-03-24 05:17:00 UTC (rev 8179)
+++ trunk/mailman/Mailman/Handlers/CookHeaders.py 2007-03-24 06:01:35 UTC (rev 8180)
@@ -281,27 +281,10 @@
prefix = prefix % mlist.post_id
except TypeError:
pass
- # If charset is 'us-ascii', try to concatnate as string because there
- # is some weirdness in Header module (TK)
- if cset == 'us-ascii':
- try:
- if old_style:
- h = u' '.join([recolon, prefix, subject])
- else:
- h = u' '.join([prefix, recolon, subject])
- h = h.encode('us-ascii')
- h = uheader(mlist, h, 'Subject', continuation_ws=ws)
- del msg['subject']
- msg['Subject'] = h
- ss = u' '.join([recolon, subject])
- ss = ss.encode('us-ascii')
- ss = uheader(mlist, ss, 'Subject', continuation_ws=ws)
- msgdata['stripped_subject'] = ss
- return
- except UnicodeError:
- pass
# Get the header as a Header instance, with proper unicode conversion
- if old_style:
+ if not recolon:
+ h = uheader(mlist, prefix, 'Subject', continuation_ws=ws)
+ elif old_style:
h = uheader(mlist, recolon, 'Subject', continuation_ws=ws)
h.append(prefix)
else:
Modified: trunk/mailman/Mailman/testing/test_handlers.py
===================================================================
--- trunk/mailman/Mailman/testing/test_handlers.py 2007-03-24 05:17:00 UTC (rev 8179)
+++ trunk/mailman/Mailman/testing/test_handlers.py 2007-03-24 06:01:35 UTC (rev 8180)
@@ -580,6 +580,70 @@
CookHeaders.process(self._mlist, msg, {})
self.assertEqual(msg['subject'], 'Re: [XTEST] About Mailman...')
+ def test_subject_munging_i18n(self):
+ self._mlist.subject_prefix = '[XTEST]'
+ msg = Message.Message()
+ msg['Subject'] = '=?iso-2022-jp?b?GyRCJWEhPCVrJV4lcxsoQg==?='
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(unicode(msg['subject']),
+ u'[XTEST] \u30e1\u30fc\u30eb\u30de\u30f3')
+ self.assertEqual(msg['subject'],
+ '[XTEST] =?iso-2022-jp?b?GyRCJWEhPCVrJV4lcxsoQg==?=')
+ self._mlist.subject_prefix = '[XTEST %d]'
+ self._mlist.post_id = 456
+ msg = Message.Message()
+ msg['Subject'] = '=?iso-2022-jp?b?GyRCJWEhPCVrJV4lcxsoQg==?='
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(unicode(msg['subject']),
+ u'[XTEST 456] \u30e1\u30fc\u30eb\u30de\u30f3')
+ self.assertEqual(msg['subject'],
+ '[XTEST 456] =?iso-2022-jp?b?GyRCJWEhPCVrJV4lcxsoQg==?=')
+ msg = Message.Message()
+ msg['Subject'
+ ] = 'Re: [XTEST 123] =?iso-2022-jp?b?GyRCJWEhPCVrJV4lcxsoQg==?='
+ CookHeaders.process(self._mlist, msg, {})
+ # next code suceeds if python email patch tracker #1681333 is applied.
+ #self.assertEqual(unicode(msg['subject']),
+ # u'[XTEST 456] Re: \u30e1\u30fc\u30eb\u30de\u30f3')
+ self.assertEqual(msg['subject'],
+ '[XTEST 456] Re: =?iso-2022-jp?b?GyRCJWEhPCVrJV4lcxsoQg==?=')
+
+ def test_subject_munging_prefix_number(self):
+ self._mlist.subject_prefix = '[XTEST %d]'
+ self._mlist.post_id = 456
+ msg = Message.Message()
+ msg['Subject'] = 'About Mailman...'
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(msg['subject'], '[XTEST 456] About Mailman...')
+ msg = Message.Message()
+ msg['Subject'] = 'Re: [XTEST 123] About Mailman...'
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(msg['subject'], '[XTEST 456] Re: About Mailman...')
+
+ def test_subject_munging_prefix_newstyle(self):
+ self._mlist.subject_prefix = '[XTEST]'
+ config.OLD_STYLE_PREFIXING = False
+ msg = Message.Message()
+ msg['Subject'] = 'Re: [XTEST] About Mailman...'
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(msg['subject'], '[XTEST] Re: About Mailman...')
+
+ def test_subject_munging_prefix_crooked(self):
+ # In this test case, we get an extra space between the prefix and
+ # the original subject. It's because the original is crooked.
+ # Note that isubject starting by '\n ' is generated by some version of
+ # Eudora Japanese edition.
+ self._mlist.subject_prefix = '[XTEST]'
+ msg = Message.Message()
+ msg['Subject'] = '\n About Mailman...'
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(str(msg['subject']), '[XTEST] About Mailman...')
+ del msg['subject']
+ msg['Subject'] = '\n =?iso-2022-jp?b?GyRCJWEhPCVrJV4lcxsoQg==?='
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(str(msg['subject']),
+ '[XTEST] =?iso-2022-jp?b?IBskQiVhITwlayVeJXMbKEI=?=')
+
def test_reply_to_list(self):
eq = self.assertEqual
mlist = self._mlist
@@ -1609,7 +1673,7 @@
def test_send_i18n_digest(self):
eq = self.assertEqual
mlist = self._mlist
- mlist.preferred_language = 'fr'
+ mlist.preferred_language = 'fr'
msg = email.message_from_string("""\
From: aperson@example.org
To: _xtest@example.com
@@ -1622,23 +1686,23 @@
""")
mlist.digest_size_threshhold = 0
ToDigest.process(mlist, msg, {})
- files = self._sb.files()
+ files = self._sb.files()
eq(len(files), 2)
for filebase in files:
- qmsg, qdata = self._sb.dequeue(filebase)
+ qmsg, qdata = self._sb.dequeue(filebase)
if qmsg.get_content_maintype() == 'multipart':
mimemsg = qmsg
mimedata = qdata
else:
rfc1153msg = qmsg
rfc1153data = qdata
- eq(rfc1153msg.get_content_type(), 'text/plain')
- eq(rfc1153msg.get_content_charset(), 'utf-8')
- eq(rfc1153msg['content-transfer-encoding'], 'base64')
- toc = mimemsg.get_payload()[1]
- eq(toc.get_content_type(), 'text/plain')
- eq(toc.get_content_charset(), 'utf-8')
- eq(toc['content-transfer-encoding'], 'base64')
+ eq(rfc1153msg.get_content_type(), 'text/plain')
+ eq(rfc1153msg.get_content_charset(), 'utf-8')
+ eq(rfc1153msg['content-transfer-encoding'], 'base64')
+ toc = mimemsg.get_payload()[1]
+ eq(toc.get_content_type(), 'text/plain')
+ eq(toc.get_content_charset(), 'utf-8')
+ eq(toc['content-transfer-encoding'], 'base64')
This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site. _______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: http://mail.python.org/mailman/options/mailman-checkins/mailman-cvs%40progressive-comp.com
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic