def test_walk(): message = recover(ENCLOSED) expected = [ 'multipart/mixed', 'text/plain', 'message/rfc822', 'multipart/alternative', 'text/plain', 'text/html' ] eq_(expected[1:], [str(p.content_type) for p in message.walk()]) eq_(expected, [str(p.content_type) for p in message.walk(with_self=True)]) eq_(['text/plain', 'message/rfc822'], [str(p.content_type) for p in message.walk(skip_enclosed=True)])
def test_attachments(): """Content-Type and file name are properly detected """ # pdf attachment, file name in Content-Disposition data = """Content-Type: application/octet-stream; name="J_S III_W-2.pdf" Content-Disposition: attachment; filename*="J_S III_W-2.pdf" Content-Transfer-Encoding: base64 YmxhaGJsYWhibGFo """ part = scan(data) eq_('application/pdf', part.detected_content_type) eq_('J_S III_W-2.pdf', part.detected_file_name) # no attachment data = """Content-Type: text; charset=ISO-8859-1 some plain text here """ part = scan(data) eq_('text/plain', part.detected_content_type) eq_('', part.detected_file_name) # inline attachment, file name in Content-Disposition data = """Content-Type: image/png Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=2.png Content-ID: <FN2JbofqmRT7zIMt8uzW> YmxhaGJsYWhibGFo """ part = scan(data) eq_('image/png', part.detected_content_type) eq_('2.png', part.detected_file_name) # broken mime data = """Content-Type: Нельзя это распарсить адекватно" Content-Disposition: Да и это тоже Content-Transfer-Encoding: base64 YmxhaGJsYWhibGFo """ part = recover(data) eq_('text/plain', part.detected_content_type) eq_('', part.detected_file_name)