rQc@s/ddlZddlZddlZddlZddlZddlZddlZddlmZddl Z ddl m Z ddl m Z mZmZddlmZmZddlmZmZddlmZddlmZdd lmZdd lmZdd lmZdd l m!Z!dd l"m#Z#ddl$m%Z%ddl m&Z&ddl m'Z'ddl m(Z(ddl m)Z)ddl m*Z*ddl m+Z+ddl,m-Z-m.Z.ddl/m0Z1dZ2dZ3dZ4ddZ5dej6fdYZ7de7fdYZ8d ej6fd!YZ9d"e7fd#YZ:d$ej6fd%YZ;d&ej6fd'YZ<d(ej6fd)YZ=d*ej6fd+YZ>d,ej6fd-YZ?d.e7fd/YZ@d0e7fd1YZAd2ej6fd3YZBd4e7fd5YZCd6e7fd7YZDd8e7fd9YZEd:e7fd;YZFd<e7fd=YZGd>ej6fd?YZHd@ej6fdAYZIdBej6fdCYZJdDe7fdEYZKdFe7fdGYZLdHZMdIZNdJZOePdKkr+ejQdLdMndS(NiN(tStringIO(tCharset(tHeadert decode_headert make_header(tParsert HeaderParser(t GeneratortDecodedGenerator(tMessage(tMIMEApplication(t MIMEAudio(tMIMEText(t MIMEImage(tMIMEBase(t MIMEMessage(t MIMEMultipart(tutils(terrors(tencoders(t iterators(t base64mime(t quoprimime(tfindfilet run_unittest(t__file__s tt trcCs1tjjtjjtd|}t||S(Ntdata(tostpathtjointdirnametlandmarktopen(tfilenametmodeR((s3/sys/lib/python2.7/email/test/test_email_renamed.pytopenfile-s$t TestEmailBasecBseZdZdZRS(cCs}||kryt|}t|}tj|j|j}t}|tItj|IJ|j|jndS(s6Like assertEqual except use ndiff for readable output.N( tstrtdifflibtndifft splitlinesRtNLR tfailureExceptiontgetvalue(tselftfirsttsecondtsfirsttssecondtdifftfp((s3/sys/lib/python2.7/email/test/test_email_renamed.pytndiffAssertEqual5s    cCs7tt|}ztj|}Wd|jX|S(N(R&Rtemailtmessage_from_filetclose(R/R$R5tmsg((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt_msgobj?s  (t__name__t __module__R6R;(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR'4s tTestMessageAPIcBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4RS(3cCsT|j}|jd}||jddddg||jddddS(Ns msg_20.txttccs ccc@zzz.orgs ddd@zzz.orgs eee@zzz.orgtxxsn/a(t assertEqualR;tget_all(R/teqR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_get_allKs cCsL|j}t}||jdtd}|j|||dd||jd||dd||jdd||dd ||jjd|jd||jd||ddt}d |d Content-Type: Multipart/mixed; boundary = "CPIMSSMTPC06p5f3tG"s Content-TypetboundarytCPIMSSMTPC06p5f3tG(R RARJ(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_get_param_liberal)s  cCs|j}tjd}||jdddd||jdddd||jddtjd}||jdddd ||jdddd ||jd ddddS( Ns&X-Header: foo=one; bar=two; baz=three RRcsx-headerRtquuzs"X-Header: foo; bar="one"; baz=two RkRRR(RAR7RRJRG(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_get_param.s   cCs5|jd}|j|jdjdddS(Ns msg_22.txtitnames wibble.JPG(R;RARTRJ(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt'test_get_param_funky_continuation_lines?scCsKtjd}|j|jdd|j|jddtddS(Ns4Content-Type: image/pjpeg; name="Jim&&Jill" RsJim&&Jilltunquotes"Jim&&Jill"(R7RRARJtFalse(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt#test_get_param_with_semis_in_quotesCs  cCsktjd}|j|jd|j|jd|j|jd|j|jddS(NsHeader: existsRcRtHEADERtheaderi(R7RR|thas_keyt assertFalse(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_has_keyJs cCs|j}t}|jdd||jdd|jdd||jdd||jddtd||jd ddg||jdtdddg|jdd d d ||jdd d d dS(NREs iso-2022-jpt importances high valueRs "high value"s text/plainRs "iso-2022-jp"s iso-9999-xxRcsX-Jimmy(s text/plainR(scharsets iso-2022-jp(Rs high value(s text/plainR(scharsets "iso-2022-jp"(Rs "high value"(RAR t set_paramRJRR(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_set_paramQs    cCs|j}|jd}||jdd d g|jd}|jd||jd d g|jd|||jd dd|fgdS(Ns msg_05.txtsmultipart/reportRs report-typesdelivery-statusRs%D1690A7AC1.996856090/mail.example.com(smultipart/reportR(s report-typesdelivery-status(sboundarys%D1690A7AC1.996856090/mail.example.com(smultipart/reportR(sboundarys%D1690A7AC1.996856090/mail.example.com(smultipart/reportR(sboundarys%D1690A7AC1.996856090/mail.example.com(RAR;RRJt del_paramR(R/RCR:told_val((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_del_parambs       cCsGt}|jdddd|jdd|j|dddS(NsContent-Dispositiont attachmentR$sbud.gifscontent-disposition(R t add_headerRRA(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_del_param_on_other_headerss cCs|j}t}|jt|jd|jd||dd|jdd||dd|jd||dddS( NRps text/plains content-typeREsus-asciistext/plain; charset="us-ascii"s text/htmlstext/html; charset="us-ascii"(RAR Rat ValueErrortset_typeR(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_set_typeys    cCs;t}d|d<|jdd|j|dddS(Ns text/plainsX-Content-Typesapplication/octet-streamsx-content-type(R RRA(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_set_type_on_other_headers  cCs#t}|j|jddS(Ns text/plain(R RARI(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_get_content_type_missings cCs0t}|jd|j|jddS(Nsmessage/rfc822(R tset_default_typeRARI(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt/test_get_content_type_missing_with_default_types  cCs2|jd}|j|jdjddS(Ns msg_30.txtismessage/rfc822(R;RARTRI(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt+test_get_content_type_from_message_implicitscCs2|jd}|j|jdjddS(Ns msg_28.txtismessage/rfc822(R;RARTRI(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt+test_get_content_type_from_message_explicitscCs)|jd}|j|jddS(Ns msg_03.txts text/plain(R;RARI(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt6test_get_content_type_from_message_text_plain_implicitscCs)|jd}|j|jddS(Ns msg_01.txts text/plain(R;RARI(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt6test_get_content_type_from_message_text_plain_explicitscCs#t}|j|jddS(NRp(R RAtget_content_maintype(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt!test_get_content_maintype_missings cCs0t}|jd|j|jddS(Nsmessage/rfc822tmessage(R RRAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt3test_get_content_maintype_missing_with_default_types  cCs2|jd}|j|jdjddS(Ns msg_30.txtiR(R;RARTR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt/test_get_content_maintype_from_message_implicitscCs2|jd}|j|jdjddS(Ns msg_28.txtiR(R;RARTR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt/test_get_content_maintype_from_message_explicitscCs)|jd}|j|jddS(Ns msg_03.txtRp(R;RAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt:test_get_content_maintype_from_message_text_plain_implicitscCs)|jd}|j|jddS(Ns msg_01.txtRp(R;RAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt:test_get_content_maintype_from_message_text_plain_explicitscCs#t}|j|jddS(Ntplain(R RAtget_content_subtype(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_get_content_subtype_missings cCs0t}|jd|j|jddS(Nsmessage/rfc822trfc822(R RRAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt2test_get_content_subtype_missing_with_default_types  cCs2|jd}|j|jdjddS(Ns msg_30.txtiR(R;RARTR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt.test_get_content_subtype_from_message_implicitscCs2|jd}|j|jdjddS(Ns msg_28.txtiR(R;RARTR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt.test_get_content_subtype_from_message_explicitscCs)|jd}|j|jddS(Ns msg_03.txtR(R;RAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt9test_get_content_subtype_from_message_text_plain_implicitscCs)|jd}|j|jddS(Ns msg_01.txtR(R;RAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt9test_get_content_subtype_from_message_text_plain_explicitscCs-t}d|d<|j|jddS(Nsno-slash-in-this-strings Content-TypeRp(R RAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_get_content_maintype_errors  cCs-t}d|d<|j|jddS(Nsno-slash-in-this-strings Content-TypeR(R RAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_get_content_subtype_errors  cCs=|j}t}|jdd|jdd|jdd||jdddg||jdddg|jdd||jdddg||jdddg|jdd|jdd ||jddddg||jd dddg|jt|jd d dS( NtFirsttOnetSecondtTwotThirdtThreetTwentytElevens One HundredtFourthtMissing(RAR Rtkeystvaluestreplace_headerRatKeyError(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_replace_headers  cCsPd}t}d|dJsf                                             t TestEncoderscBs#eZdZdZdZRS(cCs4|j}t}|jd||dddS(Nsus-asciiscontent-transfer-encodingt7bit(RAR RH(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_encode_empty_payloads   cCs*|j}td}||dddS(Ns hello worldscontent-transfer-encodingR(RAR (R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_default_ctes  cCsj|j}td}||ddtd}||ddtddd}||dddS( Ns hello worldscontent-transfer-encodingRs hello worldt8bitt_charsets iso-8859-1squoted-printable(RAR (R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR s   (R<R=RR(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRs  tTestLongHeaderscBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZRS(cCsQ|j}tjd}t}t|}|j|||jddS(NsSubject: bug demonstration 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789 more text test sSubject: bug demonstration 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789 more text test (R6R7RRRRoR.(R/RCR:tsfpRr((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_split_long_continuations      cCsW|j}d}t|dd}||jdt|}||jddS(Nsbug demonstration 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789 more texttcontinuation_wss sbug demonstration 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789 more text(R6Rtencode(R/RCthstrth((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt,test_another_long_almost_unsplittable_header-s    c Cs|j}td}td}td}d}d}djd}t||dd}|j|||j||t} || ds&           cCs2|j}tddd}||jddS(Nsiwasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"RsX-Foobar-Spoink-Defrobnitsjwasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"(R6RR(R/RCR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_long_header_encodeis     cCs8|j}tddddd}||jddS(Nsiwasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"RsX-Foobar-Spoink-DefrobnitRs sjwasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"(R6RR(R/RCR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt-test_long_header_encode_with_tab_continuationrs     cCsX|j}td}d|dt ReferencestTestsFrom: test@dom.ain References: <0@dom.ain> <1@dom.ain> <2@dom.ain> <3@dom.ain> <4@dom.ain> <5@dom.ain> <6@dom.ain> <7@dom.ain> <8@dom.ain> <9@dom.ain> Test( R6R tSPACER trangeRNRRRoR.(R/RCR:tiRRr((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_no_semis_header_splitters   0     cCs@|j}ddd}t|dd}||jddS(Ns References: RiPRs s\References: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(R6RR(R/RCRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_no_split_long_headers   cCs8|j}d}t|dd}||jddS(NsWfrom babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for ; Sat, 2 Feb 2002 17:00:06 -0800 (PST) from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for ; Sat, 2 Feb 2002 17:00:06 -0800 (PST) from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for ; Sat, 2 Feb 2002 17:00:06 -0800 (PST) Rs s_from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for ; Sat, 2 Feb 2002 17:00:06 -0800 (PST) from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for ; Sat, 2 Feb 2002 17:00:06 -0800 (PST) from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for ; Sat, 2 Feb 2002 17:00:06 -0800 (PST)(R6RR(R/RCRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt"test_splitting_multiple_long_liness   cCsD|j}d}t|dddddd}||jddS( Nsfrom modemcable093.139-201-24.que.mc.videotron.ca ([24.201.139.93] helo=cthulhu.gerg.ca) by kronos.mems-exchange.org with esmtp (Exim 4.05) id 17k4h5-00034i-00 for test@mems-exchange.org; Wed, 28 Aug 2002 11:25:20 -0400t maxlineleniNRtReceivedRs sfrom modemcable093.139-201-24.que.mc.videotron.ca ([24.201.139.93] helo=cthulhu.gerg.ca) by kronos.mems-exchange.org with esmtp (Exim 4.05) id 17k4h5-00034i-00 for test@mems-exchange.org; Wed, 28 Aug 2002 11:25:20 -0400(R6RR(R/RCRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt&test_splitting_first_line_only_is_longs    cCsU|j}t}tdddd}|jd||d<||jddS(NsBritische Regierung gibts iso-8859-1RRs+grnes Licht fr Offshore-WindkraftprojektesSubject: =?iso-8859-1?q?Britische_Regierung_gibt?= =?iso-8859-1?q?gr=FCnes?= =?iso-8859-1?q?_Licht_f=FCr_Offshore-Windkraftprojekte?= (R6R RRR(R/RCR:R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_long_8bit_headers       cCs3|j}t}d|d<||jddS(NsfBritische Regierung gibt grnes Licht fr Offshore-Windkraftprojekte sReply-TosrReply-To: Britische Regierung gibt grnes Licht fr Offshore-Windkraftprojekte (R6R R(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_long_8bit_header_no_charsets     cCs<|j}d}t}||d<||jdddS(Ns"Someone Test #A" ,,"Someone Test #B" , "Someone Test #C" , "Someone Test #D" RzisTo: "Someone Test #A" , , "Someone Test #B" , "Someone Test #C" , "Someone Test #D" (R6R R(R/RCRwR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_long_to_headers    cCs?|j}d}t|}|jd||jddS(NsIThis is an example of string which has almost the limit of header length.sAdd another line.s\This is an example of string which has almost the limit of header length. Add another line.(R6RRR(R/RCRqR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_long_line_after_appends     cCs?|j}d}t|}|jd||jddS(NsThis is a shorter line.s!Add another sentence. (Surprise?)s9This is a shorter line. Add another sentence. (Surprise?)(R6RRR(R/RCRqR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_shorter_line_with_appends     cCsA|j}d}d}t|dd|}||jddS(Ns!X-Very-Very-Very-Long-Header-NamesDie Mieter treten hier ein werden mit einem Foerderband komfortabel den Korridor entlang, an sdlndischen Wandgemlden vorbei, gegen die rotierenden Klingen befrdert. s iso-8859-1Rs=?iso-8859-1?q?Die_Mieter_treten_hier_?= =?iso-8859-1?q?ein_werden_mit_einem_Foerderband_komfortabel_den_Korridor_?= =?iso-8859-1?q?entlang=2C_an_s=FCdl=FCndischen_Wandgem=E4lden_vorbei=2C_g?= =?iso-8859-1?q?egen_die_rotierenden_Klingen_bef=F6rdert=2E_?=(R6RR(R/RCtfntgsR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_long_field_names   cCsId}t}t|dd|d<||d<|j|jddS(Nsfrom FOO.TLD (vizworld.acl.foo.tld [123.452.678.9]) by hrothgar.la.mastaler.com (tmda-ofmipd) with ESMTP; Wed, 05 Mar 2003 18:10:18 -0700Rs s Received-1s Received-2s1Received-1: from FOO.TLD (vizworld.acl.foo.tld [123.452.678.9]) by hrothgar.la.mastaler.com (tmda-ofmipd) with ESMTP; Wed, 05 Mar 2003 18:10:18 -0700 Received-2: from FOO.TLD (vizworld.acl.foo.tld [123.452.678.9]) by hrothgar.la.mastaler.com (tmda-ofmipd) with ESMTP; Wed, 05 Mar 2003 18:10:18 -0700 (R RR6R(R/RR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_long_received_header s   cCsOd}t}t|dddd|d<||d<|j|jddS(Ns<15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de> (David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100")Rs Received-1Rs RsReceived: <15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de> (David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100") Received: <15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de> (David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100") (R RR6R(R/RR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_string_headerinst_eqs   cCsO|j}t}d}||d, tListRsQList: List-Unsubscribe: , List: List-Unsubscribe: , (R6R RR(R/RCRR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt%test_long_lines_with_different_headerFs   (R<R=RRRRRRRRRRRRRRRRRRR R R (((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRs*   +          tTestFromManglingcBs#eZdZdZdZRS(cCs-t|_d|jd<|jjddS(Ns aaa@bbb.orgRus(From the desk of A.A.A.: Blah blah blah (R R:RN(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pytsetUpZs   cCsEt}t|dt}|j|j|j|jddS(Nt mangle_from_s<From: aaa@bbb.org >From the desk of A.A.A.: Blah blah blah (RRRgRoR:RAR.(R/RqRr((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_mangled_frombs  cCsEt}t|dt}|j|j|j|jddS(NRs;From: aaa@bbb.org From the desk of A.A.A.: Blah blah blah (RRRRoR:RAR.(R/RqRr((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_dont_mangle_fromms  (R<R=RRR(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRYs  t TestMIMEAudiocBs5eZdZdZdZdZdZRS(cCsstjjtjjtdd}ttd|d}z|j|_Wd|j Xt |j|_ dS(NRRs audiotest.autrb( RRR R!R"R#RRnt _audiodataR9R t_au(R/tdatadirR5((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR|s $ cCs|j|jjddS(Ns audio/basic(RARRI(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_guess_minor_typescCs/|jj}|jtj||jdS(N(RRTRARt decodestringR(R/tpayload((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_encodingscCs,t|jd}|j|jddS(Ntfishs audio/fish(R RRARI(R/tau((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_checkSetMinorscCs|j}|j}|jjdddd||jdd||jjddd d g||jjddddg}||jjdddd||jjd d |dd|k||jjd ||k||jjd|dd |kdS(NsContent-DispositionRR$s audiotest.auscontent-dispositions#attachment; filename="audiotest.au"RcRRktfailobjtfoobar(s attachmentR(R$s audiotest.au(RAR|RRRRJ(R/RCtunlesstmissing((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_add_headers"    (R<R=RRRRR#(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR{s     t TestMIMEImagecBs5eZdZdZdZdZdZRS(cCsCtd}z|j|_Wd|jXt|j|_dS(NsPyBanner048.gif(R&Rnt_imgdataR9R t_im(R/R5((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRs   cCs|j|jjddS(Ns image/gif(RAR&RI(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRscCs/|jj}|jtj||jdS(N(R&RTRARRR%(R/R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRscCs,t|jd}|j|jddS(NRs image/fish(R R%RARI(R/tim((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRscCs|j}|j}|jjdddd||jdd||jjddd d g||jjddddg}||jjdddd||jjd d |dd|k||jjd ||k||jjd|dd |kdS(NsContent-DispositionRR$sdingusfish.gifscontent-dispositions%attachment; filename="dingusfish.gif"RcRRkRR (s attachmentR(R$sdingusfish.gif(RAR|R&RRRJ(R/RCR!R"((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR#s"    (R<R=RRRRR#(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR$s     tTestMIMEApplicationcBs,eZdZdZdZdZRS(cCs=|j}td}||jd||dddS(Nssapplication/octet-streamscontent-transfer-encodingR(RAR RI(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_headerss  cCsK|j}d}t|}||jd||jdt|dS(Nss+vv8/f7/Rf(RAR RTRg(R/RCtbytesR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_bodys   cCsd}t|dtj}|j|j||j|jdt||j|ddt}t|}|j||j }t j |}|j|j||j|jdt||j|dddS(Nst_encoderRfsContent-Transfer-EncodingR( R Rtencode_7or8bitRARTRgRRRoR.R7R(R/t bytesdataR:RqRrtwireformtmsg2((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt$test_binary_body_with_encode_7or8bits    cCsd}t|dtj}|j|j||j|jdt|t}t|}|j||j }t j |}|j|j||j|jdt|dS(NsR,Rf( R Rt encode_noopRARTRgRRRoR.R7R(R/R.R:RqRrR/R0((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt!test_binary_body_with_encode_noops    (R<R=R)R+R1R3(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR(s   t TestMIMETextcBs,eZdZdZdZdZRS(cCstd|_dS(Ns hello there(R t_msg(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR scCs|j}|j}||jjd||jjddg}||jjd||k||jjd|dd|kdS(Ns text/plainREsus-asciiR Rc(RAR|R5RIRJ(R/RCR!R"((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_types s  cCs4|j|jjd|j|jj dS(Ns hello there(RAR5RTR|t is_multipart(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_payloadscCsF|j}tddd}||jjd||dddS(Ns hello thereRsus-asciis content-typestext/plain; charset="us-ascii"(RAR RFRK(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_charsets (R<R=RR6R8R9(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR4s  t TestMultipartcBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZRS(c CsVtd}z|j}Wd|jXtdddd}t|dd}|jdd d dtd }|j||j|d |d Rus)Dingus Lovers RzsHere is your dingus fishRg4FcpAiit-t+s %s%04di$s%a, %d %b %Y %H:%M:%StDate(R&RnR9RR RR tattachttimet localtimettimezonetaltzonetstrftimeR5R&t_txt( R/R5Rt containertimagetintrotnowt timetuplettzsecstsignttzoffset((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR$s<              cCs|j}|j}|j}|j}||j||jd|t|jd|t|jd|jd}|jd}|||j k|||j k||j||g||j ||j dS(Nsmultipart/mixediii( RAR|RaR5R7RItlenRTt IndexErrorRFR&(R/RCR!traisesR tm0tm1((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_hierarchyLs    cCs2d}tj|}|j||jdS(NsContent-Type: multipart/mixed; boundary="BOUNDARY" MIME-Version: 1.0 Subject: A subject To: aperson@dom.ain From: bperson@dom.ain --BOUNDARY --BOUNDARY-- (RtparsestrR6R(R/RpR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_empty_multipart_idempotent_s cCsTtdd}d|d ----961284236552522269-- (R;RAR(R/R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_boundary_in_non_multipartks cCs[|j}tjd}|j|j||jd|t|jddS(NsMIME-Version: 1.0 Content-Type: multipart/mixed; boundary=" XXXX" -- XXXX Content-Type: text/plain -- XXXX Content-Type: text/plain -- XXXX-- s XXXXi(RAR7RR|R7R\RORT(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_boundary_with_leading_spacezs   cCs5tjd}|j|jdjddS(NsContent-Type: multipart/mixed; boundary="===============0012394164==" MIME-Version: 1.0 --===============0012394164== Content-Type: image/file1.jpg MIME-Version: 1.0 Content-Transfer-Encoding: base64 YXNkZg== --===============0012394164==--isYXNkZg==(RRURART(R/R ((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt&test_boundary_without_trailing_newlines (R<R=RRTRVRXR[R\R]R^R_R`RaRdReRgRhRiRjRk(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR:#s$ (               tTestNonConformantcBsYeZdZdZdZdZdZdZdZdZ dZ RS( cCsU|j}|jd}||jd||jd||jddS(Ns msg_14.txts text/plainRpR(RAR;RIRR(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_parse_missing_minor_types  cCst|j}|jd}|jd}|t|d|jt|jd|t|jdtj dS(Ns msg_15.txtitdefectsi( R|R;RTthasattrRARORnt isinstanceRtStartBoundaryNotFoundDefect(R/R!R:tinner((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_same_boundary_inner_outers cCs|j}|jd}|t|jt|jt|jd|t|jdtj |t|jdtj dS(Ns msg_25.txtiii( R|R;RpRTR(RARORnRtNoBoundaryInMultipartDefectt!MultipartInvariantViolationDefect(R/R!R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_multipart_no_boundarys cCs|j}|j}t}d|d<||jd||jd||jd|d=d|d<||jd||jd||jdt}t|}|j|||j ddS(NRps Content-TypeRs text/plains content-typeRksContent-Type: foo ( RAR6R RRRIRRRoR.(R/RCtneqR:RqRr((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_invalid_content_types         cCs/|j}|jd}||jddS(Ns msg_31.txtsm--BOUNDARY Content-Type: text/plain message 1 --BOUNDARY Content-Type: text/plain message 2 --BOUNDARY-- (R6R;RT(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_no_start_boundarys  cCs/|j}|jd}||jddS(Ns msg_35.txtsFrom: aperson@dom.ain To: bperson@dom.ain Subject: here's something interesting counter to RFC 2822, there's no separating newline here (R6R;R(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_no_separating_blank_lines  cCs|j}|jd}|t|d|jt|jd|t|jdtj|t|jdtj dS(Ns msg_41.txtRniii( R|R;RoRARORnRpRRtRu(R/R!R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_lying_multiparts cCsd|jd}|jdjd}|jt|jd|jt|jdtjdS(Ns msg_42.txtii( R;RTRARORnR|RpRRq(R/RWtbad((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_missing_start_boundarys  cCs|j}d}tj|}||jg||jd|t|jd|jt|jdt j ||jdj ddS(Ns Line 1 Line 2 Line 3s Line 2 Line 3iis Line 1 ( RAR7RRRTRORnR|RpRt#FirstHeaderLineIsContinuationDefecttline(R/RCR R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt&test_first_line_is_continuation_headers  ( R<R=RmRsRvRxRyRzR{R}R(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRls    t TestRFC2047cBs5eZdZdZdZdZdZRS(cCsQ|j}d}t|}||ddd d g|tt|ddS( NsVRe: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz foo bar =?mac-iceland?q?r=8Aksm=9Arg=8Cs?=sRe:s rksmrgss mac-icelands baz foo barsVRe: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz foo bar =?mac-iceland?q?r=8Aksm=9Arg=8Cs?=(sRe:N(s rksmrgss mac-iceland(s baz foo barN(s rksmrgss mac-iceland(RARRGR(R(R/RCRqtdh((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2047_multilines   cCsZ|j}d}t|}||ddgtt|jd}||ddS( Ns0=?ISO-8859-1?Q?Andr=E9?= Pirard sAndrs iso-8859-1sPirard slatin-1sAndr Pirard (sAndrs iso-8859-1(sPirard N(RARRGtunicodeRR(R/RCRqRthu((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_whitespace_eater_unicodes   cCsW|j}d}t|}||dd d d gt|j}||ddS( NsWThe =?iso-8859-1?b?cXVpY2sgYnJvd24gZm94?= jumped over the =?iso-8859-1?b?bGF6eSBkb2c=?=tThesquick brown foxs iso-8859-1sjumped over theslazy dogu,The quick brown fox jumped over the lazy dog(RN(squick brown foxs iso-8859-1(sjumped over theN(slazy dogs iso-8859-1(RARRGRt __unicode__(R/RCRqRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_whitespace_eater_unicode_2's    cCs/d}t|}|j||dfgdS(Ns3Sm=?ISO-8859-1?B?9g==?=rg=?ISO-8859-1?B?5Q==?=sbord(RRARG(R/RqR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2047_missing_whitespace0s cCs5d}t|}|j|dd d d d gdS( Ns7Sm =?ISO-8859-1?B?9g==?= rg =?ISO-8859-1?B?5Q==?= sbordtSmss iso-8859-1trgstsbord(RN(ss iso-8859-1(RN(ss iso-8859-1(RN(RRARG(R/RqR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2047_with_whitespace5s  (R<R=RRRRR(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRs    tTestMIMEMessagecBs}eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d ZRS( cCs1td}z|j|_Wd|jXdS(Ns msg_11.txt(R&Rnt_textR9(R/R5((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR@s cCs|jttddS(Nsa plain string(Rat TypeErrorR(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_type_errorGscCs|j}|j}d}t}||d Date: Sun, 23 Sep 2001 20:10:55 -0700 From: "Ian T. Henry" To: SoCal Raves Subject: [scr] yeah for Ians!! Your message cannot be delivered to the following recipients: Recipient address: jangel1@cougar.noc.ucla.edu Reason: recipient reached disk quota ismessage/delivery-statusisoriginal-envelope-ids"0GK500B4HD0888@cougar.noc.ucla.edutdnsRcs reporting-mtaRtnsdtactiontfailedsoriginal-recipientRsjangel1@cougar.noc.ucla.edusfinal-recipientsmessage/rfc822s message-ids(<002001c144a6$8752e060$56104586@oxy.edu>(srfc822R(sjangel1@cougar.noc.ucla.eduR( RAR|R;RIR7RORTRpR RJRGRR( R/RCR!R:RXtdsn1tdsn2RRc((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_dsnsD       c Cs|j}td}z|j}Wd|jXt}d|dR(RR(RARt parseaddrt formataddr(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_parseaddr_emptyscCs|jtjdddS(NsA Silly Personsperson@dom.ainsA Silly Person (sA Silly Personsperson@dom.ain(RARR(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_noquote_dumps cCsW|jtjddd}d}|jtjtj||f||fdS(NsA (Very) Silly Personsperson@dom.ains*"A \(Very\) Silly Person" sA \(Special\) Person(sA (Very) Silly Personsperson@dom.ain(RARRR(R/tatb((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_escape_dumps  cCsW|jtjddd}d}|jtjtj||f||fdS(NsArthur \Backslash\ Foobarsperson@dom.ains."Arthur \\Backslash\\ Foobar" (sArthur \Backslash\ Foobarsperson@dom.ain(RARRR(R/RR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_escape_backslashess  cCsyd}d}d\}}|jtj|||f|jtj|||f|jtj||f|dS(NsJohn X. Doe s"John X. Doe" s John X. Doesjxd@example.com(s John X. Doesjxd@example.com(RARRR(R/RtyRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_name_with_dots  cCs#d}|jtj|ddS(NsFoo Bar sFoo Barsfoo@example.com(sFoo Barsfoo@example.com(RARR(R/R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_multiline_from_commentscCs|jtjdddS(NsA Silly; Personsperson@dom.ains""A Silly; Person" (sA Silly; Personsperson@dom.ain(RARR(R/((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_quote_dumps cCs{|j}|tjdd|tjdd|tjdd|tjdd|tjdddS(Nthelloshello shello shello shello s hello (RARtfix_eols(R/RC((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_fix_eolss  cCs|j}|j}t}t}||d||d||d|d||d||d|||d||d||d|d||d||d|||||||dS(Nsus-asciisUS-ASCIIsUs-AsCiItusasciitUSASCIItUsAsCiI(RAtassertNotEqualR(R/RCtnetcset1tcset2((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_charset_richcomparisonss$                 cCs/|j}|tjddgddgdS( Nsaperson@dom.ain (Al Person)sBud Person s Al Personsaperson@dom.ains Bud Personsbperson@dom.ain(s Al Personsaperson@dom.ain(s Bud Personsbperson@dom.ain(RARt getaddresses(R/RC((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_getaddressess    cCsm|j}|tjdgdg|tjdgd d d g|tjddgd d gdS(Nsfoo: ;Rs []*-- =~$s*--s#"Jason R. Mastaler" sJason R. Mastalers jason@dom.ain(RR(RR(RR(Rs*--(RR(sJason R. Mastalers jason@dom.ain(RARR(R/RC((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_getaddresses_nastys     cCs4|j}tjdg}||ddddS(s(Test proper handling of a nested comments%User ((nested comment)) iis foo@bar.comN(RARR(R/RCtaddrs((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt"test_getaddresses_embedded_comments cCs?|j}t}|jdddd||jddS(Nscontent-dispositionRR$sfoo\wacky"name(RAR RRU(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_utils_quote_unquote s   cCs&td}|j|jddS(Ns not a charsetR(RRAtget_body_encoding(R/RE((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt)test_get_body_encoding_with_bogus_charset s cCst|j}t}d|d<||dd|j}|t|d||ddt|d}||jd|jdd |||jd ||jd td||d dt}d |d<|j}|t|d||ddt|d}||jt j |jdd |||jd||d ddS(Nstext/plain; charset=UTF-8s Content-Types content-typeiisutf-8Rs hello worldREsaGVsbG8gd29ybGQ= Rfscontent-transfer-encodingstext/plain; charset="US-ASCII"sus-asciiR( RAR RQRORRRNRTRgRR-(R/RCR:RRRE((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt-test_get_body_encoding_with_uppercase_charset s.       cCs8td}td}|j|j|jdS(Nsus-asciisUS-ASCII(RRAR(R/tlctuc((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_charsets_case_insensitive% s  cCsH|j}|jd}t}tj||||jddS(Ns msg_43.txtsBmultipart/report text/plain message/delivery-status text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/rfc822-headers (R6R;RRRfR.(R/RCR:R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt1test_partial_falls_inside_message_delivery_status* s    ( R<R=RRRRRRRRRRRRRRRRRRRRRR RRRRRRRR(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRs<                         t TestIteratorscBs#eZdZdZdZRS(cCs|j}|j}|jd}tj|}t|}|t|d|tj||j |jd}tj|}t|}|t|dt d}z |tj||j Wd|j XdS(Ns msg_01.txtis msg_02.txti+s msg_19.txt( RAR6R;Rtbody_line_iteratorRROt EMPTYSTRINGR RTR&RnR9(R/RCRwR:titRR5((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_body_line_iteratorX s      cCs|j}|jd}tj|d}g}d}x+|D]#}|d7}|j|jq=W||d|tj|ddS(Ns msg_04.txtRpiiis`a simple kind of mirror to reflect upon our own a simple kind of mirror to reflect upon our own (RAR;Rttyped_subpart_iteratorRRTRR (R/RCR:RRtsubpartsRX((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_typed_subpart_iteratorl s    cCs|j}|jd}tj|dd}g}d}x+|D]#}|d7}|j|jq@W||d|tj|ddS(Ns msg_03.txtRpRiis% Hi, Do you like this message? -Me (RAR;RR RRTRR (R/RCR:RRR!RX((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt(test_typed_subpart_iterator_default_type} s    (R<R=RR"R#(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRW s  t TestParserscBsbeZdZdZdZdZdZdZdZdZ dZ d Z RS( cCs|j}td}ztj|}Wd|jX||dd||dd||jd|j|j|jt |j t dS(Ns msg_02.txtRxsppp-request@zzz.orgRws ppp@zzz.orgsmultipart/mixed( RAR&RtparseR9RIRR7R|RpRTR((R/RCR5R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_header_parser s   cCsQ|j}tjd}||dd||dd||jddS(NsFrom: aperson@dom.ain To: bperson@dom.ain Subject: the next line has a space on it Date: Mon, 8 Apr 2002 15:09:19 -0400 Message-ID: spam Here's the message body Rs!the next line has a space on it s message-idtspamsHere's the message body (RAR7RRT(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_whitespace_continuation s   cCsQ|j}tjd}||dd||dd||jddS(NsFrom: aperson@dom.ain To: bperson@dom.ain Date: Mon, 8 Apr 2002 15:09:19 -0400 Message-ID: spam Subject: the next line has a space on it Here's the message body Rs!the next line has a space on it s message-idR'sHere's the message body (RAR7RRT(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt(test_whitespace_continuation_last_header s   cCs|j}tddd}ztj|}Wd|jX|t|jd|jd}||jd||jd|jd}||jd dS( Ns msg_26.txtR%Riis text/plains!Simple email with attachment. isapplication/riscos(RAR&RR%R9RORTRI(R/RCR5R:tpart1tpart2((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_crlf_separation s  c Cs|j}|j}td}ztj|}Wd|jX||jd|t|jd|jd}||j d||jd|t|jd|jd}||jd||j d||jd|jd}||j d||jd|t|jd|jd}||jd||j d||jddS( Ns msg_28.txtiiismessage/rfc822s text/plains message 1 s message 2 ( RAR6R&R7R8R9R7RORTRI( R/RCRwR5R:R*tpart1aR+tpart2a((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt-test_multipart_digest_with_extra_mime_headers s0    cCs?dddg}tjtj|}|j|dddS(Ns$From: Andrew Person From: foo From: bar !"#QUX;~: zoo bodyis!"#QUX;~s>FromRutbody(RAR7RRORRRT(R/RCR R:R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2822_header_syntax s   cCs;|j}d}tj|}|t|jddS(Ns<>From foo@example.com 11:25:53 From: bar !"#QUX;~: zoo bodyi(RAR7RROR(R/RCR R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt(test_rfc2822_space_not_allowed_in_header s cCsa|j}d}tj|}|j}|j||dddg||jddS(Ns7A: first header B: second header CC: third header bodytAtBtCCR6(RAR7RRRRT(R/RCR R:theaders((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt!test_rfc2822_one_character_header s   ( R<R=R&R(R)R,R/R1R5R7R8R=(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR$ s     "  t TestBase64cBs,eZdZdZdZdZRS(cCs|j}|tjdttjdddxtdD]}|dkr\d}nZ|dkrqd}nE|dkrd }n0|d krd }n|d krd }nd }|tjd||qAWdS(NRteolRiiiiiii i iiR(RARt base64_lenRORR(R/RCtsizetbsize((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_len$ s       cCsk|j}|tjdd|tjdd|tjddd|tjddddS(NRsaGVsbG8=RtXsaGVsbG8NCndvcmxk t helloXworld(RARRf(R/RC((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_decode1 s  cCs|j}|tjdd|tjdd|tjdd|tjddd|tjdd d d d |tjdd d d d dddS(NRRs aGVsbG8= shello s aGVsbG8K is aGVsbG8NCg== sxxxx iRi(seHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IA== R?s seHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IA== (RARR(R/RC((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_encode8 s cCs|j}tj}||dd||dd||dddd||ddtd ||d d d d d||d d d d ddddS(NRs=?iso-8859-1?b?aGVsbG8=?=s hello worlds!=?iso-8859-1?b?aGVsbG8NCndvcmxk?=REs iso-8859-2s=?iso-8859-2?b?aGVsbG8=?=t keep_eolss!=?iso-8859-1?b?aGVsbG8Kd29ybGQ=?=sxxxx iRi(s=?iso-8859-1?b?eHh4eCB4eHh4IHh4eHggeHg=?= =?iso-8859-1?b?eHggeHh4eCB4eHh4IHh4eHg=?= =?iso-8859-1?b?IHh4eHggeHh4eCB4eHh4IHg=?= =?iso-8859-1?b?eHh4IHh4eHggeHh4eCB4eHg=?= =?iso-8859-1?b?eCB4eHh4IHh4eHggeHh4eCA=?= =?iso-8859-1?b?eHh4eCB4eHh4IHh4eHgg?=R?s s=?iso-8859-1?b?eHh4eCB4eHh4IHh4eHggeHg=?= =?iso-8859-1?b?eHggeHh4eCB4eHh4IHh4eHg=?= =?iso-8859-1?b?IHh4eHggeHh4eCB4eHh4IHg=?= =?iso-8859-1?b?eHh4IHh4eHggeHh4eCB4eHg=?= =?iso-8859-1?b?eCB4eHh4IHh4eHggeHh4eCA=?= =?iso-8859-1?b?eHh4eCB4eHh4IHh4eHgg?=(RARt header_encodeRg(R/RCthe((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_header_encodeN s  (R<R=RCRFRGRK(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR># s  t TestQuopricBsYeZdZdZdZdZdZdZdZdZ dZ RS( cCsgttdtddD]}t|^q gttdtddD]}t|^qUgttdtddD]}t|^qdd d d d d g|_gtdD]'}t||jkrt|^q|_t|jt|jdks"tgttd tddD]}t|^qBdg|_|jjdgtdD]'}t||jkrt|^q|_ t|jt|j dkstdS(NRtziR9tZt0t9t!t*R>R=t/Rit~s t=( RtordtchrthlitthnonROtAssertionErrortblittremovetbnon(R/R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRl s=(B=cCsXx'|jD]}|jtj|q Wx'|jD]}|jtj|q4WdS(N(RXRRtheader_quopri_checkRYR|(R/tc((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_header_quopri_checkx scCsXx'|jD]}|jtj|q Wx'|jD]}|jtj|q4WdS(N(R[RRtbody_quopri_checkR]R|(R/R_((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_body_quopri_check~ sc Cs|j}tj}tj}x=d D]5}|||t||dddddq"Wx$|jD]}|||dqeWx$|jD]}|||dqWdS( NRs h@e@l@l@o@RERR?iii(shellos h@e@l@l@o@(RARtheader_quopri_lenRIRORXRY(R/RCthqltencRqR_((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_header_quopri_len s    3cCsd|j}tj}x$|jD]}|||dqWx$|jD]}|||dqCWdS(Nii(RARtbody_quopri_lenR[R](R/RCtbqlR_((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_body_quopri_len s   cCsIxBtdD]4}t|}|jtjtj||q WdS(Ni(RRWRARRtquote(R/RR_((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_quote_unquote_idempotent s cCs|j}tj}||dd||dd||dddd||ddtd ||d d ||d d ddd||d d ddddddS(NRs=?iso-8859-1?q?hello?=s hello worlds!=?iso-8859-1?q?hello=0D=0Aworld?=REs iso-8859-2s=?iso-8859-2?q?hello?=RHs=?iso-8859-1?q?hello=0Aworld?=s hellotheres=?iso-8859-1?q?hello=C7there?=sxxxx iRi(s=?iso-8859-1?q?xxxx_xxxx_xxxx_xxxx_xx?= =?iso-8859-1?q?xx_xxxx_xxxx_xxxx_xxxx?= =?iso-8859-1?q?_xxxx_xxxx_xxxx_xxxx_x?= =?iso-8859-1?q?xxx_xxxx_xxxx_xxxx_xxx?= =?iso-8859-1?q?x_xxxx_xxxx_?=R?s s=?iso-8859-1?q?xxxx_xxxx_xxxx_xxxx_xx?= =?iso-8859-1?q?xx_xxxx_xxxx_xxxx_xxxx?= =?iso-8859-1?q?_xxxx_xxxx_xxxx_xxxx_x?= =?iso-8859-1?q?xxx_xxxx_xxxx_xxxx_xxx?= =?iso-8859-1?q?x_xxxx_xxxx_?=(RARRIRg(R/RCRJ((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRK s  cCsk|j}|tjdd|tjdd|tjddd|tjddddS(NRRRDs hello worldRE(RARRf(R/RC((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRF s  cCs|j}|tjdd|tjdd|tjdd|tjddd|tjdddd d |tjdddd d d d |tjdddS(NRRs hello worlds hello worldisxxxx iRi(sjxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx= xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx= x xxxx xxxx xxxx xxxx=20R?s slxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx= xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx= x xxxx xxxx xxxx xxxx=20sone line two line(RARR(R/RC((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRG s  ( R<R=RR`RbRfRiRkRKRFRG(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRLk s      t TestCharsetcBs,eZdZdZdZdZRS(cCs6ddlm}y|jd=Wntk r1nXdS(Ni(REtfake(R7REtCHARSETSR(R/t CharsetModule((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttearDown s  cCso|j}td}d}|j|}|||j|d}|j|}|||j|dS(Nsus-asciis Hello World!s (RARt to_splittabletfrom_splittable(R/RCR_Rqtsp((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_idempotent s  cCs|j}td}|d|jdtd}|d|jdtd}|d|jdtd}y3|d |jd |d |jd tWntk rnXd d lm}|jd |jdtd }|d|jddS(Ns iso-8859-1s hello w=F6rlds hello wrldsutf-8saGVsbG8gd29ybGQ= s hello worldsus-asciiseuc-jps$B5FCO;~IW(Bsϻi(RERm( RARt body_encodeRt LookupErrorR7REt add_charsettQPRG(R/RCR_Ro((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_body_encode s&       cCs<td}|jt|d|jtjtddS(Nuus-asciisus-asciisascii(RRAR(RaRt CharsetError(R/RE((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_unicode_charset_name s (R<R=RpRtRyR{(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyRl s  t TestHeadercBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZRS(cCsL|j}td}||jd|jd||jddS(Ns Hello World!s Goodbye World!sHello World! Goodbye World!(R6RRR(R/RCR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_simple s    cCsL|j}td}||jd|jd||jddS(Ns Hello World!sGoodbye World!sHello World! Goodbye World!(R6RRR(R/RCR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_simple_surprise s    cCs)d}|jt||dfgdS(Nsno decoding needed(RARRG(R/R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_header_needs_no_decoding# scCsUtddd}x<|jddjdD]}|jt|dkq.WdS(NsI am the very model of a modern Major-General; I've information vegetable, animal, and mineral; I know the kings of England, and I quote the fights historical from Marathon to Waterloo, in order categorical; I'm very well acquainted, too, with matters mathematical; I understand equations, both the simple and quadratical; about binomial theorem I'm teeming with a lot o' news, with many cheerful facts about the square of the hypotenuse.RiLt splitcharsRs (RRRR|RO(R/Rtl((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_long' s  "c Cs|j}td}td}td}d}d}djd}t||}|j|||j|||j} || d|t| |df|df|dfgt|} || jddtt| } || | dS( Ns iso-8859-1s iso-8859-2sutf-8sDie Mieter treten hier ein werden mit einem Foerderband komfortabel den Korridor entlang, an sdlndischen Wandgemlden vorbei, gegen die rotierenden Klingen befrdert. s;Finanni metropole se hroutily pod tlakem jejich dvtipu.. u正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput.」と言っています。s=?iso-8859-1?q?Die_Mieter_treten_hier_ein_werden_mit_einem_Foerderband_ko?= =?iso-8859-1?q?mfortabel_den_Korridor_entlang=2C_an_s=FCdl=FCndischen_Wan?= =?iso-8859-1?q?dgem=E4lden_vorbei=2C_gegen_die_rotierenden_Klingen_bef=F6?= =?iso-8859-1?q?rdert=2E_?= =?iso-8859-2?q?Finan=E8ni_metropole_se_hroutily?= =?iso-8859-2?q?_pod_tlakem_jejich_d=F9vtipu=2E=2E_?= =?utf-8?b?5q2j56K6?= =?utf-8?b?44Gr6KiA44GG44Go57+76Kiz44Gv44GV44KM44Gm44GE44G+44Gb44KT44CC?= =?utf-8?b?5LiA6YOo44Gv44OJ44Kk44OE6Kqe44Gn44GZ44GM44CB44GC44Go44Gv44Gn?= =?utf-8?b?44Gf44KJ44KB44Gn44GZ44CC5a6f6Zqb44Gr44Gv44CMV2VubiBpc3QgZGFz?= =?utf-8?q?_Nunstuck_git_und_Slotermeyer=3F_Ja!_Beiherhund_das_Oder_die_Fl?= =?utf-8?b?aXBwZXJ3YWxkdCBnZXJzcHV0LuOAjeOBqOiogOOBo+OBpuOBhOOBvuOBmQ==?= =?utf-8?b?44CC?=sDie Mieter treten hier ein werden mit einem Foerderband komfortabel den Korridor entlang, an südlündischen Wandgemälden vorbei, gegen die rotierenden Klingen befördert. Finančni metropole se hroutily pod tlakem jejich důvtipu.. 正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput.」と言っています。(R6RRRRRRR( R/RCRrRRRRRRRetustrtnewh((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_multilingual- s*        cCsF|j}t}||d|jdtd||ddS(NRRks iso-8859-1s=?iso-8859-1?q?foo?=(R6RRR(R/RCR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_header_ctor_default_args^ s    cCs|j}d}t|}||jdt|dd}||jdt|dddd}||j|dS(Ns|A very long line that must get split to something other than at the 76th character boundary to test the non-default behaviors}A very long line that must get split to something other than at the 76th character boundary to test the non-default behaviorRRs}A very long line that must get split to something other than at the 76th character boundary to test the non-default behaviorRi(R6RR(R/RCRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_explicit_maxlinelene s    cCsN|j}d}t|}||dgt|}|||jdS(NR(shelloN(RARRGRR(R/RCRqRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_us_ascii_headers s    cCs3|j}t}|jdd||ddS(NRs iso-8859-1s=?iso-8859-1?q?hello?=(RARR(R/RCR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_string_charset{ s  cCsQ|j}tdd}||jdtdd}||jddS(Nupöstalsutf-8s=?utf-8?q?p=C3=B6stal?=u 菊地時夫s=?utf-8?b?6I+K5Zyw5pmC5aSr?=(RARR(R/RCR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_utf8_shortest s  cCs|j}|j}d}|tt|t}|t|j||tt|dd||j|dd|t||dS(Ns0Ynwp4dUEbay Auction Semiar- No Charge Earn BigRR~(RaRAt UnicodeErrorRRR((R/RQRCRR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_bad_8bit_header s   cCsq|j}t}|jdd|jd|j}||dtt|}||j|dS(NRs iso-8859-1tworlds=?iso-8859-1?q?hello?= world(RARRRRR(R/RCRRq((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_encoded_adjacent_nonencoded s     cCsT|j}d}t|}||ddd gt|}||jddS( NsGSubject: =?koi8-r?b?8NLP18XSy8EgzsEgxsnOwczYztk=?= =?koi8-r?q?=CA?= zz.sSubject:s skoi8-rszz.s6Subject: =?koi8-r?b?8NLP18XSy8EgzsEgxsnOwczYztnK?= zz.(sSubject:N(s skoi8-r(szz.N(RARRGRR(R/RCRqtpartsthdr((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_whitespace_eater s    cCs&|j}d}|tjt|dS(NsXSubject: =?EUC-KR?B?CSixpLDtKSC/7Liuvsax4iC6uLmwMcijIKHaILzSwd/H0SC8+LCjwLsgv7W/+Mj3I ?=(RaRRbR(R/RQRq((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_broken_base64_header s (R<R=R}R~RRRRRRRRRRRR(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR| s     1      t TestRFC2231cBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZRS(cCsN|j}|jd}||jdd||jddtd dS( Ns msg_29.txtttitlesus-asciitens%This is even more ***fun*** isn't it!Rs'"This is even more ***fun*** isn't it!"(sus-asciiRs%This is even more ***fun*** isn't it!(sus-asciiRs'"This is even more ***fun*** isn't it!"(RAR;RJR(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR s  cCs|j}t}|jdddd||jdd |jdddddd||jdd |jd}|jdddddd|j|jd dS( NRs%This is even more ***fun*** isn't it!REsus-asciiRtlanguageRs msg_01.txts$Return-Path: Delivered-To: bbb@zzz.org Received: by mail.zzz.org (Postfix, from userid 889) id 27CEAD38CC; Fri, 4 May 2001 14:05:44 -0400 (EDT) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Message-ID: <15090.61304.110929.45684@aaa.zzz.org> From: bbb@ddd.com (John X. Doe) To: bbb@zzz.org Subject: This is a test message Date: Fri, 4 May 2001 14:05:44 -0400 Content-Type: text/plain; charset=us-ascii; title*="us-ascii'en'This%20is%20even%20more%20%2A%2A%2Afun%2A%2A%2A%20isn%27t%20it%21" Hi, Do you like this message? -Me (sus-asciiRs%This is even more ***fun*** isn't it!(sus-asciisens%This is even more ***fun*** isn't it!(RAR RRJR;R6R(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR s    cCsz|j}|jd}|jdddddd|jdd dddd|jdd d ||jd dS( Ns msg_01.txtRkRREsus-asciiRRRs%This is even more ***fun*** isn't it!Rcs Content-Types&Return-Path: Delivered-To: bbb@zzz.org Received: by mail.zzz.org (Postfix, from userid 889) id 27CEAD38CC; Fri, 4 May 2001 14:05:44 -0400 (EDT) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Message-ID: <15090.61304.110929.45684@aaa.zzz.org> From: bbb@ddd.com (John X. Doe) To: bbb@zzz.org Subject: This is a test message Date: Fri, 4 May 2001 14:05:44 -0400 Content-Type: text/plain; charset="us-ascii"; title*="us-ascii'en'This%20is%20even%20more%20%2A%2A%2Afun%2A%2A%2A%20isn%27t%20it%21" Hi, Do you like this message? -Me (R6R;RRR(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR s   cCs/|j}|jd}||jddS(Ns msg_32.txtsus-ascii(RAR;tget_content_charset(R/RCR:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_rfc2231_get_content_charset s cCsNd}tj|}|jd}|jt|t|j|ddS(NsContent-Transfer-Encoding: 8bit Content-Disposition: inline; filename="file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEMP_nsmail.htm" Content-Type: text/html; NAME*0=file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEM; NAME*1=P_nsmail.htm tNAMEsMfile____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEMP_nsmail.htm(R7RRJRRpttupleRA(R/R R:tparam((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt#test_rfc2231_no_language_or_charset scCs/d}tj|}|j|jddS(NsContent-Disposition: inline; filename*0*="''This%20is%20even%20more%20"; filename*1*="%2A%2A%2Afun%2A%2A%2A%20"; filename*2="is it not.pdf" s)This is even more ***fun*** is it not.pdf(R7RRARU(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt/test_rfc2231_no_language_or_charset_in_filename scCs/d}tj|}|j|jddS(NsContent-Disposition: inline; filename*0*="''This%20is%20even%20more%20"; filename*1*="%2A%2A%2Afun%2A%2A%2A%20"; filename*2="is it not.pdf" s)This is even more ***fun*** is it not.pdf(R7RRARU(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt7test_rfc2231_no_language_or_charset_in_filename_encoded" scCs/d}tj|}|j|jddS(NsContent-Disposition: inline; filename*0="''This%20is%20even%20more%20"; filename*1*="%2A%2A%2Afun%2A%2A%2A%20"; filename*2="is it not.pdf" s1This%20is%20even%20more%20***fun*** is it not.pdf(R7RRARU(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2231_partly_encoded. s  cCs/d}tj|}|j|jddS(NsContent-Disposition: inline; filename*0="This%20is%20even%20more%20"; filename*1="%2A%2A%2Afun%2A%2A%2A%20"; filename*2="is it not.pdf" s?This%20is%20even%20more%20%2A%2A%2Afun%2A%2A%2A%20is it not.pdf(R7RRARU(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2231_partly_nonencoded; s  cCs/d}tj|}|j|jddS(NsContent-Type: multipart/alternative; boundary*0*="''This%20is%20even%20more%20"; boundary*1*="%2A%2A%2Afun%2A%2A%2A%20"; boundary*2="is it not.pdf" s)This is even more ***fun*** is it not.pdf(R7RRAR\(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt/test_rfc2231_no_language_or_charset_in_boundaryH scCs/d}tj|}|j|jddS(NsContent-Type: text/plain; charset*0*="This%20is%20even%20more%20"; charset*1*="%2A%2A%2Afun%2A%2A%2A%20"; charset*2="is it not.pdf" s)this is even more ***fun*** is it not.pdf(R7RRAR(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt.test_rfc2231_no_language_or_charset_in_charsetT scCs/d}tj|}|j|jddS(NsContent-Disposition: inline; filename*0*="bogus'xx'This%20is%20even%20more%20"; filename*1*="%2A%2A%2Afun%2A%2A%2A%20"; filename*2="is it not.pdf" s)This is even more ***fun*** is it not.pdf(R7RRARU(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt%test_rfc2231_bad_encoding_in_filenamea scCs/d}tj|}|j|jddS(Ns:Content-Type: text/plain; charset*=bogus''utf-8%E2%80%9D (R7RRARRG(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt$test_rfc2231_bad_encoding_in_charsetm scCs/d}tj|}|j|jddS(Ns:Content-Type: text/plain; charset*=ascii''utf-8%E2%80%9D (R7RRARRG(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt%test_rfc2231_bad_character_in_charsetw scCs/d}tj|}|j|jddS(NsContent-Disposition: inline; filename*0*="ascii'xx'This%20is%20even%20more%20"; filename*1*="%2A%2A%2Afun%2A%2A%2A%20"; filename*2*="is it not.pdf%E2" u,This is even more ***fun*** is it not.pdf�(R7RRARU(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt&test_rfc2231_bad_character_in_filename scCs/d}tj|}|j|jddS(Ns^Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename*=X-UNKNOWN''myfile.txt s myfile.txt(R7RRARU(R/R R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2231_unknown_encoding scCsa|j}d}tj|}|jd\}}}||d||d||ddS(NsJContent-Type: application/x-foo; name*0*="Frank's"; name*1*=" Document" RsFrank's Document(RAR7RRJRG(R/RCR R:RERRq((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt-test_rfc2231_single_tick_in_filename_extended s   cCsNd}tj|}|jd}|jt|t|j|ddS(NsGContent-Type: application/x-foo; name*0="Frank's"; name*1=" Document" RsFrank's Document(R7RRJRRpRRA(R/R R:R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt$test_rfc2231_single_tick_in_filename s cCsa|j}d}tj|}|jd\}}}||d||d||ddS(NsYContent-Type: application/x-foo; name*0*="us-ascii'en-us'Frank's"; name*1*=" Document" Rsus-asciisen-ussFrank's Document(RAR7RRJ(R/RCR R:RERRq((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt!test_rfc2231_tick_attack_extended s   cCsNd}tj|}|jd}|jt|t|j|ddS(NsWContent-Type: application/x-foo; name*0="us-ascii'en-us'Frank's"; name*1=" Document" Rsus-ascii'en-us'Frank's Document(R7RRJRRpRRA(R/R R:R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2231_tick_attack s cCs8|j}d}tj|}||jdddS(Ns:Content-Type: application/x-foo; name="Frank's Document" RsFrank's Document(RAR7RRJ(R/RCR R:((s3/sys/lib/python2.7/email/test/test_email_renamed.pyttest_rfc2231_no_extended_values s cCsa|j}d}tj|}|jd\}}}||d||d||ddS(NsiContent-Type: application/x-foo; name*0*="us-ascii'en-us'My"; name*1=" Document"; name*2*=" For You" Rsus-asciisen-ussMy Document For You(RAR7RRJ(R/RCR R:RERRq((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt,test_rfc2231_encoded_then_unencoded_segments s   cCsa|j}d}tj|}|jd\}}}||d||d||ddS(NsiContent-Type: application/x-foo; name*0="us-ascii'en-us'My"; name*1*=" Document"; name*2*=" For You" Rsus-asciisen-ussMy Document For You(RAR7RRJ(R/RCR R:RERRq((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt,test_rfc2231_unencoded_then_encoded_segments s   (R<R=RRRRRRRRRRRRRRRRRRRRRRR(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR s.  %    cCsBtjt}gt|D]$}|jdrt||^qS(NR(tsystmodulesR<tdirRtgetattr(tmodR((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt _testclasses s cCs:tj}x'tD]}|jtj|qW|S(N(tunittestt TestSuiteRtaddTestt makeSuite(tsuitet testclass((s3/sys/lib/python2.7/email/test/test_email_renamed.pyR s cCs"xtD]}t|q WdS(N(RR(R((s3/sys/lib/python2.7/email/test/test_email_renamed.pyt test_main st__main__t defaultTestR(RRRRARR)Rtwarningst cStringIORR7t email.charsetRt email.headerRRRt email.parserRRtemail.generatorRRt email.messageR temail.mime.applicationR temail.mime.audioR temail.mime.textR temail.mime.imageR temail.mime.baseRtemail.mime.messageRtemail.mime.multipartRRRRRRRttest.test_supportRRt email.testRR"R,RRR&tTestCaseR'R>RRRRR$R(R4R:RlRRRRRR$R>RLRlR|RRRRR<tmain(((s3/sys/lib/python2.7/email/test/test_email_renamed.pyts         B"1+1|r/;F;Ho:8