1from test import test_support 2mimetools = test_support.import_module('mimetools', deprecated=True) 3multifile = test_support.import_module('multifile', deprecated=True) 4import cStringIO 5 6msg = """Mime-Version: 1.0 7Content-Type: multipart/mixed; 8 boundary="=====================_590453667==_" 9X-OriginalArrivalTime: 05 Feb 2002 03:43:23.0310 (UTC) FILETIME=[42D88CE0:01C1ADF7] 10 11--=====================_590453667==_ 12Content-Type: multipart/alternative; 13 boundary="=====================_590453677==_.ALT" 14 15--=====================_590453677==_.ALT 16Content-Type: text/plain; charset="us-ascii"; format=flowed 17 18test A 19--=====================_590453677==_.ALT 20Content-Type: text/html; charset="us-ascii" 21 22<html> 23<b>test B</font></b></html> 24 25--=====================_590453677==_.ALT-- 26 27--=====================_590453667==_ 28Content-Type: text/plain; charset="us-ascii" 29Content-Disposition: attachment; filename="att.txt" 30 31Attached Content. 32Attached Content. 33Attached Content. 34Attached Content. 35 36--=====================_590453667==_-- 37 38""" 39 40def getMIMEMsg(mf): 41 global boundaries, linecount 42 msg = mimetools.Message(mf) 43 44 #print "TYPE: %s" % msg.gettype() 45 if msg.getmaintype() == 'multipart': 46 boundary = msg.getparam("boundary") 47 boundaries += 1 48 49 mf.push(boundary) 50 while mf.next(): 51 getMIMEMsg(mf) 52 mf.pop() 53 else: 54 lines = mf.readlines() 55 linecount += len(lines) 56 57def test_main(): 58 global boundaries, linecount 59 boundaries = 0 60 linecount = 0 61 f = cStringIO.StringIO(msg) 62 getMIMEMsg(multifile.MultiFile(f)) 63 assert boundaries == 2 64 assert linecount == 9 65 66if __name__ == '__main__': 67 test_main() 68