Mercurial > p > roundup > code
view test/test_rfc2822.py @ 3945:1dd64778bc45
Mail improvements:
- Implement new config option in mail-section "ignore_alternatives" to
ignore alternatives in a multipart/alternative mail. The *last*
text/plain part of the *first* multipart/alternative is used as the
message, if ignore_alternatives is set all other alternative parts of
the first multipart/alternative that contained a text/plain part are
ignored. Other multipart/alternative or other multipart are attached
as before. This fixes [SF#959811] "Multipart/alternative handling
considered bad". Note that this also changes which text/plain part is
attached as the message if there are several text/plain parts in a
multipart: Previously the *first* text/plain would be attached. Now we
attach the *last* one, this is more in line with rfc 2046, sec. 5.1.4.
according to Philipp Gortan.
- Fix bug in attachment of text parts: If there are multiple text/plain
parts in a nested multipart, the previous code would attach the
multipart serialisation instead of the text/plain serialisation as a
file to the issue in some cases.
- Add regression tests for the new config-option and bug-fixes above.
| author | Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net> |
|---|---|
| date | Wed, 14 Nov 2007 14:57:47 +0000 |
| parents | 97f9fc0bc0ea |
| children |
line wrap: on
line source
from roundup.rfc2822 import decode_header, encode_header import unittest, time class RFC2822TestCase(unittest.TestCase): def testDecode(self): src = 'Re: [it_issue3] '\ '=?ISO-8859-1?Q?Ren=E9s_[resp=3Dg=2Cstatus=3D?= '\ '=?ISO-8859-1?Q?feedback]?=' result = 'Re: [it_issue3] Ren\xc3\xa9s [resp=g,status=feedback]' self.assertEqual(decode_header(src), result) src = 'Re: [it_issue3]'\ ' =?ISO-8859-1?Q?Ren=E9s_[resp=3Dg=2Cstatus=3D?=' \ ' =?ISO-8859-1?Q?feedback]?=' result = 'Re: [it_issue3] Ren\xc3\xa9s [resp=g,status=feedback]' self.assertEqual(decode_header(src), result) def testEncode(self): src = 'Re: [it_issue3] Ren\xc3\xa9s [status=feedback]' result = '=?utf-8?q?Re:_[it=5Fissue3]_Ren=C3=A9s_[status=3Dfeedback]?=' self.assertEqual(encode_header(src), result) src = 'Was machen\xc3\xbc und Fragezeichen?' result = '=?utf-8?q?Was_machen=C3=BC_und_Fragezeichen=3F?=' self.assertEqual(encode_header(src), result) def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(RFC2822TestCase)) return suite
