from test import test_support | |
mimetools = test_support.import_module('mimetools', deprecated=True) | |
multifile = test_support.import_module('multifile', deprecated=True) | |
import cStringIO | |
msg = """Mime-Version: 1.0 | |
Content-Type: multipart/mixed; | |
boundary="=====================_590453667==_" | |
X-OriginalArrivalTime: 05 Feb 2002 03:43:23.0310 (UTC) FILETIME=[42D88CE0:01C1ADF7] | |
--=====================_590453667==_ | |
Content-Type: multipart/alternative; | |
boundary="=====================_590453677==_.ALT" | |
--=====================_590453677==_.ALT | |
Content-Type: text/plain; charset="us-ascii"; format=flowed | |
test A | |
--=====================_590453677==_.ALT | |
Content-Type: text/html; charset="us-ascii" | |
<html> | |
<b>test B</font></b></html> | |
--=====================_590453677==_.ALT-- | |
--=====================_590453667==_ | |
Content-Type: text/plain; charset="us-ascii" | |
Content-Disposition: attachment; filename="att.txt" | |
Attached Content. | |
Attached Content. | |
Attached Content. | |
Attached Content. | |
--=====================_590453667==_-- | |
""" | |
def getMIMEMsg(mf): | |
global boundaries, linecount | |
msg = mimetools.Message(mf) | |
#print "TYPE: %s" % msg.gettype() | |
if msg.getmaintype() == 'multipart': | |
boundary = msg.getparam("boundary") | |
boundaries += 1 | |
mf.push(boundary) | |
while mf.next(): | |
getMIMEMsg(mf) | |
mf.pop() | |
else: | |
lines = mf.readlines() | |
linecount += len(lines) | |
def test_main(): | |
global boundaries, linecount | |
boundaries = 0 | |
linecount = 0 | |
f = cStringIO.StringIO(msg) | |
getMIMEMsg(multifile.MultiFile(f)) | |
assert boundaries == 2 | |
assert linecount == 9 | |
if __name__ == '__main__': | |
test_main() |