blob: 043075b72f2b04bdfacaa05c93bf6cd6ce63e1bf [file] [log] [blame]
Brett Cannon43e5ef42008-05-12 03:19:20 +00001from test import test_support
Ezio Melottia2d46532010-01-30 07:22:54 +00002mimetools = test_support.import_module('mimetools', deprecated=True)
Brett Cannon43e5ef42008-05-12 03:19:20 +00003multifile = test_support.import_module('multifile', deprecated=True)
Martin v. Löwisa6026c62002-09-22 09:01:08 +00004import cStringIO
5
6msg = """Mime-Version: 1.0
7Content-Type: multipart/mixed;
Guido van Rossumbffa52f2002-09-29 00:25:51 +00008 boundary="=====================_590453667==_"
Martin v. Löwisa6026c62002-09-22 09:01:08 +00009X-OriginalArrivalTime: 05 Feb 2002 03:43:23.0310 (UTC) FILETIME=[42D88CE0:01C1ADF7]
10
11--=====================_590453667==_
12Content-Type: multipart/alternative;
Guido van Rossumbffa52f2002-09-29 00:25:51 +000013 boundary="=====================_590453677==_.ALT"
Martin v. Löwisa6026c62002-09-22 09:01:08 +000014
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
Martin v. Löwisa6026c62002-09-22 09:01:08 +000040def 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)
Guido van Rossumbffa52f2002-09-29 00:25:51 +000050 while mf.next():
51 getMIMEMsg(mf)
Martin v. Löwisa6026c62002-09-22 09:01:08 +000052 mf.pop()
53 else:
54 lines = mf.readlines()
55 linecount += len(lines)
56
Neal Norwitz996acf12003-02-17 14:51:41 +000057def test_main():
Michael W. Hudson5bf25162004-08-03 11:14:09 +000058 global boundaries, linecount
59 boundaries = 0
60 linecount = 0
Martin v. Löwisa6026c62002-09-22 09:01:08 +000061 f = cStringIO.StringIO(msg)
62 getMIMEMsg(multifile.MultiFile(f))
63 assert boundaries == 2
64 assert linecount == 9
65
66if __name__ == '__main__':
Neal Norwitz996acf12003-02-17 14:51:41 +000067 test_main()