view test/test_rfc2822.py @ 4468:502a1a8620e6

Tests and fixes. - Factor MailGW message parsing into a separate class, thanks to John Kristensen who did the major work in issue2550576 -- I wouldn't have attempted it without this. Fixes issue2550576. (Ralf) - Now if the -C option to roundup-mailgw specifies "issue" this refers to an issue-like class. The real class is determined from the configured default class, or the -c option to the mailgw, or the class resulting from mail subject parsing. We also accept multiple -S options for the same class now. (Ralf) - Add regression test for message-id generation if message id is missing in a message - Add regression tests for Option parsing (-S and -C options)
author Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
date Thu, 23 Dec 2010 15:42:30 +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

Roundup Issue Tracker: http://roundup-tracker.org/