rQc@s(ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl Z ddl m Z ddl mZmZmZddlmZmZddlmZmZddlmZddlmZdd lmZdd lmZdd lm Z dd 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,m-Z-ddl.m/Z0dZ1dZ2dZ3ddZ4dej5fdYZ6de6fdYZ7dej5fd YZ8d!e6fd"YZ9d#ej5fd$YZ:d%ej5fd&YZ;d'ej5fd(YZ<d)ej5fd*YZ=d+e6fd,YZ>d-e6fd.YZ?d/ej5fd0YZ@d1e6fd2YZAd3e6fd4YZBd5e6fd6YZCd7e6fd8YZDd9e6fd:YZEd;ej5fd<YZFd=ej5fd>YZGd?ej5fd@YZHdAe6fdBYZIdCe6fdDYZJdEe6fdFYZKdGZLdHZMdIZNeOdJkr$ejPdKdLndS(MiN(tStringIO(tCharset(tHeadert decode_headert make_header(tParsert HeaderParser(t GeneratortDecodedGenerator(tMessage(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((s+/sys/lib/python2.7/email/test/test_email.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 splitlinesRtNLRtfailureExceptiontgetvalue(tselftfirsttsecondtsfirsttssecondtdifftfp((s+/sys/lib/python2.7/email/test/test_email.pytndiffAssertEqual5s    cCs7tt|}ztj|}Wd|jX|S(N(R%Rtemailtmessage_from_filetclose(R.R#R4tmsg((s+/sys/lib/python2.7/email/test/test_email.pyt_msgobj?s  (t__name__t __module__R5R:(((s+/sys/lib/python2.7/email/test/test_email.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/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;RS(:cCsT|j}|jd}||jddddg||jddddS(Ns msg_20.txttccs ccc@zzz.orgs ddd@zzz.orgs eee@zzz.orgtxxsn/a(t assertEqualR:tget_all(R.teqR9((s+/sys/lib/python2.7/email/test/test_email.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 R@RI(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_param_liberalMs  cCs|j}tjd}||jdddd||jdddd||jddtjd}||jdddd ||jdddd ||jd ddddS( Ns&X-Header: foo=one; bar=two; baz=three RRbsx-headerRtquuzs"X-Header: foo; bar="one"; baz=two RuRRR(R@R6RRIRF(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_paramRs   cCs5|jd}|j|jdjdddS(Ns msg_22.txtitnames wibble.JPG(R:R@RSRI(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt'test_get_param_funky_continuation_linescscCsKtjd}|j|jdd|j|jddtddS(Ns4Content-Type: image/pjpeg; name="Jim&&Jill" RsJim&&Jilltunquotes"Jim&&Jill"(R6RR@RIRk(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt#test_get_param_with_semis_in_quotesgs  cCsTtjd}|j|jddtjd}|j|jdddS(Ns5Content-Type: foo; bar*0="baz\"foobar"; bar*1="\"baz"Rsbaz"foobar"baz(R6RR@RI(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_param_with_quotesns   cCsktjd}|j|jd|j|jd|j|jd|j|jddS(NsHeader: existsRbRtHEADERtheaderi(R6RRthas_keyt assertFalse(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt test_has_keyvs cCs|j}t}|jdd||jdd|jdd||jdd||jddtd||jd ddg||jdtdddg|jdd d d ||jdd d d dS(NRDs iso-2022-jpt importances high valueRs "high value"s text/plainRs "iso-2022-jp"s iso-9999-xxRbsX-Jimmy(s text/plainR(scharsets iso-2022-jp(Rs high value(s text/plainR(scharsets "iso-2022-jp"(Rs "high value"(R@R t set_paramRIRkR(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_set_param}s    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(R@R:RRIt del_paramR(R.RBR9told_val((s+/sys/lib/python2.7/email/test/test_email.pyttest_del_params       cCsGt}|jdddd|jdd|j|dddS(NsContent-Dispositiont attachmentR#sbud.gifscontent-disposition(R t add_headerRR@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_del_param_on_other_headers cCs|j}t}|jt|jd|jd||dd|jdd||dd|jd||dddS( NR}s text/plains content-typeRDsus-asciistext/plain; charset="us-ascii"s text/htmlstext/html; charset="us-ascii"(R@R R`t ValueErrortset_typeR(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt test_set_types    cCs;t}d|d<|jdd|j|dddS(Ns text/plainsX-Content-Typesapplication/octet-streamsx-content-type(R RR@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_set_type_on_other_headers  cCs#t}|j|jddS(Ns text/plain(R R@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_content_type_missings cCs0t}|jd|j|jddS(Nsmessage/rfc822(R tset_default_typeR@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_get_content_type_missing_with_default_types  cCs2|jd}|j|jdjddS(Ns msg_30.txtismessage/rfc822(R:R@RSRH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt+test_get_content_type_from_message_implicitscCs2|jd}|j|jdjddS(Ns msg_28.txtismessage/rfc822(R:R@RSRH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt+test_get_content_type_from_message_explicitscCs)|jd}|j|jddS(Ns msg_03.txts text/plain(R:R@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt6test_get_content_type_from_message_text_plain_implicitscCs)|jd}|j|jddS(Ns msg_01.txts text/plain(R:R@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt6test_get_content_type_from_message_text_plain_explicitscCs#t}|j|jddS(NR}(R R@tget_content_maintype(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt!test_get_content_maintype_missings cCs0t}|jd|j|jddS(Nsmessage/rfc822tmessage(R RR@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt3test_get_content_maintype_missing_with_default_types  cCs2|jd}|j|jdjddS(Ns msg_30.txtiR(R:R@RSR(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_get_content_maintype_from_message_implicitscCs2|jd}|j|jdjddS(Ns msg_28.txtiR(R:R@RSR(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_get_content_maintype_from_message_explicitscCs)|jd}|j|jddS(Ns msg_03.txtR}(R:R@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt:test_get_content_maintype_from_message_text_plain_implicitscCs)|jd}|j|jddS(Ns msg_01.txtR}(R:R@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt:test_get_content_maintype_from_message_text_plain_explicitscCs#t}|j|jddS(Ntplain(R R@tget_content_subtype(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt test_get_content_subtype_missings cCs0t}|jd|j|jddS(Nsmessage/rfc822trfc822(R RR@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt2test_get_content_subtype_missing_with_default_types  cCs2|jd}|j|jdjddS(Ns msg_30.txtiR(R:R@RSR(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt.test_get_content_subtype_from_message_implicitscCs2|jd}|j|jdjddS(Ns msg_28.txtiR(R:R@RSR(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt.test_get_content_subtype_from_message_explicitscCs)|jd}|j|jddS(Ns msg_03.txtR(R:R@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt9test_get_content_subtype_from_message_text_plain_implicitscCs)|jd}|j|jddS(Ns msg_01.txtR(R:R@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt9test_get_content_subtype_from_message_text_plain_explicitscCs-t}d|d<|j|jddS(Nsno-slash-in-this-strings Content-TypeR}(R R@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_content_maintype_errors  cCs-t}d|d<|j|jddS(Nsno-slash-in-this-strings Content-TypeR(R R@R(R.R9((s+/sys/lib/python2.7/email/test/test_email.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(R@R Rtkeystvaluestreplace_headerR`tKeyError(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_replace_header s  cCsPd}t}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( R5R tSPACERtrangeRMRRRjR-(R.RBR9tiR{R((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_semis_header_splitters   0     cCs@|j}ddd}t|dd}||jddS(Ns References: RiPRs s\References: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(R5RR(R.RBRR((s+/sys/lib/python2.7/email/test/test_email.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)(R5RR(R.RBRR((s+/sys/lib/python2.7/email/test/test_email.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(R5RR(R.RBRR((s+/sys/lib/python2.7/email/test/test_email.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?= (R5R RRRe(R.RBR9R((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_8bit_header s       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 (R5R Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.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" RisTo: "Someone Test #A" , , "Someone Test #B" , "Someone Test #C" , "Someone Test #D" (R5R Re(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_to_header#s    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.(R5RRR(R.RBR~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_line_after_append0s     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?)(R5RRR(R.RBR~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_shorter_line_with_append9s     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_?=(R5RR(R.RBtfntgsR((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_field_nameAs   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 RR@Re(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_received_headerMs   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")RR Rs sReceived: <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 RR5Re(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_string_headerinst_eq\s   cCsO|j}t}d}||d, tListRsQList: List-Unsubscribe: , List: List-Unsubscribe: , (R5R RRe(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.pyt%test_long_lines_with_different_headers    (R;R<RRRRRRR R R RRRRRRRRRRRR(((s+/sys/lib/python2.7/email/test/test_email.pyRXs*   +          tTestFromManglingcBs,eZdZdZdZdZRS(cCs-t|_d|jd<|jjddS(Ns aaa@bbb.orgRs(From the desk of A.A.A.: Blah blah blah (R R9RM(R.((s+/sys/lib/python2.7/email/test/test_email.pytsetUps   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 (RRRiRjR9R@R-(R.R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_mangled_froms  cCsEt}t|dt}|j|j|j|jddS(NR!s;From: aaa@bbb.org From the desk of A.A.A.: Blah blah blah (RRRkRjR9R@R-(R.R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_dont_mangle_froms  cCst}t|dt}tjtjd}|j||jt g|j j dD]}|j dr_d^q_ddS(NR!s) From: foo@bar.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=XXX From somewhere unknown --XXX Content-Type: text/plain foo --XXX-- From somewhere unknowable s s>From ii( RRRiR6RttextwraptdedentRjR@tlenR-RR(R.R~RR9R((s+/sys/lib/python2.7/email/test/test_email.pyt'test_mangle_from_in_preamble_and_epilogs    %(R;R<R R"R#R'(((s+/sys/lib/python2.7/email/test/test_email.pyRs  t TestMIMEAudiocBs5eZdZdZdZdZdZRS(cCsstjjtjjtdd}ttd|d}z|j|_Wd|j Xt |j|_ dS(NRRs audiotest.autrb( RRRR R!R"RRgt _audiodataR8R t_au(R.tdatadirR4((s+/sys/lib/python2.7/email/test/test_email.pyR s $ cCs|j|jjddS(Ns audio/basic(R@R+RH(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_guess_minor_typescCs/|jj}|jtj||jdS(N(R+RSR@Rt decodestringR*(R.tpayload((s+/sys/lib/python2.7/email/test/test_email.pyt test_encodingscCs,t|jd}|j|jddS(Ntfishs audio/fish(R R*R@RH(R.tau((s+/sys/lib/python2.7/email/test/test_email.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"RbRRutfailobjtfoobar(s attachmentR(R#s audiotest.au(R@RR+RRRI(R.RBtunlesstmissing((s+/sys/lib/python2.7/email/test/test_email.pyttest_add_headers"    (R;R<R R-R0R3R8(((s+/sys/lib/python2.7/email/test/test_email.pyR(s     t TestMIMEImagecBs5eZdZdZdZdZdZRS(cCsCtd}z|j|_Wd|jXt|j|_dS(NsPyBanner048.gif(R%Rgt_imgdataR8R t_im(R.R4((s+/sys/lib/python2.7/email/test/test_email.pyR s   cCs|j|jjddS(Ns image/gif(R@R;RH(R.((s+/sys/lib/python2.7/email/test/test_email.pyR- scCs/|jj}|jtj||jdS(N(R;RSR@RR.R:(R.R/((s+/sys/lib/python2.7/email/test/test_email.pyR0scCs,t|jd}|j|jddS(NR1s image/fish(R R:R@RH(R.tim((s+/sys/lib/python2.7/email/test/test_email.pyR3scCs|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"RbRRuR4R5(s attachmentR(R#sdingusfish.gif(R@RR;RRRI(R.RBR6R7((s+/sys/lib/python2.7/email/test/test_email.pyR8s"    (R;R<R R-R0R3R8(((s+/sys/lib/python2.7/email/test/test_email.pyR9s     t TestMIMETextcBsPeZdZdZdZdZdZdZdZdZ RS(cCstd|_dS(Ns hello there(R t_msg(R.((s+/sys/lib/python2.7/email/test/test_email.pyR .scCs|j}|j}||jjd||jjddg}||jjd||k||jjd|dd|kdS(Ns text/plainRDsus-asciiR5Rb(R@RR>RHRI(R.RBR6R7((s+/sys/lib/python2.7/email/test/test_email.pyt test_types1s  cCs4|j|jjd|j|jj dS(Ns hello there(R@R>RSRt is_multipart(R.((s+/sys/lib/python2.7/email/test/test_email.pyt test_payload;scCsF|j}tddd}||jjd||dddS(Ns hello thereRsus-asciis content-typestext/plain; charset="us-ascii"(R@R RERJ(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt test_charset?s cCsF|j}tddd}||jjd||dddS(Nu hello thereRsus-asciis content-typestext/plain; charset="us-ascii"(R@R RERJ(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_7bit_unicode_inputEs cCsV|j}td}||jd||dd|jd|jkdS(Nu hello theresus-asciis content-typestext/plain; charset="us-ascii"s hello there(R@R RERRe(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt"test_7bit_unicode_input_no_charsetKs   cCsnd}|j}t|dd}||jjd||dd||jdt|jddS(NuкирилицаRsutf-8s content-typestext/plain; charset="utf-8"Rq(R@R REtoutput_charsetRSRiR(R.tteststrRBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_8bit_unicode_inputRs  cCsd}|jtt|dS(Nuкирилица(R`tUnicodeEncodeErrorR (R.RF((s+/sys/lib/python2.7/email/test/test_email.pyt"test_8bit_unicode_input_no_charsetZs( R;R<R R?RARBRCRDRGRI(((s+/sys/lib/python2.7/email/test/test_email.pyR=-s      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 Rs)Dingus Lovers RsHere is your dingus fishRg4FcpAiit-t+s %s%04di$s%a, %d %b %Y %H:%M:%StDate(R%RgR8R R RR tattachttimet localtimettimezonetaltzonetstrftimeR>R;t_txt( R.R4Rt containertimagetintrotnowt timetuplettzsecstsignttzoffset((s+/sys/lib/python2.7/email/test/test_email.pyR bs<              cCs|j}|j}|j}|j}||j||jd|t|jd|t|jd|jd}|jd}|||j k|||j k||j||g||j ||j dS(Nsmultipart/mixediii( R@RR`R>R@RHR&RSt IndexErrorRVR;(R.RBR6traisesRtm0tm1((s+/sys/lib/python2.7/email/test/test_email.pyttest_hierarchys    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-- (RRhR5Re(R.R}R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_empty_multipart_idempotents cCsTtdd}d|d ----961284236552522269-- (R:R@Re(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_boundary_in_non_multiparts 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(R@R6RRR@R[R&RS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt test_boundary_with_leading_spaces   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==(RRhR@RS(R.R((s+/sys/lib/python2.7/email/test/test_email.pyt&test_boundary_without_trailing_newlines (R;R<R RcRdRfRiRjRkRlRmRnRoRrRsRuRvRwRxRy(((s+/sys/lib/python2.7/email/test/test_email.pyRJas$ (               tTestNonConformantcBsYeZdZdZdZdZdZdZdZdZ dZ RS( cCsU|j}|jd}||jd||jd||jddS(Ns msg_14.txts text/plainR}R(R@R:RHRR(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_parse_missing_minor_types  cCst|j}|jd}|jd}|t|d|jt|jd|t|jdtj dS(Ns msg_15.txtitdefectsi( RR:RSthasattrR@R&R|t isinstanceRtStartBoundaryNotFoundDefect(R.R6R9tinner((s+/sys/lib/python2.7/email/test/test_email.pyttest_same_boundary_inner_outers cCs|j}|jd}|t|jt|jt|jd|t|jdtj |t|jdtj dS(Ns msg_25.txtiii( RR:R~RSR'R@R&R|RtNoBoundaryInMultipartDefectt!MultipartInvariantViolationDefect(R.R6R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_multipart_no_boundarys cCs|j}|j}t}d|d<||jd||jd||jd|d=d|d<||jd||jd||jdt}t|}|j|||j ddS(NR}s Content-TypeRs text/plains content-typeRusContent-Type: foo ( R@R5R RRRHRRRjR-(R.RBtneqR9R~R((s+/sys/lib/python2.7/email/test/test_email.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-- (R5R:RS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_start_boundary s  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 (R5R:Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_separating_blank_lines  cCs|j}|jd}|t|d|jt|jd|t|jdtj|t|jdtj dS(Ns msg_41.txtR|iii( RR:R}R@R&R|R~RRR(R.R6R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_lying_multipart(s cCsd|jd}|jdjd}|jt|jd|jt|jdtjdS(Ns msg_42.txtii( R:RSR@R&R|RR~RR(R.Retbad((s+/sys/lib/python2.7/email/test/test_email.pyttest_missing_start_boundary1s  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 ( R@R6RRRSR&R|RR~Rt#FirstHeaderLineIsContinuationDefecttline(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.pyt&test_first_line_is_continuation_header@s  ( R;R<R{RRRRRRRR(((s+/sys/lib/python2.7/email/test/test_email.pyRzs    t TestRFC2047cBsGeZdZdZdZdZdZdZdZRS(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(R@RRFR'R(R.RBR~tdh((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_multilinePs   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(R@RRFtunicodeRR(R.RBR~Rthu((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_eater_unicode^s   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(R@RRFRt __unicode__(R.RBR~RR((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_eater_unicode_2fs    cCs/d}t|}|j||dfgdS(Ns3Sm=?ISO-8859-1?B?9g==?=rg=?ISO-8859-1?B?5Q==?=sbord(RR@RF(R.R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_without_whitespaceos 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(RR@RF(R.R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_with_whitespacets  cCs_d}d d d d dg}x=|D]5\}}t||}|j||d fgq"WdS(Ns=?iso-8859-1?B?%s?=sdm==tvsdm=tdmsdmk=tvitdmks iso-8859-1(sdm==R(sdm=R(RR(sdmk=R(RR(RR@(R.R~RtqtaR((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_B_bad_padding{s   cCs#d}|jt|dgdS(Ns=?iso-8659-1?Q?andr=e9=zz?=sandr=zzs iso-8659-1(sandr=zzs iso-8659-1(R@R(R.R~((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_Q_invalid_digitss( R;R<RRRRRRR(((s+/sys/lib/python2.7/email/test/test_email.pyROs     tTestMIMEMessagecBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZRS(cCs1td}z|j|_Wd|jXdS(Ns msg_11.txt(R%Rgt_textR8(R.R4((s+/sys/lib/python2.7/email/test/test_email.pyR s cCs|jttddS(Nsa plain string(R`t TypeErrorR(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_type_errorscCs|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.edutdnsRbs reporting-mtaRtnsdtactiontfailedsoriginal-recipientRsjangel1@cougar.noc.ucla.edusfinal-recipientsmessage/rfc822s message-ids(<002001c144a6$8752e060$56104586@oxy.edu>(srfc822R(sjangel1@cougar.noc.ucla.eduR( R@RR:RHR@R&RSR~R RIRFRR( R.RBR6R9RWtdsn1tdsn2R/Rq((s+/sys/lib/python2.7/email/test/test_email.pyttest_dsnsD       c Cs|j}td}z|j}Wd|jXt}d|dR(RR(R@Rt parseaddrt formataddr(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_parseaddr_empty scCs|jtjdddS(NsA Silly Personsperson@dom.ainsA Silly Person (sA Silly Personsperson@dom.ain(R@RR(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_noquote_dump s 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(R@RRR(R.Rtb((s+/sys/lib/python2.7/email/test/test_email.pyttest_escape_dump s  cCsW|jtjddd}d}|jtjtj||f||fdS(NsArthur \Backslash\ Foobarsperson@dom.ains."Arthur \\Backslash\\ Foobar" (sArthur \Backslash\ Foobarsperson@dom.ain(R@RRR(R.RR((s+/sys/lib/python2.7/email/test/test_email.pyttest_escape_backslashes s  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(R@RRR(R.RtyRR((s+/sys/lib/python2.7/email/test/test_email.pyttest_name_with_dot s  cCsO|j}|tjdd|tjdd|tjdddS(Ns""example" example"@example.comRs!"\"example\" example"@example.coms#"\\"example\\" example"@example.com(Rs""example" example"@example.com(Rs!"\"example\" example"@example.com(Rs#"\\"example\\" example"@example.com(R@RR(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyt2test_parseaddr_preserves_quoted_pairs_in_addresses% s cCs#d}|jtj|ddS(NsFoo Bar sFoo Barsfoo@example.com(sFoo Barsfoo@example.com(R@RR(R.R((s+/sys/lib/python2.7/email/test/test_email.pyttest_multiline_from_comment7 scCs|jtjdddS(NsA Silly; Personsperson@dom.ains""A Silly; Person" (sA Silly; Personsperson@dom.ain(R@RR(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_quote_dump= s cCs{|j}|tjdd|tjdd|tjdd|tjdd|tjdddS(Nthelloshello shello shello shello s hello (R@Rtfix_eols(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyt test_fix_eolsB s  cCs|j}|j}t}t}||d||d||d|d||d||d|||d||d||d|d||d||d|||||||dS(Nsus-asciisUS-ASCIIsUs-AsCiItusasciitUSASCIItUsAsCiI(R@tassertNotEqualR(R.RBtnetcset1tcset2((s+/sys/lib/python2.7/email/test/test_email.pyttest_charset_richcomparisonsJ s$                 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(R@Rt getaddresses(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyttest_getaddresses^ s    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(R@RR((R.RB((s+/sys/lib/python2.7/email/test/test_email.pyttest_getaddresses_nastye s     cCs4|j}tjdg}||ddddS(s(Test proper handling of a nested comments%User ((nested comment)) iis foo@bar.comN(R@RR((R.RBtaddrs((s+/sys/lib/python2.7/email/test/test_email.pyt"test_getaddresses_embedded_commento s cCs?|j}t}|jdddd||jddS(Nscontent-dispositionRR#sfoo\wacky"name(R@R RRT(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_utils_quote_unquoteu s   cCs&td}|j|jddS(Ns not a charsetR(RR@tget_body_encoding(R.RD((s+/sys/lib/python2.7/email/test/test_email.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 worldRDsaGVsbG8gd29ybGQ= Rqscontent-transfer-encodingstext/plain; charset="US-ASCII"sus-asciiR( R@R RPR&RR.RMRSRiRtencode_7or8bit(R.RBR9RQRD((s+/sys/lib/python2.7/email/test/test_email.pyt-test_get_body_encoding_with_uppercase_charset s.       cCs8td}td}|j|j|jdS(Nsus-asciisUS-ASCII(RR@R.(R.tlctuc((s+/sys/lib/python2.7/email/test/test_email.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 (R5R:RRRtR-(R.RBR9R{((s+/sys/lib/python2.7/email/test/test_email.pyt1test_partial_falls_inside_message_delivery_status s    (#R;R<RRRRRRRRRRRR R RRRRRRRRRRRR'R)R*R,R-R/R1R4R5(((s+/sys/lib/python2.7/email/test/test_email.pyRcsB                           t TestIteratorscBs,eZdZdZdZdZRS(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( R@R5R:Rtbody_line_iteratorRR&t EMPTYSTRINGRRSR%RgR8(R.RBRR9titRR4((s+/sys/lib/python2.7/email/test/test_email.pyttest_body_line_iterator s      cCs|j}|jd}tj|d}g}d}x+|D]#}|d7}|j|jq=W||d|tj|ddS(Ns msg_04.txtR}iiis`a simple kind of mirror to reflect upon our own a simple kind of mirror to reflect upon our own (R@R:Rttyped_subpart_iteratorRRSR8R(R.RBR9R9RtsubpartsRW((s+/sys/lib/python2.7/email/test/test_email.pyttest_typed_subpart_iterator s    cCs|j}|jd}tj|dd}g}d}x+|D]#}|d7}|j|jq@W||d|tj|ddS(Ns msg_03.txtR}Riis% Hi, Do you like this message? -Me (R@R:RR;RRSR8R(R.RBR9R9RR<RW((s+/sys/lib/python2.7/email/test/test_email.pyt(test_typed_subpart_iterator_default_type s    c Cs+ddddddddg}d d lm}m}|}g}d}x|D]|\}}|j|||7}d} x=tr|j} | |krPn|j| | d7} q|W|j|| kqPW|jt||k|jdj g|D]\}}|^qdj |kdS(sFeedParser BufferedSubFile.push() assumed it received complete line endings. A CR ending one push() followed by a LF starting the next push() added an empty line. sa iRisc iRsd se s fs i(tBufferedSubFilet NeedMoreDataN(sa i(Ri(sc i(Ri(sd i(se i(s fi(s i( temail.feedparserR?R@tpushRitreadlineRRR&R( R.timtR?R@tbsftomtnttiltntn1tol((s+/sys/lib/python2.7/email/test/test_email.pyttest_pushCR_LF s2        (R;R<R:R=R>RL(((s+/sys/lib/python2.7/email/test/test_email.pyR6 s   t TestParserscBskeZdZdZdZdZdZdZdZdZ dZ d Z d Z RS( cCs|j}td}ztj|}Wd|jX||dd||dd||jd|j|j|jt |j t dS(Ns msg_02.txtRsppp-request@zzz.orgRs ppp@zzz.orgsmultipart/mixed( R@R%RtparseR8RHRR@RR~RSR'(R.RBR4R9((s+/sys/lib/python2.7/email/test/test_email.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 (R@R6RRS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_continuation7 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-idRPsHere's the message body (R@R6RRS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt(test_whitespace_continuation_last_headerI s   cCs|j}tddd}ztj|}Wd|jX|t|jd|jd}||jd||jd|jd}||jd dS( Ns msg_26.txtR$R)iis text/plains!Simple email with attachment. isapplication/riscos(R@R%RRNR8R&RSRH(R.RBR4R9tpart1tpart2((s+/sys/lib/python2.7/email/test/test_email.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 ( R@R5R%R6R7R8R@R&RSRH( R.RBRR4R9RStpart1aRTtpart2a((s+/sys/lib/python2.7/email/test/test_email.pyt-test_multipart_digest_with_extra_mime_headersi s0    cCs?dddg}tjtj|}|j|dddS(Ns$From: Andrew Person From: foo From: bar !"#QUX;~: zoo bodyis!"#QUX;~s>FromRtbody(R@R6RR&RRRS(R.RBRR9R((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2822_header_syntax s   cCs;|j}d}tj|}|t|jddS(Ns<>From foo@example.com 11:25:53 From: bar !"#QUX;~: zoo bodyi(R@R6RR&R(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.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 bodytAtBtCCR_(R@R6RRRRS(R.RBRR9theaders((s+/sys/lib/python2.7/email/test/test_email.pyt!test_rfc2822_one_character_header s   cCs>d}tj|}|j|jdjjddS(NsFrom: foo@bar.com To: baz Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=BOUNDARY --BOUNDARY Content-Type: text/plain body ending with CRLF newline --BOUNDARY-- is (R6RRRStendswith(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_CRLFLF_at_end_of_part s ( R;R<RORQRRRURXRZR^R`RaRfRh(((s+/sys/lib/python2.7/email/test/test_email.pyRM( 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(R@Rt base64_lenR&RR(R.RBtsizetbsize((s+/sys/lib/python2.7/email/test/test_email.pyttest_len s       cCsk|j}|tjdd|tjdd|tjddd|tjddddS(NRsaGVsbG8=RtXsaGVsbG8NCndvcmxk t helloXworld(R@RRq(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyt test_decode s  cCs|j}|tjdd|tjdd|tjdd|tjddd|tjdd d d d |tjdd d d d dddS(NRRs aGVsbG8= shello s aGVsbG8K is aGVsbG8NCg== sxxxx iR i(seHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IA== Rjs seHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg eHh4eCB4eHh4IA== (R@RR(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyt test_encode 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?=RDs iso-8859-2s=?iso-8859-2?b?aGVsbG8=?=t keep_eolss!=?iso-8859-1?b?aGVsbG8Kd29ybGQ=?=sxxxx iR i(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?=Rjs 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@Rt header_encodeRi(R.RBthe((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_encode s  (R;R<RnRqRrRv(((s+/sys/lib/python2.7/email/test/test_email.pyRi s  t TestQuopricBsYeZdZdZdZdZdZdZdZdZ dZ RS( cCsgttdtddD]}t|^q gttdtddD]}t|^qUgttdtddD]}t|^qdd d d d d g|_gtdD]'}t||jkrt|^q|_gttd tddD]}t|^qdg|_|jjdgtdD]'}t||jkrYt|^qY|_dS(NRtziRbtZt0t9t!t*RNRMt/Rit~s t=(Rtordtchrthlitthnontblittremovetbnon(R.R((s+/sys/lib/python2.7/email/test/test_email.pyR  s=B=cCsXx'|jD]}|jtj|q Wx'|jD]}|jtj|q4WdS(N(RRRtheader_quopri_checkRR(R.tc((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_quopri_check scCsXx'|jD]}|jtj|q Wx'|jD]}|jtj|q4WdS(N(RRRtbody_quopri_checkRR(R.R((s+/sys/lib/python2.7/email/test/test_email.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@RDRRjiii(shellos h@e@l@l@o@(R@Rtheader_quopri_lenRtR&RR(R.RBthqltencR~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_quopri_len, s    3cCsd|j}tj}x$|jD]}|||dqWx$|jD]}|||dqCWdS(Nii(R@Rtbody_quopri_lenRR(R.RBtbqlR((s+/sys/lib/python2.7/email/test/test_email.pyttest_body_quopri_len8 s   cCsIxBtdD]4}t|}|jtjtj||q WdS(Ni(RRR@RRtquote(R.RR((s+/sys/lib/python2.7/email/test/test_email.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?=RDs iso-8859-2s=?iso-8859-2?q?hello?=Rss=?iso-8859-1?q?hello=0Aworld?=s hellotheres=?iso-8859-1?q?hello=C7there?=sxxxx iR i(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_?=Rjs 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@RRtRi(R.RBRu((s+/sys/lib/python2.7/email/test/test_email.pyRvE s  cCsk|j}|tjdd|tjdd|tjddd|tjddddS(NRRRos hello worldRp(R@RRq(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyRq_ s  cCs|j}|tjdd|tjdd|tjdd|tjddd|tjdddd d |tjdddd d d d |tjdddS(NRRs hello worlds hello worldisxxxx iR i(sjxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx= xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx= x xxxx xxxx xxxx xxxx=20Rjs 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(R@RR(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyRrf s  ( R;R<R RRRRRRvRqRr(((s+/sys/lib/python2.7/email/test/test_email.pyRw s      t TestCharsetcBs5eZdZdZdZdZdZRS(cCs6ddlm}y|jd=Wntk r1nXdS(Ni(Rtfake(R6RtCHARSETSR(R.t CharsetModule((s+/sys/lib/python2.7/email/test/test_email.pyttearDown s  cCso|j}td}d}|j|}|||j|d}|j|}|||j|dS(Nsus-asciis Hello World!s (R@Rt to_splittabletfrom_splittable(R.RBRR~tsp((s+/sys/lib/python2.7/email/test/test_email.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(RR( R@Rt body_encodeRkt LookupErrorR6t add_charsettQPRF(R.RBRR((s+/sys/lib/python2.7/email/test/test_email.pyttest_body_encode s&       cCs<td}|jt|d|jtjtddS(Nuus-asciisus-asciisascii(RR@R'R`Rt CharsetError(R.RD((s+/sys/lib/python2.7/email/test/test_email.pyttest_unicode_charset_name s cCs&td}|jt|ddS(NRsutf-8(RR@R'(R.RD((s+/sys/lib/python2.7/email/test/test_email.pyttest_codecs_aliases_accepted s (R;R<RRRRR(((s+/sys/lib/python2.7/email/test/test_email.pyR s    t TestHeadercBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZRS(cCsL|j}td}||jd|jd||jddS(Ns Hello World!s Goodbye World!sHello World! Goodbye World!(R5RRR(R.RBR((s+/sys/lib/python2.7/email/test/test_email.pyt test_simple s    cCsL|j}td}||jd|jd||jddS(Ns Hello World!sGoodbye World!sHello World! Goodbye World!(R5RRR(R.RBR((s+/sys/lib/python2.7/email/test/test_email.pyttest_simple_surprise s    cCs)d}|jt||dfgdS(Nsno decoding needed(R@RRF(R.R((s+/sys/lib/python2.7/email/test/test_email.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.R iLt splitcharsRs (RRRRR&(R.Rtl((s+/sys/lib/python2.7/email/test/test_email.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.」と言っています。(R5RRRRRRR( R.RBRRRRRRRRtustrtnewh((s+/sys/lib/python2.7/email/test/test_email.pyttest_multilingual s*        cCsF|j}t}||d|jdtd||ddS(NRRus iso-8859-1s=?iso-8859-1?q?foo?=(R5RRR(R.RBR((s+/sys/lib/python2.7/email/test/test_email.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 behaviorR i(R5RR(R.RBRR((s+/sys/lib/python2.7/email/test/test_email.pyttest_explicit_maxlinelen s    cCsN|j}d}t|}||dgt|}|||jdS(NR(shelloN(R@RRFRR(R.RBR~RR((s+/sys/lib/python2.7/email/test/test_email.pyttest_us_ascii_header s    cCs3|j}t}|jdd||ddS(NRs iso-8859-1s=?iso-8859-1?q?hello?=(R@RR(R.RBR((s+/sys/lib/python2.7/email/test/test_email.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?=(R@RR(R.RBR((s+/sys/lib/python2.7/email/test/test_email.pyttest_utf8_shortest5 s  cCs|j}|j}d}|tt|t}|t|j||tt|dd||j|dd|t||dS(Ns0Ynwp4dUEbay Auction Semiar- No Charge Earn BigRR(R`R@t UnicodeErrorRRR'(R.R`RBRR((s+/sys/lib/python2.7/email/test/test_email.pyttest_bad_8bit_header< s   cCsq|j}t}|jdd|jd|j}||dtt|}||j|dS(NRs iso-8859-1tworlds=?iso-8859-1?q?hello?= world(R@RRRRR(R.RBRR~((s+/sys/lib/python2.7/email/test/test_email.pyt test_encoded_adjacent_nonencodedG 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(R@RRFRR(R.RBR~tpartsthdr((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_eaterQ s    cCs&|j}d}|tjt|dS(NsXSubject: =?EUC-KR?B?CSixpLDtKSC/7Liuvsax4iC6uLmwMcijIKHaILzSwd/H0SC8+LCjwLsgv7W/+Mj3I ?=(R`RRaR(R.R`R~((s+/sys/lib/python2.7/email/test/test_email.pyttest_broken_base64_headerZ s cCs7t}|jdddd|jd|ddS(NsContent-DispositionRR#sbud.gifsattachment; filename="bud.gif"(R RR@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_ascii_add_header` s   cCs7t}|jdddd|jd|ddS( NsContent-DispositionRR#s iso-8859-1Rs Fuballer.ppts3attachment; filename*="iso-8859-1''Fu%DFballer.ppt"(s iso-8859-1Rs Fuballer.ppt(R RR@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt#test_nonascii_add_header_via_tripleg s  cCs9tddj}|j|d|j|tdS(Ntabcs iso-8859-2s=?iso-8859-2?q?abc?=(RRR@tassertIsInstanceR'(R.tres((s+/sys/lib/python2.7/email/test/test_email.pyttest_encode_unaliased_charseto s(R;R<RRRRRRRRRRRRRRRRR(((s+/sys/lib/python2.7/email/test/test_email.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!"(R@R:RIRk(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyRy s  cCs|j}t}|jdddd||jdd |jdddddd||jdd |jd}|jdddddd|j|jd dS( NRs%This is even more ***fun*** isn't it!RDsus-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!(R@R RRIR:R5Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyR s    cCsz|j}|jd}|jdddddd|jdd dddd|jdd d ||jd dS( Ns msg_01.txtRuRRDsus-asciiRRRs%This is even more ***fun*** isn't it!Rbs 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 (R5R:RRRe(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyR s   cCs/|j}|jd}||jddS(Ns msg_32.txtsus-ascii(R@R:R(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.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(R6RRIRR~ttupleR@(R.RR9tparam((s+/sys/lib/python2.7/email/test/test_email.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(R6RR@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.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(R6RR@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.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(R6RR@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.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(R6RR@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.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(R6RR@R[(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_rfc2231_no_language_or_charset_in_boundary 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(R6RR@R(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt.test_rfc2231_no_language_or_charset_in_charset 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(R6RR@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt%test_rfc2231_bad_encoding_in_filename" scCs/d}tj|}|j|jddS(Ns:Content-Type: text/plain; charset*=bogus''utf-8%E2%80%9D (R6RR@RRF(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt$test_rfc2231_bad_encoding_in_charset. scCs/d}tj|}|j|jddS(Ns:Content-Type: text/plain; charset*=ascii''utf-8%E2%80%9D (R6RR@RRF(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt%test_rfc2231_bad_character_in_charset8 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�(R6RR@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt&test_rfc2231_bad_character_in_filenameB scCs/d}tj|}|j|jddS(Ns^Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename*=X-UNKNOWN''myfile.txt s myfile.txt(R6RR@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_unknown_encodingN scCsa|j}d}tj|}|jd\}}}||d||d||ddS(NsJContent-Type: application/x-foo; name*0*="Frank's"; name*1*=" Document" RsFrank's Document(R@R6RRIRF(R.RBRR9RDRR~((s+/sys/lib/python2.7/email/test/test_email.pyt-test_rfc2231_single_tick_in_filename_extendedW s   cCsNd}tj|}|jd}|jt|t|j|ddS(NsGContent-Type: application/x-foo; name*0="Frank's"; name*1=" Document" RsFrank's Document(R6RRIRR~RR@(R.RR9R((s+/sys/lib/python2.7/email/test/test_email.pyt$test_rfc2231_single_tick_in_filenamed 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(R@R6RRI(R.RBRR9RDRR~((s+/sys/lib/python2.7/email/test/test_email.pyt!test_rfc2231_tick_attack_extendedn 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(R6RRIRR~RR@(R.RR9R((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_tick_attack{ s cCs8|j}d}tj|}||jdddS(Ns:Content-Type: application/x-foo; name="Frank's Document" RsFrank's Document(R@R6RRI(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.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(R@R6RRI(R.RBRR9RDRR~((s+/sys/lib/python2.7/email/test/test_email.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(R@R6RRI(R.RBRR9RDRR~((s+/sys/lib/python2.7/email/test/test_email.pyt,test_rfc2231_unencoded_then_encoded_segments s   (R;R<RRRRRRRRRRRRRRRRRRRRRRR(((s+/sys/lib/python2.7/email/test/test_email.pyRx s.  %    t TestSignedcBs,eZdZdZdZdZRS(cCsItt|}z|j}tj|}Wd|jX||fS(N(R%RRgR6RR8(R.R#R4toriginalR9((s+/sys/lib/python2.7/email/test/test_email.pyt _msg_and_obj s   cCslddl}|jd|j|jB}|j|jd}|j|jd}|j||dS(Nis^--([^\n]+)\n(.*?)\n--\1$i(tretcompiletStMtsearchtgroupR@(R.RtresultRtreparttinparttoutpart((s+/sys/lib/python2.7/email/test/test_email.pyt_signed_parts_eq s  cCs5|jd\}}|j}|j||dS(Ns msg_45.txt(RReR(R.RR9R((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_headers_as_string s cCsQ|jd\}}t}t|j||j}|j||dS(Ns msg_45.txt(RRRRjR-R(R.RR9R4R((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_headers_flatten s   (R;R<RRRR(((s+/sys/lib/python2.7/email/test/test_email.pyR s  cCsBtjt}gt|D]$}|jdrt||^qS(NR(RxtmodulesR;tdirRtgetattr(tmodR((s+/sys/lib/python2.7/email/test/test_email.pyt _testclasses s cCs:tj}x'tD]}|jtj|qW|S(N(tunittestt TestSuiteRtaddTestt makeSuite(tsuitet testclass((s+/sys/lib/python2.7/email/test/test_email.pyR s cCs"xtD]}t|q WdS(N(RR(R((s+/sys/lib/python2.7/email/test/test_email.pyt test_main st__main__t defaultTestR(QRRxRQRR(RtwarningsR$t cStringIORR6t email.CharsetRt email.HeaderRRRt email.ParserRRtemail.GeneratorRRt email.MessageR temail.MIMEAudioR temail.MIMETextR temail.MIMEImageR temail.MIMEBaseR temail.MIMEMessageRtemail.MIMEMultipartRRRRRRRttest.test_supportRRt email.testRR!R+R8RR%tTestCaseR&R=RRRR(R9R=RJRzRRRRR6RMRiRwRRRRRRRR;tmain(((s+/sys/lib/python2.7/email/test/test_email.pyts          B81+4|s>>j\Ho=;!