Ñò
ïžòKc           @   s  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z d  d k	 Z	 d  d k
 l Z d  d k l Z l Z l Z d  d k l Z l Z d  d k l Z l Z d  d k l Z d  d k l Z d  d	 k l Z d  d
 k l Z d  d k l Z d  d k  l! Z! d  d k" l# Z# d  d k	 l$ Z$ d  d k	 l% Z% d  d k	 l& Z& d  d k	 l' Z' d  d k	 l( Z( d  d k	 l) Z) d  d k* l+ Z+ l, Z, d  d k- l. Z/ d Z0 d Z1 d Z2 d d „ Z3 d e i4 f d „  ƒ  YZ5 d e5 f d „  ƒ  YZ6 d e i4 f d  „  ƒ  YZ7 d! e5 f d" „  ƒ  YZ8 d# e i4 f d$ „  ƒ  YZ9 d% e i4 f d& „  ƒ  YZ: d' e i4 f d( „  ƒ  YZ; d) e i4 f d* „  ƒ  YZ< d+ e5 f d, „  ƒ  YZ= d- e5 f d. „  ƒ  YZ> d/ e i4 f d0 „  ƒ  YZ? d1 e5 f d2 „  ƒ  YZ@ d3 e5 f d4 „  ƒ  YZA d5 e5 f d6 „  ƒ  YZB d7 e5 f d8 „  ƒ  YZC d9 e5 f d: „  ƒ  YZD d; e i4 f d< „  ƒ  YZE d= e i4 f d> „  ƒ  YZF d? e i4 f d@ „  ƒ  YZG dA e5 f dB „  ƒ  YZH dC e5 f dD „  ƒ  YZI dE „  ZJ dF „  ZK dG „  ZL eM dH j o e iN dI dJ ƒ n d S(K   iÿÿÿÿN(   t   StringIO(   t   Charset(   t   Headert   decode_headert   make_header(   t   Parsert   HeaderParser(   t	   Generatort   DecodedGenerator(   t   Message(   t	   MIMEAudio(   t   MIMEText(   t	   MIMEImage(   t   MIMEBase(   t   MIMEMessage(   t   MIMEMultipart(   t   Utils(   t   Errors(   t   Encoders(   t	   Iterators(   t
   base64MIME(   t
   quopriMIME(   t   findfilet   run_unittest(   t   __file__s   
t    t    t   rc         C   s1   t  i i t  i i t ƒ d |  ƒ } t | | ƒ S(   Nt   data(   t   ost   patht   joint   dirnamet   landmarkt   open(   t   filenamet   modeR   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   openfile,   s    $t   TestEmailBasec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | | j on t  | ƒ } t  | ƒ } t i | i ƒ  | i ƒ  ƒ } t ƒ  } | t It i | ƒ IJ|  i | i ƒ  ‚ n d S(   s:   Like failUnlessEqual except use ndiff for readable output.N(	   t   strt   difflibt   ndifft
   splitlinesR    t   NLR   t   failureExceptiont   getvalue(   t   selft   firstt   secondt   sfirstt   ssecondt   difft   fp(    (    s+   scripts/common/Lib/email/test/test_email.pyt   ndiffAssertEqual4   s    	c         C   s7   t  t | ƒ ƒ } z t i | ƒ } Wd  | i ƒ  X| S(   N(   R%   R   t   emailt   message_from_filet   close(   R.   R#   R4   t   msg(    (    s+   scripts/common/Lib/email/test/test_email.pyt   _msgobj>   s
    (   t   __name__t
   __module__R5   R:   (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR&   3   s   	
t   TestMessageAPIc           B   så  e  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 „  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 „  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) „  Z+ d* „  Z, d+ „  Z- d, „  Z. d- „  Z/ d. „  Z0 d/ „  Z1 d0 „  Z2 d1 „  Z3 d2 „  Z4 d3 „  Z5 d4 „  Z6 RS(5   c         C   sT   |  i  } |  i d ƒ } | | i d ƒ d d d g ƒ | | i d d ƒ d ƒ d  S(   Ns
   msg_20.txtt   ccs   ccc@zzz.orgs   ddd@zzz.orgs   eee@zzz.orgt   xxs   n/a(   t   assertEqualR:   t   get_all(   R.   t   eqR9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_allJ   s    	c         C   sL  |  i  } t ƒ  } | | i ƒ  d  ƒ t d ƒ } | i | ƒ | | d d ƒ | | i ƒ  d ƒ | | d d ƒ | | i d ƒ d ƒ | | d d	 ƒ | | i ƒ  i d ƒ | i d  ƒ | | i ƒ  d  ƒ | | d d ƒ t ƒ  } d
 | d <d | d <d | d <| i | ƒ | | d d
 ƒ | | d d ƒ | | d d ƒ d  S(   Ns
   iso-8859-1s   mime-versions   1.0s
   text/plains   content-types    text/plain; charset="iso-8859-1"t   charsets   content-transfer-encodings   quoted-printables   2.0s   MIME-Versions   text/x-weirds   Content-Types   quinted-puntables   Content-Transfer-Encodings"   text/x-weird; charset="iso-8859-1"(	   R@   R	   t   get_charsett   NoneR   t   set_charsett   get_content_typet	   get_paramt   input_charset(   R.   RB   R9   RD   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_getset_charsetP   s,    			


c         C   sJ   |  i  } t ƒ  } | i d ƒ | | i ƒ  i d ƒ | | d d ƒ d  S(   Ns   us-asciis   content-types   text/plain; charset="us-ascii"(   R@   R	   RG   RE   RJ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_set_charset_from_stringj   s
    		c         C   sB   t  ƒ  } t d ƒ } | i d | ƒ |  i | i ƒ  i d ƒ d  S(   Ns
   iso-8859-1s   This is a string payload(   R	   R   t   set_payloadR@   RE   RJ   (   R.   R9   RD   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_set_payload_with_charsetq   s    	c      
   C   s¾   |  i  } |  i d ƒ } | i ƒ  } | | d  d d d d g ƒ |  i d ƒ } | i d ƒ } | | d d d d d g ƒ |  i d ƒ } | i ƒ  } | | d  d d d  d d	 d d g ƒ d  S(
   Ns
   msg_08.txts   us-asciis
   iso-8859-1s
   iso-8859-2s   koi8-rs
   msg_09.txtt   dingbats
   msg_12.txts
   iso-8859-3(   R@   R:   t   get_charsetsRF   (   R.   RB   R9   t   charsets(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_charsetsw   s    	
c         C   s�   |  i  } |  i d ƒ } g  } | i ƒ  D] } | | i ƒ  q) ~ } | | d d g ƒ |  i d ƒ } | i d ƒ } | | i ƒ  d ƒ d  S(   Ns
   msg_04.txts   msg.txts
   msg_07.txti   s   dingusfish.gif(   R@   R:   t   get_payloadt   get_filename(   R.   RB   R9   t   _[1]t   pt	   filenamest   subpart(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_filenameˆ   s    	-c         C   s\   |  i  } |  i d ƒ } g  } | i ƒ  D] } | | i ƒ  q) ~ } | | d d g ƒ d  S(   Ns
   msg_44.txts   msg.txt(   R@   R:   RS   RT   (   R.   RB   R9   RU   RV   RW   (    (    s+   scripts/common/Lib/email/test/test_email.pyt%   test_get_filename_with_name_parameter“   s    	-c         C   s/   |  i  } |  i d ƒ } | | i ƒ  d ƒ d  S(   Ns
   msg_07.txtt   BOUNDARY(   R@   R:   t   get_boundary(   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_boundaryš   s    	c         C   sÙ   |  i  } |  i d ƒ } | i d ƒ | i ƒ  d \ } } | | i ƒ  d ƒ | | d ƒ |  i d ƒ } | i d ƒ | i ƒ  d \ } } | | i ƒ  d ƒ | | d ƒ |  i d ƒ } |  i t i | i d ƒ d  S(	   Ns
   msg_01.txtR[   i   s   content-types3   text/plain; charset="us-ascii"; boundary="BOUNDARY"s
   msg_04.txts$   multipart/mixed; boundary="BOUNDARY"s
   msg_03.txt(   R@   R:   t   set_boundaryt   itemst   lowert   assertRaisesR   t   HeaderParseError(   R.   RB   R9   t   headert   value(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_set_boundary    s    	c         C   s½   |  i  } |  i d ƒ } | | i d t ƒ d  ƒ | | i d ƒ i d t ƒ d ƒ | | i d ƒ i d t ƒ d ƒ | | i d ƒ i d t ƒ d ƒ | | i d	 ƒ i d t ƒ d
 ƒ d  S(   Ns
   msg_10.txtt   decodei    s    This is a 7bit encoded message.
i   s-   ¡This is a Quoted Printable encoded message!
i   s!   This is a Base64 encoded message.i   s/   This has no Content-Transfer-Encoding: header.
(   R@   R:   RS   t   TrueRF   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_decoded_payload¶   s    	c         C   s}   |  i  } t ƒ  } | i d ƒ x1 d
 D]) } | | d <| | i d t ƒ d ƒ q& W| i d	 ƒ | | i d t ƒ d	 ƒ d  S(   Ns$   begin 666 -
+:&5L;&\@=V]R;&0 
 
end
s
   x-uuencodet   uuencodet   uues   x-uues   content-transfer-encodingRf   s   hello worldt   foo(   s
   x-uuencodeRi   Rj   s   x-uue(   R@   R	   RM   RS   Rg   (   R.   RB   R9   t   cte(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_decoded_uu_payloadÈ   s    		 
c         C   st   t  ƒ  } | i d ƒ d | d <t i } z$ t ƒ  t _ } | i d t ƒ Wd  | t _ X|  i | i ƒ  d ƒ d  S(   Ns%   begin 664 foo.txt
%<W1F=0000H 
 
end
s
   x-uuencodes   Content-Transfer-EncodingRf   R   (	   R	   RM   t   syst   stderrR    RS   Rg   R@   R-   (   R.   R9   t
   old_stderrt   sfp(    (    s+   scripts/common/Lib/email/test/test_email.pyt$   test_decode_bogus_uu_payload_quietlyÓ   s    	
	
c         C   s{   |  i  } |  i d ƒ } t d ƒ } z | i ƒ  } Wd  | i ƒ  Xt ƒ  } t | ƒ } | i | ƒ | | i ƒ  | ƒ d  S(   Ns
   msg_07.txts
   msg_17.txt(	   R@   R:   R%   t   readR8   R    R   t   flattenR-   (   R.   RB   R9   R4   t   textt   st   g(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_decoded_generatorà   s    		c         C   s“   t  ƒ  } d | d <d | d <|  i d | j ƒ |  i d | j ƒ |  i d | j ƒ |  i d | j ƒ |  i d | j ƒ |  i d | j ƒ d  S(	   Nt   Met   Fromt   Yout   tot   fromt   FROMt   Tot   TO(   R	   t
   failUnless(   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test__contains__í   s    	

c         C   s¨   |  i  } |  i d ƒ } t d ƒ } z | i ƒ  } Wd  | i ƒ  X| | | i ƒ  ƒ t | ƒ } | i d ƒ } |  i | d i	 d ƒ ƒ | | t
 i | d ƒ ƒ d  S(   Ns
   msg_01.txts   
i    s   From i   (   R@   R:   R%   Rs   R8   t	   as_stringR'   t   splitR�   t
   startswithR+   R   (   R.   RB   R9   R4   Ru   t   fullreprt   lines(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_as_stringù   s    	c         C   s,   t  i d ƒ } |  i | i d ƒ d ƒ d  S(   Ns   Content-Type: blarg; baz; boo
t   bazR   (   R6   t   message_from_stringR@   RI   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_bad_param  s    c         C   s)   t  i d ƒ } |  i | i ƒ  d  ƒ d  S(   Ns
   From: foo
(   R6   RŠ   R@   RT   RF   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_missing_filename  s    c         C   s)   t  i d ƒ } |  i | i ƒ  d ƒ d  S(   Ns%   Content-Disposition: blarg; filename
R   (   R6   RŠ   R@   RT   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_bogus_filename  s    	c         C   s)   t  i d ƒ } |  i | i ƒ  d  ƒ d  S(   Ns
   From: foo
(   R6   RŠ   R@   R\   RF   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_missing_boundary  s    c         C   s³   |  i  } t i d ƒ } | | i d d ƒ d d d g ƒ t i d
 ƒ } | | i d d ƒ d d d g ƒ | | i ƒ  d  ƒ t i d ƒ } | | i d d ƒ d d d g ƒ d  S(   Ns&   X-Header: foo=one; bar=two; baz=three
Rc   s   x-headerRk   t   onet   bart   twoR‰   t   threes    X-Header: foo; bar=one; baz=two
R   s"   X-Header: foo; bar="one"; baz=two
(   s   fooR�   (   R�   R‘   (   s   bazR’   (   s   fooR   (   R�   R�   (   s   bazR‘   (   s   fooR   (   R�   R�   (   s   bazR‘   (   R@   R6   RŠ   t
   get_paramsRF   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_params  s    				c         C   s0   t  ƒ  } d | d <|  i | i d ƒ d ƒ d  S(   Ns>   Content-Type: Multipart/mixed; boundary = "CPIMSSMTPC06p5f3tG"s   Content-Typet   boundaryt   CPIMSSMTPC06p5f3tG(   R	   R@   RI   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_param_liberal(  s    	
c         C   sÍ   |  i  } t i d ƒ } | | i d d d ƒd ƒ | | i d d d ƒd  ƒ | | i d ƒ d  ƒ t i d ƒ } | | i d d d ƒd	 ƒ | | i d d d ƒd
 ƒ | | i d d d ƒd ƒ d  S(   Ns&   X-Header: foo=one; bar=two; baz=three
R�   Rc   s   x-headerR‘   t   quuzs"   X-Header: foo; bar="one"; baz=two
Rk   R   R�   R‰   (   R@   R6   RŠ   RI   RF   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_param-  s    			c         C   s5   |  i  d ƒ } |  i | i d ƒ i d ƒ d ƒ d  S(   Ns
   msg_22.txti   t   names
   wibble.JPG(   R:   R@   RS   RI   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt'   test_get_param_funky_continuation_lines>  s    c         C   sK   t  i d ƒ } |  i | i d ƒ d ƒ |  i | i d d t ƒd ƒ d  S(   Ns4   Content-Type: image/pjpeg; name="Jim&amp;&amp;Jill"
Rš   s   Jim&amp;&amp;Jillt   unquotes   "Jim&amp;&amp;Jill"(   R6   RŠ   R@   RI   t   False(   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt#   test_get_param_with_semis_in_quotesB  s
    	c         C   sk   t  i d ƒ } |  i | i d ƒ ƒ |  i | i d ƒ ƒ |  i | i d ƒ ƒ |  i | i d ƒ ƒ d  S(   Ns   Header: existsRc   R   t   HEADERt   headeri(   R6   RŠ   R�   t   has_keyt   failIf(   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_has_keyI  s
    c         C   sî   |  i  } t ƒ  } | i d d ƒ | | i d ƒ d ƒ | i d d ƒ | | i d ƒ d ƒ | | i d d t ƒd ƒ | | i ƒ  d d d g ƒ | | i d t ƒ d d d g ƒ | i d d
 d d ƒ| | i d d d ƒd
 ƒ d  S(   NRD   s   iso-2022-jpt
   importances
   high valueRœ   s   "high value"s
   text/plainR   s   "iso-2022-jp"s   iso-9999-xxRc   s   X-Jimmy(   s
   text/plainR   (   s   charsets   iso-2022-jp(   R¤   s
   high value(   s
   text/plainR   (   s   charsets   "iso-2022-jp"(   R¤   s   "high value"(   R@   R	   t	   set_paramRI   R�   R“   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_set_paramP  s    		

c         C   sŸ   |  i  } |  i d ƒ } | | i ƒ  d d	 d
 g ƒ | i d ƒ } | i d ƒ | | i ƒ  d d g ƒ | i d | ƒ | | i ƒ  d d d | f g ƒ d  S(   Ns
   msg_05.txts   multipart/reportR   s   report-types   delivery-statusR•   s%   D1690A7AC1.996856090/mail.example.com(   s   multipart/reportR   (   s   report-types   delivery-status(   s   boundarys%   D1690A7AC1.996856090/mail.example.com(   s   multipart/reportR   (   s   boundarys%   D1690A7AC1.996856090/mail.example.com(   s   multipart/reportR   (   s   boundarys%   D1690A7AC1.996856090/mail.example.com(   R@   R:   R“   RI   t	   del_paramR¥   (   R.   RB   R9   t   old_val(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_del_parama  s    	

c         C   sG   t  ƒ  } | i d d d d ƒ| i d d ƒ |  i | d d ƒ d  S(   Ns   Content-Dispositiont
   attachmentR#   s   bud.gifs   content-disposition(   R	   t
   add_headerR§   R@   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_del_param_on_other_headerr  s    	c         C   s‰   |  i  } t ƒ  } |  i t | i d ƒ | i d ƒ | | d d ƒ | i d d ƒ | | d d ƒ | i d ƒ | | d d ƒ d  S(	   NRu   s
   text/plains   content-typeRD   s   us-asciis   text/plain; charset="us-ascii"s	   text/htmls   text/html; charset="us-ascii"(   R@   R	   Ra   t
   ValueErrort   set_typeR¥   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_set_typex  s    		c         C   s;   t  ƒ  } d | d <| i d d ƒ |  i | d d ƒ d  S(   Ns
   text/plains   X-Content-Types   application/octet-streams   x-content-type(   R	   R®   R@   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_set_type_on_other_headerƒ  s    	
c         C   s#   t  ƒ  } |  i | i ƒ  d ƒ d  S(   Ns
   text/plain(   R	   R@   RH   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_content_type_missing‰  s    	c         C   s0   t  ƒ  } | i d ƒ |  i | i ƒ  d ƒ d  S(   Ns   message/rfc822(   R	   t   set_default_typeR@   RH   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt/   test_get_content_type_missing_with_default_type�  s    	c         C   s2   |  i  d ƒ } |  i | i d ƒ i ƒ  d ƒ d  S(   Ns
   msg_30.txti    s   message/rfc822(   R:   R@   RS   RH   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt+   test_get_content_type_from_message_implicit’  s    c         C   s2   |  i  d ƒ } |  i | i d ƒ i ƒ  d ƒ d  S(   Ns
   msg_28.txti    s   message/rfc822(   R:   R@   RS   RH   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt+   test_get_content_type_from_message_explicit—  s    c         C   s)   |  i  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns
   msg_03.txts
   text/plain(   R:   R@   RH   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt6   test_get_content_type_from_message_text_plain_implicitœ  s    c         C   s)   |  i  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns
   msg_01.txts
   text/plain(   R:   R@   RH   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt6   test_get_content_type_from_message_text_plain_explicit   s    c         C   s#   t  ƒ  } |  i | i ƒ  d ƒ d  S(   NRu   (   R	   R@   t   get_content_maintype(   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt!   test_get_content_maintype_missing¤  s    	c         C   s0   t  ƒ  } | i d ƒ |  i | i ƒ  d ƒ d  S(   Ns   message/rfc822t   message(   R	   R²   R@   R¸   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt3   test_get_content_maintype_missing_with_default_type¨  s    	c         C   s2   |  i  d ƒ } |  i | i d ƒ i ƒ  d ƒ d  S(   Ns
   msg_30.txti    Rº   (   R:   R@   RS   R¸   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt/   test_get_content_maintype_from_message_implicit­  s    c         C   s2   |  i  d ƒ } |  i | i d ƒ i ƒ  d ƒ d  S(   Ns
   msg_28.txti    Rº   (   R:   R@   RS   R¸   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt/   test_get_content_maintype_from_message_explicit±  s    c         C   s)   |  i  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns
   msg_03.txtRu   (   R:   R@   R¸   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt:   test_get_content_maintype_from_message_text_plain_implicitµ  s    c         C   s)   |  i  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns
   msg_01.txtRu   (   R:   R@   R¸   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt:   test_get_content_maintype_from_message_text_plain_explicit¹  s    c         C   s#   t  ƒ  } |  i | i ƒ  d ƒ d  S(   Nt   plain(   R	   R@   t   get_content_subtype(   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt    test_get_content_subtype_missing½  s    	c         C   s0   t  ƒ  } | i d ƒ |  i | i ƒ  d ƒ d  S(   Ns   message/rfc822t   rfc822(   R	   R²   R@   RÁ   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt2   test_get_content_subtype_missing_with_default_typeÁ  s    	c         C   s2   |  i  d ƒ } |  i | i d ƒ i ƒ  d ƒ d  S(   Ns
   msg_30.txti    RÃ   (   R:   R@   RS   RÁ   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt.   test_get_content_subtype_from_message_implicitÆ  s    c         C   s2   |  i  d ƒ } |  i | i d ƒ i ƒ  d ƒ d  S(   Ns
   msg_28.txti    RÃ   (   R:   R@   RS   RÁ   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt.   test_get_content_subtype_from_message_explicitÊ  s    c         C   s)   |  i  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns
   msg_03.txtRÀ   (   R:   R@   RÁ   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt9   test_get_content_subtype_from_message_text_plain_implicitÎ  s    c         C   s)   |  i  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns
   msg_01.txtRÀ   (   R:   R@   RÁ   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt9   test_get_content_subtype_from_message_text_plain_explicitÒ  s    c         C   s-   t  ƒ  } d | d <|  i | i ƒ  d ƒ d  S(   Ns   no-slash-in-this-strings   Content-TypeRu   (   R	   R@   R¸   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_content_maintype_errorÖ  s    	
c         C   s-   t  ƒ  } d | d <|  i | i ƒ  d ƒ d  S(   Ns   no-slash-in-this-strings   Content-TypeRÀ   (   R	   R@   RÁ   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_content_subtype_errorÛ  s    	
c         C   s=  |  i  } t ƒ  } | i d d ƒ | i d d ƒ | i d d ƒ | | i ƒ  d d d g ƒ | | i ƒ  d d d g ƒ | i d d ƒ | | i ƒ  d d d g ƒ | | i ƒ  d d d g ƒ | i d d ƒ | i d d	 ƒ | | i ƒ  d d d d g ƒ | | i ƒ  d	 d d d g ƒ |  i t | i d
 d ƒ d  S(   Nt   Firstt   Onet   Secondt   Twot   Thirdt   Threet   Twentyt   Elevens   One Hundredt   Fourtht   Missing(   R@   R	   R«   t   keyst   valuest   replace_headerRa   t   KeyError(   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_replace_headerà  s    		c         C   sP   d } t  ƒ  } d | d <d | d <| i | ƒ |  i | i d t ƒ | ƒ d  S(   Ns   AwDp0P7//y6LwKEAcPa/6Q=9s   audio/x-midis   content-typet   base64s   content-transfer-encodingRf   (   R	   RM   R@   RS   Rg   (   R.   t   xR9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_broken_base64_payloadñ  s    	

c         C   sS   t  ƒ  } | i d ƒ |  i d | i ƒ  ƒ | i d ƒ |  i d | i ƒ  ƒ d  S(   Ns   us-asciiu   us-ascii(   R	   RG   R@   t   get_content_charset(   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_get_content_charsetù  s
    	(7   R;   R<   RC   RK   RL   RN   RR   RY   RZ   R]   Re   Rh   Rm   Rr   Rx   R‚   Rˆ   R‹   RŒ   R�   RŽ   R”   R—   R™   R›   Rž   R£   R¦   R©   R¬   R¯   R°   R±   R³   R´   Rµ   R¶   R·   R¹   R»   R¼   R½   R¾   R¿   RÂ   RÄ   RÅ   RÆ   RÇ   RÈ   RÉ   RÊ   RÙ   RÜ   RÞ   (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR=   I   sj   																																																				t   TestEncodersc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s4   |  i  } t ƒ  } | i d ƒ | | d d ƒ d  S(   Ns   us-asciis   content-transfer-encodingt   7bit(   R@   R	   RG   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_encode_empty_payload  s    		c         C   s*   |  i  } t d ƒ } | | d d ƒ d  S(   Ns   hello worlds   content-transfer-encodingRà   (   R@   R   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_default_cte
  s    	c         C   sj   |  i  } t d ƒ } | | d d ƒ t d ƒ } | | d d ƒ t d d d ƒ} | | d d ƒ d  S(	   Ns   hello worlds   content-transfer-encodingRà   s   hello ø worldt   8bitt   _charsets
   iso-8859-1s   quoted-printable(   R@   R   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyRâ     s    	(   R;   R<   Rá   Râ   (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRß     s   		t   TestLongHeadersc           B   sÅ   e  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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sQ   |  i  } t i d ƒ } t ƒ  } t | ƒ } | i | ƒ | | i ƒ  d ƒ d  S(   Nsº   Subject: bug demonstration
	12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789
	more text

test
(   R5   R6   RŠ   R    R   Rt   R-   (   R.   RB   R9   Rq   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_split_long_continuation  s    			c         C   sW   |  i  } d } t | d d ƒ} | | i ƒ  d ƒ t | ƒ } | | i ƒ  d ƒ d  S(   Nsª   bug demonstration
	12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789
	more textt   continuation_wss   	sª   bug demonstration
 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789
 more text(   R5   R   t   encode(   R.   RB   t   hstrt   h(    (    s+   scripts/common/Lib/email/test/test_email.pyt,   test_another_long_almost_unsplittable_header3  s    	c         C   sÜ   |  i  } t d ƒ } t d ƒ } t d ƒ } d } d } d i d ƒ } t | | d d ƒ} | i | | ƒ | i | | ƒ t ƒ  }	 | |	 d <t ƒ  }
 t |
 ƒ } | i |	 ƒ | |
 i	 ƒ  d	 ƒ | | i ƒ  d
 ƒ d  S(   Ns
   iso-8859-1s
   iso-8859-2s   utf-8s©   Die 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. s;   Finanèni metropole se hroutily pod tlakem jejich dùvtipu.. uø   æ­£ç¢ºã�«è¨€ã�†ã�¨ç¿»è¨³ã�¯ã�•ã‚Œã�¦ã�„ã�¾ã�›ã‚“ã€‚ä¸€éƒ¨ã�¯ãƒ‰ã‚¤ãƒ„èªžã�§ã�™ã�Œã€�ã�‚ã�¨ã�¯ã�§ã�Ÿã‚‰ã‚�ã�§ã�™ã€‚å®Ÿéš›ã�«ã�¯ã€ŒWenn ist das Nunstuck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput.ã€�ã�¨è¨€ã�£ã�¦ã�„ã�¾ã�™ã€‚t   header_namet   Subjects  Subject: =?iso-8859-1?q?Die_Mieter_treten_hier_ein_werden_mit_einem_Foerd?=
 =?iso-8859-1?q?erband_komfortabel_den_Korridor_entlang=2C_an_s=FCdl=FCndi?=
 =?iso-8859-1?q?schen_Wandgem=E4lden_vorbei=2C_gegen_die_rotierenden_Kling?=
 =?iso-8859-1?q?en_bef=F6rdert=2E_?= =?iso-8859-2?q?Finan=E8ni_met?=
 =?iso-8859-2?q?ropole_se_hroutily_pod_tlakem_jejich_d=F9vtipu=2E=2E_?=
 =?utf-8?b?5q2j56K644Gr6KiA44GG44Go57+76Kiz44Gv44GV44KM44Gm44GE?=
 =?utf-8?b?44G+44Gb44KT44CC5LiA6YOo44Gv44OJ44Kk44OE6Kqe44Gn44GZ44GM44CB?=
 =?utf-8?b?44GC44Go44Gv44Gn44Gf44KJ44KB44Gn44GZ44CC5a6f6Zqb44Gr44Gv44CM?=
 =?utf-8?q?Wenn_ist_das_Nunstuck_git_und_Slotermeyer=3F_Ja!_Beiherhund_das?=
 =?utf-8?b?IE9kZXIgZGllIEZsaXBwZXJ3YWxkdCBnZXJzcHV0LuOAjeOBqOiogOOBow==?=
 =?utf-8?b?44Gm44GE44G+44GZ44CC?=

sø  =?iso-8859-1?q?Die_Mieter_treten_hier_ein_werden_mit_einem_Foerd?=
 =?iso-8859-1?q?erband_komfortabel_den_Korridor_entlang=2C_an_s=FCdl=FCndi?=
 =?iso-8859-1?q?schen_Wandgem=E4lden_vorbei=2C_gegen_die_rotierenden_Kling?=
 =?iso-8859-1?q?en_bef=F6rdert=2E_?= =?iso-8859-2?q?Finan=E8ni_met?=
 =?iso-8859-2?q?ropole_se_hroutily_pod_tlakem_jejich_d=F9vtipu=2E=2E_?=
 =?utf-8?b?5q2j56K644Gr6KiA44GG44Go57+76Kiz44Gv44GV44KM44Gm44GE?=
 =?utf-8?b?44G+44Gb44KT44CC5LiA6YOo44Gv44OJ44Kk44OE6Kqe44Gn44GZ44GM44CB?=
 =?utf-8?b?44GC44Go44Gv44Gn44Gf44KJ44KB44Gn44GZ44CC5a6f6Zqb44Gr44Gv44CM?=
 =?utf-8?q?Wenn_ist_das_Nunstuck_git_und_Slotermeyer=3F_Ja!_Beiherhund_das?=
 =?utf-8?b?IE9kZXIgZGllIEZsaXBwZXJ3YWxkdCBnZXJzcHV0LuOAjeOBqOiogOOBow==?=
 =?utf-8?b?44Gm44GE44G+44GZ44CC?=(
   R5   R   Rè   R   t   appendR	   R    R   Rt   R-   (   R.   RB   Rw   t   czt   utf8t   g_headt   cz_headt	   utf8_headRê   R9   Rq   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_nonstringD  s&    		
	c         C   s2   |  i  } t d d d ƒ} | | i ƒ  d ƒ d  S(   Nsi   wasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"Rì   s   X-Foobar-Spoink-Defrobnitsj   wasnipoop; giraffes="very-long-necked-animals";
 spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"(   R5   R   Rè   (   R.   RB   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_header_encodeo  s
    			c         C   s8   |  i  } t d d d d d ƒ} | | i ƒ  d ƒ d  S(   Nsi   wasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"Rì   s   X-Foobar-Spoink-DefrobnitRç   s   	sj   wasnipoop; giraffes="very-long-necked-animals";
	spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"(   R5   R   Rè   (   R.   RB   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt-   test_long_header_encode_with_tab_continuationx  s    			c         C   sX   |  i  } t d ƒ } d | d <t ƒ  } t | ƒ } | i | ƒ | | i ƒ  d ƒ d  S(   NR   si   wasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"s   X-Foobar-Spoink-Defrobnitsæ   Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Foobar-Spoink-Defrobnit: wasnipoop; giraffes="very-long-necked-animals";
	spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"

(   R5   R   R    R   Rt   R-   (   R.   RB   R9   Rq   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_header_splitter‚  s    	
	c         C   sš   |  i  } t ƒ  } d | d <t i g  } t d ƒ D] } | d | q3 ~ ƒ | d <| i d ƒ t ƒ  } t | ƒ } | i | ƒ | | i	 ƒ  d ƒ d  S(   Ns   test@dom.ainRz   i
   s   <%d@dom.ain>t
   Referencest   Tests�   From: 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(
   R5   R	   t   SPACER   t   rangeRM   R    R   Rt   R-   (   R.   RB   R9   RU   t   iRq   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_no_semis_header_splitter–  s    		
8	c         C   s@   |  i  } d d d } t | d d ƒ} | | i ƒ  d ƒ d  S(   Ns   References: RÛ   iP   Rç   s   	s\   References: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(   R5   R   Rè   (   R.   RB   Ré   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_no_split_long_header¦  s
    	c         C   s8   |  i  } d } t | d d ƒ} | | i ƒ  d ƒ d  S(   NsW  from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for <mailman-admin@babylon.socal-raves.org>; 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 <mailman-admin@babylon.socal-raves.org>; 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 <mailman-admin@babylon.socal-raves.org>; Sat, 2 Feb 2002 17:00:06 -0800 (PST)
Rç   s   	s_  from babylon.socal-raves.org (localhost [127.0.0.1]);
	by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81;
	for <mailman-admin@babylon.socal-raves.org>;
	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 <mailman-admin@babylon.socal-raves.org>;
	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 <mailman-admin@babylon.socal-raves.org>;
	Sat, 2 Feb 2002 17:00:06 -0800 (PST)(   R5   R   Rè   (   R.   RB   Ré   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt"   test_splitting_multiple_long_lines­  s
    	c         C   sD   |  i  } d } t | d d d d d d ƒ} | | i ƒ  d ƒ d  S(	   NsÞ   from 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
   maxlineleniN   Rì   t   ReceivedRç   s   	sß   from 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(   R5   R   Rè   (   R.   RB   Ré   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt&   test_splitting_first_line_only_is_longÃ  s    		c         C   sU   |  i  } t ƒ  } t d d d d ƒ} | i d ƒ | | d <| | i ƒ  d ƒ d  S(   Ns   Britische Regierung gibts
   iso-8859-1Rì   Rí   s+   grünes Licht für Offshore-Windkraftprojektesˆ   Subject: =?iso-8859-1?q?Britische_Regierung_gibt?= =?iso-8859-1?q?gr=FCnes?=
 =?iso-8859-1?q?_Licht_f=FCr_Offshore-Windkraftprojekte?=

(   R5   R	   R   Rî   Rƒ   (   R.   RB   R9   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_8bit_headerÓ  s    			
c         C   s3   |  i  } t ƒ  } d | d <| | i ƒ  d ƒ d  S(   Nsf   Britische Regierung gibt grünes Licht für Offshore-Windkraftprojekte <a-very-long-address@example.com>s   Reply-Tosr   Reply-To: Britische Regierung gibt grünes Licht für Offshore-Windkraftprojekte <a-very-long-address@example.com>

(   R5   R	   Rƒ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt    test_long_8bit_header_no_charsetà  s
    		
c         C   s<   |  i  } d } t ƒ  } | | d <| | i d ƒ d ƒ d  S(   NsÁ   "Someone Test #A" <someone@eecs.umich.edu>,<someone@eecs.umich.edu>,"Someone Test #B" <someone@umich.edu>, "Someone Test #C" <someone@eecs.umich.edu>, "Someone Test #D" <someone@eecs.umich.edu>R   i    sÌ   To: "Someone Test #A" <someone@eecs.umich.edu>, <someone@eecs.umich.edu>,
	"Someone Test #B" <someone@umich.edu>,
	"Someone Test #C" <someone@eecs.umich.edu>,
	"Someone Test #D" <someone@eecs.umich.edu>

(   R5   R	   Rƒ   (   R.   RB   R|   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_to_headeré  s    		
c         C   s?   |  i  } d } t | ƒ } | i d ƒ | | i ƒ  d ƒ d  S(   NsI   This is an example of string which has almost the limit of header length.s   Add another line.s\   This is an example of string which has almost the limit of header length.
 Add another line.(   R5   R   Rî   Rè   (   R.   RB   Rv   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_line_after_appendö  s    	c         C   s?   |  i  } d } t | ƒ } | i d ƒ | | i ƒ  d ƒ d  S(   Ns   This is a shorter line.s!   Add another sentence. (Surprise?)s9   This is a shorter line. Add another sentence. (Surprise?)(   R5   R   Rî   Rè   (   R.   RB   Rv   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_shorter_line_with_appendÿ  s    	c         C   sA   |  i  } d } d } t | d d | ƒ} | | i ƒ  d ƒ d  S(   Ns!   X-Very-Very-Very-Long-Header-Names©   Die 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. s
   iso-8859-1Rì   s  =?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_?=(   R5   R   Rè   (   R.   RB   t   fnt   gsRê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_field_name  s    	c         C   sI   d } t  ƒ  } t | d d ƒ| d <| | d <|  i | i ƒ  d ƒ d  S(   Ns‰   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 -0700Rç   s   	s
   Received-1s
   Received-2s1  Received-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	   R   R@   Rƒ   (   R.   Rê   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_received_header  s    	
c         C   sO   d } t  ƒ  } t | d d d d ƒ| d <| | d <|  i | i ƒ  d ƒ d  S(   Ns�   <15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de> (David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100")Rì   s
   Received-1Rç   s   	s
   Received-2s  Received-1: <15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de>
	(David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100")
Received-2: <15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de>
	(David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100")

(   R	   R   R@   Rƒ   (   R.   Rê   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_string_headerinst_eq"  s    	
c         C   sO   |  i  } t ƒ  } d } | | d <t | d d ƒ| d <| | i ƒ  d ƒ d  S(   Ns“    iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEUAAAAkHiJeRUIcGBi9
 locQDQ4zJykFBAXJfWDjAAACYUlEQVR4nF2TQY/jIAyFc6lydlG5x8Nyp1Y69wj1PN2I5gzps   Face-1Rì   s   Face-2s7  Face-1: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEUAAAAkHiJeRUIcGBi9
	locQDQ4zJykFBAXJfWDjAAACYUlEQVR4nF2TQY/jIAyFc6lydlG5x8Nyp1Y69wj1PN2I5gzp
Face-2: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEUAAAAkHiJeRUIcGBi9
 locQDQ4zJykFBAXJfWDjAAACYUlEQVR4nF2TQY/jIAyFc6lydlG5x8Nyp1Y69wj1PN2I5gzp

(   R5   R	   R   Rƒ   (   R.   RB   R9   t   t(    (    s+   scripts/common/Lib/email/test/test_email.pyt-   test_long_unbreakable_lines_with_continuation0  s    		
c         C   s5   |  i  } d } t i | ƒ } | | i ƒ  d ƒ d  S(   NsŠ   Received: from siimage.com ([172.25.1.3]) by zima.siliconimage.com with Microsoft SMTPSVC(5.0.2195.4905);
	Wed, 16 Oct 2002 07:41:11 -0700sŒ   Received: from siimage.com ([172.25.1.3]) by zima.siliconimage.com with
	Microsoft SMTPSVC(5.0.2195.4905); Wed, 16 Oct 2002 07:41:11 -0700

(   R5   R6   RŠ   Rƒ   (   R.   RB   t   mR9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt"   test_another_long_multiline_header@  s
    	c         C   sO   |  i  } d } t ƒ  } | | d <t | d d ƒ| d <| | i ƒ  d ƒ d  S(   Ns¨   List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/spamassassin-talk>,
        <mailto:spamassassin-talk-request@lists.sourceforge.net?subject=unsubscribe>t   ListRì   sQ  List: List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/spamassassin-talk>,
	<mailto:spamassassin-talk-request@lists.sourceforge.net?subject=unsubscribe>
List: List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/spamassassin-talk>,
 <mailto:spamassassin-talk-request@lists.sourceforge.net?subject=unsubscribe>

(   R5   R	   R   Rƒ   (   R.   RB   Rê   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt%   test_long_lines_with_different_headerL  s    		
(   R;   R<   Ræ   Rë   Rô   Rõ   Rö   R÷   Rý   Rþ   Rÿ   R  R  R  R  R  R  R
  R  R  R  R  R  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRå     s*   			+			
																	t   TestFromManglingc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s-   t  ƒ  |  _ d |  i d <|  i i d ƒ d  S(   Ns   aaa@bbb.orgRz   s(   From the desk of A.A.A.:
Blah blah blah
(   R	   R9   RM   (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   setUp`  s    	c         C   sE   t  ƒ  } t | d t ƒ} | i |  i ƒ |  i | i ƒ  d ƒ d  S(   Nt   mangle_from_s<   From: aaa@bbb.org

>From the desk of A.A.A.:
Blah blah blah
(   R    R   Rg   Rt   R9   R@   R-   (   R.   Rv   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_mangled_fromh  s
    	c         C   sE   t  ƒ  } t | d t ƒ} | i |  i ƒ |  i | i ƒ  d ƒ d  S(   NR  s;   From: aaa@bbb.org

From the desk of A.A.A.:
Blah blah blah
(   R    R   R�   Rt   R9   R@   R-   (   R.   Rv   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_dont_mangle_froms  s
    	(   R;   R<   R  R  R  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR  _  s   		t   TestMIMEAudioc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   ss   t  i i t  i i t ƒ d d ƒ } t t d | ƒ d ƒ } z | i ƒ  |  _ Wd  | i	 ƒ  Xt
 |  i ƒ |  _ d  S(   NR   R   s   audiotest.aut   rb(   R   R   R   R    R!   R"   R   Rs   t
   _audiodataR8   R
   t   _au(   R.   t   datadirR4   (    (    s+   scripts/common/Lib/email/test/test_email.pyR  ‚  s    $c         C   s   |  i  |  i i ƒ  d ƒ d  S(   Ns   audio/basic(   R@   R  RH   (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_guess_minor_type�  s    c         C   s/   |  i  i ƒ  } |  i t i | ƒ |  i ƒ d  S(   N(   R  RS   R@   RÚ   t   decodestringR  (   R.   t   payload(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_encoding“  s    c         C   s,   t  |  i d ƒ } |  i | i ƒ  d ƒ d  S(   Nt   fishs
   audio/fish(   R
   R  R@   RH   (   R.   t   au(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_checkSetMinor—  s    c         C   s  |  i  } |  i } |  i i d d d d ƒ| |  i d d ƒ | |  i i d d ƒ d d g ƒ | |  i i d d d ƒd ƒ g  } | |  i i d d d ƒd ƒ | |  i i d	 d
 | d d ƒ| j ƒ | |  i i d | ƒ | j ƒ | |  i i d | d d ƒ| j ƒ d  S(   Ns   Content-DispositionRª   R#   s   audiotest.aus   content-dispositions#   attachment; filename="audiotest.au"Rc   R   Rk   t   failobjt   foobar(   s
   attachmentR   (   R#   s   audiotest.au(   R@   R�   R  R«   R“   RI   (   R.   RB   t   unlesst   missing(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_add_header›  s"    		(   R;   R<   R  R  R   R#  R(  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR  �  s
   				t   TestMIMEImagec           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sC   t  d ƒ } z | i ƒ  |  _ Wd  | i ƒ  Xt |  i ƒ |  _ d  S(   Ns   PyBanner048.gif(   R%   Rs   t   _imgdataR8   R   t   _im(   R.   R4   (    (    s+   scripts/common/Lib/email/test/test_email.pyR  ³  s
    c         C   s   |  i  |  i i ƒ  d ƒ d  S(   Ns	   image/gif(   R@   R+  RH   (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyR  »  s    c         C   s/   |  i  i ƒ  } |  i t i | ƒ |  i ƒ d  S(   N(   R+  RS   R@   RÚ   R  R*  (   R.   R  (    (    s+   scripts/common/Lib/email/test/test_email.pyR   ¾  s    c         C   s,   t  |  i d ƒ } |  i | i ƒ  d ƒ d  S(   NR!  s
   image/fish(   R   R*  R@   RH   (   R.   t   im(    (    s+   scripts/common/Lib/email/test/test_email.pyR#  Â  s    c         C   s  |  i  } |  i } |  i i d d d d ƒ| |  i d d ƒ | |  i i d d ƒ d d g ƒ | |  i i d d d ƒd ƒ g  } | |  i i d d d ƒd ƒ | |  i i d	 d
 | d d ƒ| j ƒ | |  i i d | ƒ | j ƒ | |  i i d | d d ƒ| j ƒ d  S(   Ns   Content-DispositionRª   R#   s   dingusfish.gifs   content-dispositions%   attachment; filename="dingusfish.gif"Rc   R   Rk   R$  R%  (   s
   attachmentR   (   R#   s   dingusfish.gif(   R@   R�   R+  R«   R“   RI   (   R.   RB   R&  R'  (    (    s+   scripts/common/Lib/email/test/test_email.pyR(  Æ  s"    		(   R;   R<   R  R  R   R#  R(  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR)  ²  s
   				t   TestMIMETextc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  d ƒ |  _ d  S(   Ns   hello there(   R   t   _msg(   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyR  Þ  s    c         C   s�   |  i  } |  i } | |  i i ƒ  d ƒ | |  i i d ƒ d ƒ g  } | |  i i d | ƒ | j ƒ | |  i i d | d d ƒ| j ƒ d  S(   Ns
   text/plainRD   s   us-asciiR%  Rc   (   R@   R�   R.  RH   RI   (   R.   RB   R&  R'  (    (    s+   scripts/common/Lib/email/test/test_email.pyt
   test_typesá  s    		c         C   s4   |  i  |  i i ƒ  d ƒ |  i |  i i ƒ  ƒ d  S(   Ns   hello there(   R@   R.  RS   R�   t   is_multipart(   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_payloadë  s    c         C   sF   |  i  } t d d d ƒ} | | i ƒ  i d ƒ | | d d ƒ d  S(   Ns   hello thereRä   s   us-asciis   content-types   text/plain; charset="us-ascii"(   R@   R   RE   RJ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_charsetï  s    	(   R;   R<   R  R/  R1  R2  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR-  Ý  s   		
	t   TestMultipartc           B   sª   e  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 „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sZ  t  d ƒ } z | i ƒ  } Wd  | i ƒ  Xt d d d d ƒ} t | d d ƒ} | i d d	 d
 d ƒt d ƒ } | i | ƒ | i | ƒ d | d <d | d <d | d <d } t i	 | ƒ } | d d j o t i
 } n
 t i } | d j o
 d }	 n d }	 d |	 | d f }
 t i d t i	 | ƒ ƒ |
 | d <| |  _ | |  _ | |  _ d  S(   Ns   PyBanner048.gift	   multipartt   mixedR•   R[   Rš   s   dingusfish.gifs   content-dispositionRª   R#   s$   Hi there,

This is the dingus fish.
s   Barry <barry@digicool.com>Rz   s)   Dingus Lovers <cravindogs@cravindogs.com>R   s   Here is your dingus fishRí   gÊ4FÓcpÍAiÿÿÿÿi    t   -t   +s    %s%04di$   s   %a, %d %b %Y %H:%M:%St   Date(   R%   Rs   R8   R   R   R«   R   t   attacht   timet	   localtimet   timezonet   altzonet   strftimeR.  R+  t   _txt(   R.   R4   R   t	   containert   imaget   introt   nowt	   timetuplet   tzsecst   signt   tzoffset(    (    s+   scripts/common/Lib/email/test/test_email.pyR  ù  s<    	


	
		c         C   sö   |  i  } |  i } |  i } |  i } | | i ƒ  ƒ | | i ƒ  d ƒ | t | i ƒ  ƒ d ƒ | t | i d ƒ | i d ƒ } | i d ƒ } | | |  i	 j ƒ | | |  i
 j ƒ | | i ƒ  | | g ƒ | | i ƒ  ƒ | | i ƒ  ƒ d  S(   Ns   multipart/mixedi   i    i   (   R@   R�   Ra   R.  R0  RH   t   lenRS   t
   IndexErrorR?  R+  (   R.   RB   R&  t   raisesR  t   m0t   m1(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_hierarchy!  s    				c         C   s2   d } t  ƒ  i | ƒ } |  i | | i ƒ  ƒ d  S(   Nsž   Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain


--BOUNDARY


--BOUNDARY--
(   R   t   parsestrR5   Rƒ   (   R.   Ru   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_empty_multipart_idempotent4  s    c         C   sT   t  d d ƒ } d | d <d | d <d | d <| i d	 ƒ |  i | i ƒ  d
 ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   R[   s›   Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY

--BOUNDARY--(   R   R^   R5   Rƒ   (   R.   t   outer(    (    s+   scripts/common/Lib/email/test/test_email.pyt/   test_no_parts_in_a_multipart_with_none_epilogueE  s    


	c         C   sf   t  d d ƒ } d | d <d | d <d | d <d	 | _ d	 | _ | i d
 ƒ |  i | i ƒ  d ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   R   R[   s�   Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain


--BOUNDARY

--BOUNDARY--
(   R   t   preamblet   epilogueR^   R5   Rƒ   (   R.   RP  (    (    s+   scripts/common/Lib/email/test/test_email.pyt0   test_no_parts_in_a_multipart_with_empty_epilogueV  s    


		c         C   ss   |  i  } t d d ƒ } d | d <d | d <d | d <| i d	 ƒ t d
 ƒ } | i | ƒ | | i ƒ  d ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   R[   s   hello worlds  Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(   R5   R   R^   R   R9  Rƒ   (   R.   RB   RP  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_one_part_in_a_multipartk  s    	


c         C   s|   |  i  } t d d ƒ } d | d <d | d <d | d <d	 | _ t d
 ƒ } | i | ƒ | i d ƒ | | i ƒ  d ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   R   s   hello worldR[   s  Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain


--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(   R5   R   RR  R   R9  R^   Rƒ   (   R.   RB   RP  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt1   test_seq_parts_in_a_multipart_with_empty_preambleƒ  s    	


	c         C   s|   |  i  } t d d ƒ } d | d <d | d <d | d <d  | _ t d	 ƒ } | i | ƒ | i d
 ƒ | | i ƒ  d ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   s   hello worldR[   s  Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(   R5   R   RF   RR  R   R9  R^   Rƒ   (   R.   RB   RP  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt0   test_seq_parts_in_a_multipart_with_none_preamblež  s    	


	c         C   s|   |  i  } t d d ƒ } d | d <d | d <d | d <d  | _ t d	 ƒ } | i | ƒ | i d
 ƒ | | i ƒ  d ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   s   hello worldR[   s  Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(   R5   R   RF   RS  R   R9  R^   Rƒ   (   R.   RB   RP  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt0   test_seq_parts_in_a_multipart_with_none_epilogue¸  s    	


	c         C   s|   |  i  } t d d ƒ } d | d <d | d <d | d <d	 | _ t d
 ƒ } | i | ƒ | i d ƒ | | i ƒ  d ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   R   s   hello worldR[   s  Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--
(   R5   R   RS  R   R9  R^   Rƒ   (   R.   RB   RP  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt1   test_seq_parts_in_a_multipart_with_empty_epilogueÒ  s    	


	c         C   s|   |  i  } t d d ƒ } d | d <d | d <d | d <d	 | _ t d
 ƒ } | i | ƒ | i d ƒ | | i ƒ  d ƒ d  S(   NR4  R5  s	   A subjectRí   s   aperson@dom.ainR   s   bperson@dom.ainRz   s   
s   hello worldR[   s  Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--

(   R5   R   RS  R   R9  R^   Rƒ   (   R.   RB   RP  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt.   test_seq_parts_in_a_multipart_with_nl_epilogueí  s    	


	c         C   sÕ   |  i  } |  i d ƒ } | t | i ƒ  ƒ d ƒ | i d ƒ } | | i ƒ  d ƒ | t | i ƒ  ƒ d ƒ xb | i ƒ  D]T } | | i ƒ  d ƒ | t | i ƒ  ƒ d ƒ | i d ƒ } | | i ƒ  d ƒ qy Wd  S(   Ns
   msg_36.txti   i   s   multipart/alternatives   message/external-bodyi    s
   text/plain(   R@   R:   RH  RS   RH   (   R.   RB   R9   t   msg1RX   t
   subsubpart(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_message_external_body  s    	 c         C   s/   |  i  d ƒ } |  i t | i ƒ  ƒ d ƒ d  S(   Ns
   msg_37.txti   (   R:   R@   RH  RS   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_double_boundary  s    c         C   sH   |  i  } |  i d ƒ } t ƒ  } t i | | ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_38.txtsŠ   multipart/mixed
    multipart/mixed
        multipart/alternative
            text/plain
        text/plain
    text/plain
    text/plain
(   R5   R:   R    R   t
   _structureR-   (   R.   RB   R9   Rq   (    (    s+   scripts/common/Lib/email/test/test_email.pyt)   test_nested_inner_contains_outer_boundary  s    		c         C   sH   |  i  } |  i d ƒ } t ƒ  } t i | | ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_39.txts“   multipart/mixed
    multipart/mixed
        multipart/alternative
        application/octet-stream
        application/octet-stream
    text/plain
(   R5   R:   R    R   R_  R-   (   R.   RB   R9   Rq   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_nested_with_same_boundary/  s    		c         C   s)   |  i  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns
   msg_40.txtsÅ   MIME-Version: 1.0
Content-Type: text/html; boundary="--961284236552522269"

----961284236552522269
Content-Type: text/html;
Content-Transfer-Encoding: 7Bit

<html></html>

----961284236552522269--
(   R:   R@   Rƒ   (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_boundary_in_non_multipart@  s    c         C   s[   |  i  } t i d ƒ } |  i | i ƒ  ƒ | | i ƒ  d ƒ | t | i ƒ  ƒ d ƒ d  S(   Nsž   MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="    XXXX"

--    XXXX
Content-Type: text/plain


--    XXXX
Content-Type: text/plain

--    XXXX--
s       XXXXi   (   R@   R6   RŠ   R�   R0  R\   RH  RS   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt    test_boundary_with_leading_spaceO  s    		c         C   s5   t  ƒ  i d ƒ } |  i | i d ƒ i ƒ  d ƒ d  S(   Nsò   Content-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==--i    s   YXNkZg==(   R   RN  t   assertEqualsRS   (   R.   R  (    (    s+   scripts/common/Lib/email/test/test_email.pyt&   test_boundary_without_trailing_newlineb  s    	
	(   R;   R<   R  RM  RO  RQ  RT  RU  RV  RW  RX  RY  RZ  R]  R^  R`  Ra  Rb  Rc  Re  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR3  ø  s$   	(																t   TestNonConformantc           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   sU   |  i  } |  i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_14.txts
   text/plainRu   RÀ   (   R@   R:   RH   R¸   RÁ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parse_missing_minor_typet  s
    	c         C   st   |  i  } |  i d ƒ } | i d ƒ } | t | d ƒ ƒ |  i t | i ƒ d ƒ | t | i d t i	 ƒ ƒ d  S(   Ns
   msg_15.txti    t   defectsi   (
   R�   R:   RS   t   hasattrR@   RH  Rh  t
   isinstanceR   t   StartBoundaryNotFoundDefect(   R.   R&  R9   t   inner(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_same_boundary_inner_outer{  s    	c         C   sˆ   |  i  } |  i d ƒ } | t | i ƒ  t ƒ ƒ |  i t | i ƒ d ƒ | t | i d t i	 ƒ ƒ | t | i d t i
 ƒ ƒ d  S(   Ns
   msg_25.txti   i    i   (   R�   R:   Rj  RS   R'   R@   RH  Rh  R   t   NoBoundaryInMultipartDefectt!   MultipartInvariantViolationDefect(   R.   R&  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_multipart_no_boundary…  s    	c         C   sá   |  i  } |  i } t ƒ  } d | d <| | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ | d =d | d <| | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ t ƒ  } t | ƒ } | i | ƒ | | i	 ƒ  d ƒ d  S(   NRu   s   Content-TypeRÀ   s
   text/plains   content-typeRk   s   Content-Type: foo

(
   R@   R5   R	   R¸   RÁ   RH   R    R   Rt   R-   (   R.   RB   t   neqR9   Rv   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_invalid_content_typeŽ  s     			

	c         C   s/   |  i  } |  i d ƒ } | | i ƒ  d ƒ d  S(   Ns
   msg_31.txtsm   --BOUNDARY
Content-Type: text/plain

message 1

--BOUNDARY
Content-Type: text/plain

message 2

--BOUNDARY--
(   R5   R:   RS   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_no_start_boundary£  s    	c         C   s/   |  i  } |  i d ƒ } | | i ƒ  d ƒ d  S(   Ns
   msg_35.txts‰   From: aperson@dom.ain
To: bperson@dom.ain
Subject: here's something interesting

counter to RFC 2822, there's no separating newline here
(   R5   R:   Rƒ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_no_separating_blank_line´  s    	c         C   s‚   |  i  } |  i d ƒ } | t | d ƒ ƒ |  i t | i ƒ d ƒ | t | i d t i ƒ ƒ | t | i d t i	 ƒ ƒ d  S(   Ns
   msg_41.txtRh  i   i    i   (
   R�   R:   Ri  R@   RH  Rh  Rj  R   Rn  Ro  (   R.   R&  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_lying_multipart¿  s    	c         C   sd   |  i  d ƒ } | i d ƒ i d ƒ } |  i t | i ƒ d ƒ |  i t | i d t i ƒ ƒ d  S(   Ns
   msg_42.txti   i    (	   R:   RS   R@   RH  Rh  R�   Rj  R   Rk  (   R.   RP  t   bad(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_missing_start_boundaryÈ  s
    	c         C   s•   |  i  } d } t i | ƒ } | | i ƒ  g  ƒ | | i ƒ  d ƒ | t | i ƒ d ƒ |  i t | i d t	 i
 ƒ ƒ | | i d i d ƒ d  S(   Ns    Line 1
Line 2
Line 3s   Line 2
Line 3i   i    s    Line 1
(   R@   R6   RŠ   RÕ   RS   RH  Rh  R�   Rj  R   t#   FirstHeaderLineIsContinuationDefectt   line(   R.   RB   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt&   test_first_line_is_continuation_header×  s    	(   R;   R<   Rg  Rm  Rp  Rr  Rs  Rt  Ru  Rw  Rz  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRf  s  s   		
								t   TestRFC2047c           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sQ   |  i  } d } t | ƒ } | | d d d	 d
 g ƒ | t t | ƒ ƒ d ƒ d  S(   NsV   Re: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz
 foo bar =?mac-iceland?q?r=8Aksm=9Arg=8Cs?=s   Re:s
   rŠksmšrgŒss   mac-icelands   baz foo barsV   Re: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz foo bar
 =?mac-iceland?q?r=8Aksm=9Arg=8Cs?=(   s   Re:N(   s
   rŠksmšrgŒss   mac-iceland(   s   baz foo barN(   s
   rŠksmšrgŒss   mac-iceland(   R@   R   RF   R'   R   (   R.   RB   Rv   t   dh(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2047_multilineç  s    	
c         C   sZ   |  i  } d } t | ƒ } | | d d g ƒ t t | ƒ ƒ i d ƒ } | | d ƒ d  S(	   Ns0   =?ISO-8859-1?Q?Andr=E9?= Pirard <pirard@dom.ain>s   Andrés
   iso-8859-1s   Pirard <pirard@dom.ain>s   latin-1s   André Pirard <pirard@dom.ain>(   s   Andrés
   iso-8859-1(   s   Pirard <pirard@dom.ain>N(   R@   R   RF   t   unicodeR   Rè   (   R.   RB   Rv   R|  t   hu(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_whitespace_eater_unicodeõ  s    	c         C   sW   |  i  } d } t | ƒ } | | d d	 d
 d g ƒ t | ƒ i ƒ  } | | d ƒ d  S(   NsW   The =?iso-8859-1?b?cXVpY2sgYnJvd24gZm94?= jumped over the =?iso-8859-1?b?bGF6eSBkb2c=?=t   Thes   quick brown foxs
   iso-8859-1s   jumped over thes   lazy dogu,   The quick brown fox jumped over the lazy dog(   R�  N(   s   quick brown foxs
   iso-8859-1(   s   jumped over theN(   s   lazy dogs
   iso-8859-1(   R@   R   RF   R   t   __unicode__(   R.   RB   Rv   R|  R  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_whitespace_eater_unicode_2ý  s    	c         C   s/   d } t  | ƒ } |  i | | d  f g ƒ d  S(   Ns3   Sm=?ISO-8859-1?B?9g==?=rg=?ISO-8859-1?B?5Q==?=sbord(   R   R@   RF   (   R.   Rv   R|  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2047_without_whitespace  s    c         C   s5   d } t  | ƒ } |  i | d d	 d
 d d g ƒ d  S(   Ns7   Sm =?ISO-8859-1?B?9g==?= rg =?ISO-8859-1?B?5Q==?= sbordt   Sms   ös
   iso-8859-1t   rgs   åt   sbord(   R…  N(   s   ös
   iso-8859-1(   R†  N(   s   ås
   iso-8859-1(   R‡  N(   R   R@   RF   (   R.   Rv   R|  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2047_with_whitespace  s
    (   R;   R<   R}  R€  Rƒ  R„  Rˆ  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR{  æ  s
   					t   TestMIMEMessagec           B   s†   e  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 „  Z RS(   c         C   s1   t  d ƒ } z | i ƒ  |  _ Wd  | i ƒ  Xd  S(   Ns
   msg_11.txt(   R%   Rs   t   _textR8   (   R.   R4   (    (    s+   scripts/common/Lib/email/test/test_email.pyR    s    c         C   s   |  i  t t d ƒ d  S(   Ns   a plain string(   Ra   t	   TypeErrorR   (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_type_error  s    c         C   s«   |  i  } |  i } d } t ƒ  } | | d <t | ƒ } | | i ƒ  d ƒ | i ƒ  } | t | t ƒ ƒ | t | ƒ d ƒ | d } | | | j ƒ | | d | ƒ d  S(   Ns   A sub-messageRí   s   message/rfc822i   i    t   subject(	   R@   R�   R	   R   RH   RS   Rj  t   listRH  (   R.   RB   R&  R�  R  R   R  RX   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_valid_argument   s    			

c         C   sX   |  i  } t ƒ  } d | d <t ƒ  } d | d <t | ƒ } |  i t i | i | ƒ d  S(   Ns	   subpart 1Rí   s	   subpart 2(   R@   R	   R   Ra   R   t   MultipartConversionErrorR9  (   R.   RB   R[  t   msg2R   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_bad_multipart/  s    		
	
c         C   sr   t  ƒ  } d | d <| i d ƒ t | ƒ } d | d <t ƒ  } t | ƒ } | i | ƒ |  i | i ƒ  d ƒ d  S(   Ns   An enclosed messageRí   s!   Here is the body of the message.
s   The enclosing messagesŽ   Content-Type: message/rfc822
MIME-Version: 1.0
Subject: The enclosing message

Subject: An enclosed message

Here is the body of the message.
(   R	   RM   R   R    R   Rt   R@   R-   (   R.   R  R   Rv   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_generate8  s    	

	c         C   s®   |  i  } |  i } |  i d ƒ } | | i ƒ  d ƒ | i ƒ  } | t | t ƒ ƒ | t | ƒ d ƒ | d } |  i t | t ƒ ƒ | | d d ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_11.txts   message/rfc822i   i    R�  s   An enclosed messages!   Here is the body of the message.
(	   R@   R�   R:   RH   RS   Rj  RŽ  RH  R	   (   R.   RB   R&  R9   R  t   submsg(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parse_message_rfc822L  s    		
c   	      C   s?  |  i  } |  i } |  i d ƒ } | | i ƒ  d ƒ | | i ƒ  ƒ | t | i ƒ  ƒ d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d ƒ | t | i ƒ  ƒ d	 ƒ | i d ƒ } | t | t ƒ ƒ | | d
 d ƒ | | i	 d d d ƒd ƒ | | i	 d d d ƒd  ƒ | i d ƒ } | t | t ƒ ƒ | | d d ƒ | | i d d ƒ d d g ƒ | | i	 d d d ƒd ƒ | i d	 ƒ } | | i ƒ  d ƒ | i ƒ  } | t | t ƒ ƒ | t | ƒ d ƒ | d } | t | t ƒ ƒ | | i ƒ  d ƒ | | d d ƒ d  S(   Ns
   msg_16.txts   multipart/reporti   i    s
   text/plains¶  This report relates to a message you sent with the following header fields:

  Message-id: <002001c144a6$8752e060$56104586@oxy.edu>
  Date: Sun, 23 Sep 2001 20:10:55 -0700
  From: "Ian T. Henry" <henryi@oxy.edu>
  To: SoCal Raves <scr@socal-raves.org>
  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

i   s   message/delivery-statusi   s   original-envelope-ids"   0GK500B4HD0888@cougar.noc.ucla.edut   dnsRc   s   reporting-mtaR   t   nsdt   actiont   faileds   original-recipientRÃ   s   jangel1@cougar.noc.ucla.edus   final-recipients   message/rfc822s
   message-ids(   <002001c144a6$8752e060$56104586@oxy.edu>(   s   rfc822R   (   s   jangel1@cougar.noc.ucla.eduR   (   R@   R�   R:   RH   R0  RH  RS   Rj  R	   RI   RF   R“   RŽ  (	   R.   RB   R&  R9   RX   t   dsn1t   dsn2R  R\  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_dsnY  sD    		

c   	      C   sí   |  i  } t d ƒ } z | i ƒ  } Wd  | i ƒ  Xt ƒ  } d | d <d | d <d | d <d | _ d	 | _ t d
 ƒ } t d ƒ } | i d d d d ƒ| i	 | ƒ | i	 | ƒ t
 ƒ  } t | ƒ } | i | ƒ | | i ƒ  | ƒ d  S(   Ns
   msg_21.txts   aperson@dom.ainRz   s   bperson@dom.ainR   Rù   Rí   s   MIME messages   End of MIME message
RÌ   RÎ   s   Content-Types   multipart/mixedR•   R[   (   R5   R%   Rs   R8   R	   RR  RS  R   R«   R9  R    R   Rt   R-   (	   R.   RB   R4   Ru   R9   R[  R‘  Rq   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_epilogue“  s(    		


			c         C   s¡   |  i  } t ƒ  } d | d <d | d <d | d <d | _ d | _ t d	 ƒ } t d
 ƒ } | i d d d d ƒ| i | ƒ | i | ƒ | | i ƒ  d ƒ d  S(   Ns   aperson@dom.ainRz   s   bperson@dom.ainR   Rù   Rí   s   MIME messageR   RÌ   RÎ   s   Content-Types   multipart/mixedR•   R[   sd  From: aperson@dom.ain
To: bperson@dom.ain
Subject: Test
Content-Type: multipart/mixed; boundary="BOUNDARY"

MIME message
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

One
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Two
--BOUNDARY--
(   R5   R	   RR  RS  R   R«   R9  Rƒ   (   R.   RB   R9   R[  R‘  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_no_nl_preambleª  s    		


		c         C   s  |  i  } t d ƒ } z t i | ƒ } Wd  | i ƒ  X| i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_30.txti    s   message/rfc822i   s
   text/plain(   R@   R%   R6   R7   R8   RS   t   get_default_typeRH   (   R.   RB   R4   R9   t
   container1t
   container2t   container1at   container2a(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_default_typeÍ  s"    	c         C   s  |  i  } t d ƒ } z t i | ƒ } Wd  | i ƒ  X| i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_28.txti    s   message/rfc822i   s
   text/plain(   R@   R%   R6   R7   R8   RS   RŸ  RH   (   R.   RB   R4   R9   R   R¡  R¢  R£  (    (    s+   scripts/common/Lib/email/test/test_email.pyt.   test_default_type_with_explicit_container_typeá  s"    	c         C   sX  |  i  } |  i } t d d ƒ } d | _ t d ƒ } t d ƒ } t | ƒ } t | ƒ } | i | ƒ | i | ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ | | i	 d ƒ d ƒ | d	 =| d
 =| d	 =| d
 =| | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ | | i	 d ƒ d ƒ d  S(   Nt   digestR[   R   s
   message 1
s
   message 2
s   message/rfc822i    s   Content-Type: multipart/digest; boundary="BOUNDARY"
MIME-Version: 1.0

--BOUNDARY
Content-Type: message/rfc822
MIME-Version: 1.0

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 1

--BOUNDARY
Content-Type: message/rfc822
MIME-Version: 1.0

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 2

--BOUNDARY--
s   content-types   mime-versionsB  Content-Type: multipart/digest; boundary="BOUNDARY"
MIME-Version: 1.0

--BOUNDARY

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 1

--BOUNDARY

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 2

--BOUNDARY--
(
   R@   R5   R   RS  R   R   R9  RH   RŸ  Rƒ   (   R.   RB   Rq  R@  t	   subpart1at	   subpart2at   subpart1t   subpart2(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_default_type_non_parsedõ  s4    			c         C   s   |  i  } t d ƒ } t d ƒ } t d | | f ƒ } | t | i ƒ  ƒ d ƒ | | i d ƒ | ƒ | | i d ƒ | ƒ d  S(   NR   t	   _subpartsi   i    i   (   R@   R   R   RH  RS   (   R.   RB   t   text1t   text2R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt$   test_mime_attachments_in_constructor?  s    	c         C   s    t  ƒ  } |  i | i ƒ  ƒ d  S(   N(   R   t
   assertTrueR0  (   R.   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt"   test_default_multipart_constructorH  s    	(   R;   R<   R  RŒ  R�  R’  R“  R•  Rœ  R�  Rž  R¤  R¥  R«  R¯  R±  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR‰    s   								:		#			J		t   TestIdempotentc           B   sÎ   e  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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sC   t  | ƒ } z | i ƒ  } Wd  | i ƒ  Xt i | ƒ } | | f S(   N(   R%   Rs   R8   R6   RŠ   (   R.   R#   R4   R   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyR:   S  s    c         C   sH   |  i  } t ƒ  } t | d d ƒ} | i | ƒ | | | i ƒ  ƒ d  S(   Nt   maxheaderleni    (   R5   R    R   Rt   R-   (   R.   R9   Ru   RB   Rv   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   _idempotent\  s
    		c         C   s¸   |  i  } |  i d ƒ \ } } | | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d ƒ | | i ƒ  d d ƒ | | i d ƒ d ƒ | | i d  ƒ | | i	 d  ƒ |  i
 | | ƒ d  S(	   Ns
   msg_01.txts
   text/plainRu   RÀ   i   RD   s   us-ascii(   s   charsets   us-ascii(   Rd  R:   RH   R¸   RÁ   R“   RI   RR  RF   RS  R´  (   R.   RB   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parse_text_messagec  s    	c         C   sn   |  i  } |  i d ƒ \ } } | | i ƒ  d ƒ | | i ƒ  d  ƒ | | i d ƒ d  ƒ |  i | | ƒ d  S(   Ns
   msg_03.txts
   text/plainRD   (   Rd  R:   RH   R“   RF   RI   R´  (   R.   RB   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parse_untyped_messageo  s    	c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_04.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_simple_multipartw  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_02.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_MIME_digest{  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_27.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_long_header  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_28.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt"   test_MIME_digest_with_part_headersƒ  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_06.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_mixed_with_image‡  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_05.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_multipart_report‹  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_16.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyRœ  �  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_21.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_preamble_epilogue“  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_23.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_multipart_one_part—  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_24.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_multipart_no_parts›  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_31.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyRs  Ÿ  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_32.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2231_charset£  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_33.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_more_rfc2231_parameters§  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_34.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt%   test_text_plain_in_a_multipart_digest«  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns   msg_12a.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_nested_multipart_mixeds¯  s    c         C   s)   |  i  d ƒ \ } } |  i | | ƒ d  S(   Ns
   msg_36.txt(   R:   R´  (   R.   R9   Ru   (    (    s+   scripts/common/Lib/email/test/test_email.pyt%   test_message_external_body_idempotent³  s    c         C   sÊ  |  i  } |  i } |  i d ƒ \ } } | | i ƒ  d ƒ h  } x$ | i ƒ  D] \ } } | | | <qM W| | d d ƒ | | d d ƒ | | i d ƒ | | i d ƒ | t | i ƒ  ƒ d	 ƒ | i d
 ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ }	 | |	 i ƒ  d ƒ | |	 i ƒ  d ƒ | i d ƒ }
 | |
 i ƒ  d ƒ |  i t	 |
 t
 ƒ ƒ |
 i ƒ  } | t	 | t ƒ ƒ | t | ƒ d ƒ | d
 } | t	 | t
 ƒ ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_05.txts   multipart/reports   report-types   delivery-statusR•   s%   D1690A7AC1.996856090/mail.example.coms%   This is a MIME-encapsulated message.
s   
i   i    s
   text/plains   Yadda yadda yadda
i   i   s   message/rfc822(   Rd  R�   R:   RH   R“   RR  RS  RH  RS   Rj  R	   RŽ  (   R.   RB   R&  R9   Ru   t   paramst   pkt   pvR[  R‘  t   msg3R  t   msg4(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_content_type·  s8    		 
c         C   sÒ   |  i  } |  i } |  i d ƒ \ } } | | i ƒ  d ƒ | i ƒ  } | t | t ƒ ƒ | t | ƒ d ƒ | d } |  i t | t ƒ ƒ | | i ƒ  d ƒ |  i t | i ƒ  t	 ƒ ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_06.txts   message/rfc822i   i    s
   text/plains   
(
   Rd  R�   R:   RH   RS   Rj  RŽ  RH  R	   R'   (   R.   RB   R&  R9   Ru   R  R[  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parser×  s    		
(   R;   R<   R:   R´  Rµ  R¶  R·  R¸  R¹  Rº  R»  R¼  Rœ  R½  R¾  R¿  Rs  RÀ  RÁ  RÂ  RÃ  RÄ  RÊ  RË  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR²  R  s,   																						 t   TestMiscellaneousc           B   s  e  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 „  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 „  Z d „  Z d „  Z RS(   c         C   s{   t  d ƒ } z | i ƒ  } Wd  | i ƒ  Xt i | ƒ } t ƒ  } t | d d ƒ} | i | ƒ |  i | | i	 ƒ  ƒ d  S(   Ns
   msg_01.txtR³  i    (
   R%   Rs   R8   R6   RŠ   R    R   Rt   R@   R-   (   R.   R4   Ru   R9   Rv   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_message_from_stringì  s    	c         C   sˆ   t  d ƒ } zj | i ƒ  } | i d ƒ t i | ƒ } t ƒ  } t | d d ƒ} | i | ƒ |  i | | i	 ƒ  ƒ Wd  | i
 ƒ  Xd  S(   Ns
   msg_01.txti    R³  (   R%   Rs   t   seekR6   R7   R    R   Rt   R@   R-   R8   (   R.   R4   Ru   R9   Rv   Rw   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_message_from_fileú  s    	c         C   sØ   |  i  } t d ƒ } z | i ƒ  } Wd  | i ƒ  Xd t f d „  ƒ  Y} t i | | ƒ } | t | | ƒ ƒ t d ƒ } z | i ƒ  } Wd  | i ƒ  Xt i | | ƒ } x' | i ƒ  D] } | t | | ƒ ƒ q· Wd  S(   Ns
   msg_01.txtt	   MyMessagec           B   s   e  Z RS(    (   R;   R<   (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRÐ    s   s
   msg_02.txt(	   R�   R%   Rs   R8   R	   R6   RŠ   Rj  t   walk(   R.   R&  R4   Ru   RÐ  R9   RX   (    (    s+   scripts/common/Lib/email/test/test_email.pyt#   test_message_from_string_with_class	  s     	 c         C   sÀ   |  i  } d t f d „  ƒ  Y} t d ƒ } z t i | | ƒ } Wd  | i ƒ  X| t | | ƒ ƒ t d ƒ } z t i | | ƒ } Wd  | i ƒ  Xx' | i ƒ  D] } | t | | ƒ ƒ qŸ Wd  S(   NRÐ  c           B   s   e  Z RS(    (   R;   R<   (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRÐ  #  s   s
   msg_01.txts
   msg_02.txt(   R�   R	   R%   R6   R7   R8   Rj  RÑ  (   R.   R&  RÐ  R4   R9   RX   (    (    s+   scripts/common/Lib/email/test/test_email.pyt!   test_message_from_file_with_class   s    	 c      "   C   s“   t  d ƒ } | i } | i ƒ  |  i | d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! g  ƒ d  S("   NR6   R   R   R   R   R   R   R
   R   R   R   R   t   MIMENonMultipartR   R	   R   R   R   t
   base64mimeRD   t   encoderst   errorst	   generatorRc   t	   iteratorsRº   R7   RŠ   t   mimet   parserR   t
   quoprimimet   utils(   t
   __import__t   __all__t   sortR@   (   R.   t   modulet   all(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test__all__5  s    	
					c         C   sC   t  i  ƒ  } |  i t i t i | ƒ ƒ d  t  i | ƒ d  ƒ d  S(   Ni   (   R:  R@   R   t	   parsedatet
   formatdatet   gmtime(   R.   RC  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_formatdateG  s    c         C   sI   t  i  ƒ  } |  i t i t i | d t ƒƒ d  t  i | ƒ d  ƒ d  S(   NR;  i   (   R:  R@   R   Rä  Rå  Rg   R;  (   R.   RC  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_formatdate_localtimeL  s    c         C   s~   t  i  ƒ  } |  i t i | d t ƒt  i d t  i | ƒ ƒ ƒ |  i t i | d t d t ƒt  i d t  i | ƒ ƒ ƒ d  S(   NR;  s   %a, %d %b %Y %H:%M:%S -0000t   usegmts   %a, %d %b %Y %H:%M:%S GMT(   R:  R@   R   Rå  R�   R>  Ræ  Rg   (   R.   RC  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_formatdate_usegmtR  s    c         C   s   |  i  t i d ƒ d  ƒ d  S(   NR   (   R@   R   Rä  RF   (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parsedate_none[  s    c         C   s&   |  i  t i d ƒ t i d ƒ ƒ d  S(   Ns   Wed,3 Apr 2002 14:58:26 +0800s   Wed, 3 Apr 2002 14:58:26 +0800(   R@   R   Rä  (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parsedate_compact^  s    c         C   s#   |  i  } | t i d ƒ d ƒ d  S(   Ns   25 Feb 2003 13:47:26 -0800iÓ  i   i   i   i/   i   i    i   iÿÿÿÿi€�ÿÿ(
   iÓ  i   i   i   i/   i   i    i   iÿÿÿÿi€�ÿÿ(   R@   R   t   parsedate_tz(   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parsedate_no_dayofweekc  s    	c         C   s#   |  i  } | t i d ƒ d ƒ d  S(   Ns   5 Feb 2003 13:47:26 -0800iÓ  i   i   i   i/   i   i    i   iÿÿÿÿi€�ÿÿ(
   iÓ  i   i   i   i/   i   i    i   iÿÿÿÿi€�ÿÿ(   R@   R   Rí  (   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyt#   test_parsedate_compact_no_dayofweekh  s    	c         C   s×   |  i  } t i d ƒ } t t i | ƒ ƒ } | t i | ƒ d  | d  ƒ | t t i d | ƒ ƒ d ƒ t i d ƒ } t t i | d  ƒ ƒ } | t i | ƒ d  | d  ƒ | t t i d | d  ƒ ƒ d ƒ d  S(   Ns   5 Feb 2003 13:47:26 -0800i   s   %YiÓ  i	   (	   R@   R   Rä  t   intR:  t   mktimeR;  R>  Rí  (   R.   RB   t   timetupR  (    (    s+   scripts/common/Lib/email/test/test_email.pyt+   test_parsedate_acceptable_to_time_functionsm  s    	c         C   s?   |  i  t i d ƒ d ƒ |  i  t i t i d ƒ ƒ d ƒ d  S(   Ns   <>R   (   R   R   (   R@   R   t	   parseaddrt
   formataddr(   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_parseaddr_emptyx  s    c         C   s   |  i  t i d ƒ d ƒ d  S(   Ns   A Silly Persons   person@dom.ains   A Silly Person <person@dom.ain>(   s   A Silly Persons   person@dom.ain(   R@   R   Rõ  (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_noquote_dump|  s    c         C   sW   |  i  t i d ƒ d ƒ d } d } |  i  t i t i | | f ƒ ƒ | | f ƒ d  S(   Ns   A (Very) Silly Persons   person@dom.ains*   "A \(Very\) Silly Person" <person@dom.ain>s   A \(Special\) Person(   s   A (Very) Silly Persons   person@dom.ain(   R@   R   Rõ  Rô  (   R.   t   at   b(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_escape_dump�  s    c         C   sW   |  i  t i d ƒ d ƒ d } d } |  i  t i t i | | f ƒ ƒ | | f ƒ d  S(   Ns   Arthur \Backslash\ Foobars   person@dom.ains.   "Arthur \\Backslash\\ Foobar" <person@dom.ain>(   s   Arthur \Backslash\ Foobars   person@dom.ain(   R@   R   Rõ  Rô  (   R.   Rø  Rù  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_escape_backslashes‰  s    c         C   sy   d } d } d \ } } |  i  t i | ƒ | | f ƒ |  i  t i | ƒ | | f ƒ |  i  t i | | f ƒ | ƒ d  S(   Ns   John X. Doe <jxd@example.com>s   "John X. Doe" <jxd@example.com>s   John X. Does   jxd@example.com(   s   John X. Does   jxd@example.com(   R@   R   Rô  Rõ  (   R.   RÛ   t   yRø  Rù  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_name_with_dot‘  s    c         C   s#   d } |  i  t i | ƒ d ƒ d  S(   Ns   Foo
	Bar <foo@example.com>s   Foo Bars   foo@example.com(   s   Foo Bars   foo@example.com(   R@   R   Rô  (   R.   RÛ   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_multiline_from_commentš  s    c         C   s   |  i  t i d ƒ d ƒ d  S(   Ns   A Silly; Persons   person@dom.ains"   "A Silly; Person" <person@dom.ain>(   s   A Silly; Persons   person@dom.ain(   R@   R   Rõ  (   R.   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_quote_dump   s    c         C   s{   |  i  } | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d ƒ d ƒ d  S(   Nt   hellos   hello
s   hello
s   hellos   hello
s	   hello

(   R@   R   t   fix_eols(   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_fix_eols¥  s    	c         C   sÞ   |  i  } |  i } t ƒ  } t ƒ  } | | d ƒ | | d ƒ | | d ƒ | d | ƒ | d | ƒ | d | ƒ | | d ƒ | | d ƒ | | d ƒ | d | ƒ | d | ƒ | d | ƒ | | | ƒ | | | ƒ d  S(   Ns   us-asciis   US-ASCIIs   Us-AsCiIt   usasciit   USASCIIt   UsAsCiI(   R@   t   failIfEqualR   (   R.   RB   t   net   cset1t   cset2(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_charset_richcomparisons­  s$    				c         C   s/   |  i  } | t i d d g ƒ d d g ƒ d  S(	   Ns   aperson@dom.ain (Al Person)s   Bud Person <bperson@dom.ain>s	   Al Persons   aperson@dom.ains
   Bud Persons   bperson@dom.ain(   s	   Al Persons   aperson@dom.ain(   s
   Bud Persons   bperson@dom.ain(   R@   R   t   getaddresses(   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_getaddressesÁ  s
    		c         C   sm   |  i  } | t i d g ƒ d g ƒ | t i d g ƒ d	 d
 d g ƒ | t i d d g ƒ d d g ƒ d  S(   Ns   foo: ;R   s	   []*-- =~$s   *--s#   "Jason R. Mastaler" <jason@dom.ain>s   Jason R. Mastalers   jason@dom.ain(   R   R   (   R   R   (   R   R   (   R   s   *--(   R   R   (   s   Jason R. Mastalers   jason@dom.ain(   R@   R   R  (   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_getaddresses_nastyÈ  s    				c         C   s4   |  i  } t i d g ƒ } | | d d d ƒ d S(   s(   Test proper handling of a nested comments%   User ((nested comment)) <foo@bar.com>i    i   s   foo@bar.comN(   R@   R   R  (   R.   RB   t   addrs(    (    s+   scripts/common/Lib/email/test/test_email.pyt"   test_getaddresses_embedded_commentÒ  s    	c         C   s?   |  i  } t ƒ  } | i d d d d ƒ| | i ƒ  d ƒ d  S(   Ns   content-dispositionRª   R#   s   foo\wacky"name(   R@   R	   R«   RT   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_utils_quote_unquoteØ  s
    		c         C   s&   t  d ƒ } |  i | i ƒ  d ƒ d  S(   Ns   not a charsetRÚ   (   R   R@   t   get_body_encoding(   R.   RD   (    (    s+   scripts/common/Lib/email/test/test_email.pyt)   test_get_body_encoding_with_bogus_charsetß  s    c         C   st  |  i  } t ƒ  } d | d <| | d d ƒ | i ƒ  } | t | ƒ d ƒ | | d d ƒ t | d ƒ } | | i ƒ  d ƒ | i d d	 | ƒ| | i ƒ  d
 ƒ | | i d t ƒ d ƒ | | d d ƒ t ƒ  } d | d <| i ƒ  } | t | ƒ d ƒ | | d d ƒ t | d ƒ } | | i ƒ  t	 i
 ƒ | i d d	 | ƒ| | i ƒ  d ƒ | | d d ƒ d  S(   Ns   text/plain; charset=UTF-8s   Content-Types   content-typei   i    s   utf-8RÚ   s   hello worldRD   s   aGVsbG8gd29ybGQ=
Rf   s   content-transfer-encodings   text/plain; charset="US-ASCII"s   us-asciiRà   (   R@   R	   RP   RH  R   R  RM   RS   Rg   R   t   encode_7or8bit(   R.   RB   R9   RQ   RD   (    (    s+   scripts/common/Lib/email/test/test_email.pyt-   test_get_body_encoding_with_uppercase_charsetã  s.    		
	
c         C   s8   t  d ƒ } t  d ƒ } |  i | i ƒ  | i ƒ  ƒ d  S(   Ns   us-asciis   US-ASCII(   R   R@   R  (   R.   t   lct   uc(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_charsets_case_insensitiveý  s    c         C   sH   |  i  } |  i d ƒ } t ƒ  } t i | | ƒ | | i ƒ  d ƒ d  S(   Ns
   msg_43.txtsB  multipart/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
(   R5   R:   R    R   R_  R-   (   R.   RB   R9   Rq   (    (    s+   scripts/common/Lib/email/test/test_email.pyt1   test_partial_falls_inside_message_delivery_status	  s    		(    R;   R<   RÍ  RÏ  RÒ  RÓ  Rã  Rç  Rè  Rê  Rë  Rì  Rî  Rï  Ró  Rö  R÷  Rú  Rû  Rý  Rþ  Rÿ  R  R
  R  R  R  R  R  R  R  R  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRÌ  ë  s<   																										
					t   TestIteratorsc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sæ   |  i  } |  i } |  i d ƒ } t i | ƒ } t | ƒ } | t | ƒ d ƒ | t i | ƒ | i	 ƒ  ƒ |  i d ƒ } t i | ƒ } t | ƒ } | t | ƒ d ƒ t
 d ƒ } z  | t i | ƒ | i ƒ  ƒ Wd  | i ƒ  Xd  S(   Ns
   msg_01.txti   s
   msg_02.txti+   s
   msg_19.txt(   R@   R5   R:   R   t   body_line_iteratorRŽ  RH  t   EMPTYSTRINGR   RS   R%   Rs   R8   (   R.   RB   Rq  R9   t   itR‡   R4   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_body_line_iterator0	  s    		 c         C   s‹   |  i  } |  i d ƒ } t i | d ƒ } g  } d } x+ | D]# } | d 7} | i | i ƒ  ƒ q= W| | d ƒ | t i | ƒ d ƒ d  S(   Ns
   msg_04.txtRu   i    i   i   s`   a simple kind of mirror
to reflect upon our own
a simple kind of mirror
to reflect upon our own
(   R@   R:   R   t   typed_subpart_iteratorRî   RS   R  R   (   R.   RB   R9   R  R‡   t   subpartsRX   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_typed_subpart_iteratorD	  s    	 
c         C   sŽ   |  i  } |  i d ƒ } t i | d d ƒ } g  } d } x+ | D]# } | d 7} | i | i ƒ  ƒ q@ W| | d ƒ | t i | ƒ d ƒ d  S(   Ns
   msg_03.txtRu   RÀ   i    i   s%   
Hi,

Do you like this message?

-Me
(   R@   R:   R   R  Rî   RS   R  R   (   R.   RB   R9   R  R‡   R  RX   (    (    s+   scripts/common/Lib/email/test/test_email.pyt(   test_typed_subpart_iterator_default_typeU	  s    	 
(   R;   R<   R  R   R!  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR  /	  s   		t   TestParsersc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   s¡   |  i  } t d ƒ } z t ƒ  i | ƒ } Wd  | i ƒ  X| | d d ƒ | | d d ƒ | | i ƒ  d ƒ |  i | i ƒ  ƒ |  i t	 | i
 ƒ  t ƒ ƒ d  S(   Ns
   msg_02.txtR}   s   ppp-request@zzz.orgR|   s   ppp@zzz.orgs   multipart/mixed(   R@   R%   R   t   parseR8   RH   R¢   R0  R�   Rj  RS   R'   (   R.   RB   R4   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_header_parserk	  s    	c         C   sQ   |  i  } t i d ƒ } | | d d ƒ | | d d ƒ | | i ƒ  d ƒ d  S(   Ns¤   From: 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
R�  s!   the next line has a space on it
 s
   message-idt   spams   Here's the message body
(   R@   R6   RŠ   RS   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_whitespace_continuationy	  s    			c         C   sQ   |  i  } t i d ƒ } | | d d ƒ | | d d ƒ | | i ƒ  d ƒ d  S(   Ns¤   From: 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
R�  s!   the next line has a space on it
 s
   message-idR%  s   Here's the message body
(   R@   R6   RŠ   RS   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt(   test_whitespace_continuation_last_header‹	  s    			c         C   s³   |  i  } t d d d ƒ} z t ƒ  i | ƒ } Wd  | i ƒ  X| t | i ƒ  ƒ d ƒ | i d ƒ } | | i ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i ƒ  d	 ƒ d  S(
   Ns
   msg_26.txtR$   R  i   i    s
   text/plains!   Simple email with attachment.

i   s   application/riscos(   R@   R%   R   R#  R8   RH  RS   RH   (   R.   RB   R4   R9   t   part1t   part2(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_crlf_separation�	  s    	c   	      C   s›  |  i  } |  i } t d ƒ } z t i | ƒ } Wd  | i ƒ  X| | i ƒ  d ƒ | t | i ƒ  ƒ d ƒ | i d ƒ } | | i	 ƒ  d ƒ | | i ƒ  d ƒ | t | i ƒ  ƒ d ƒ | i d ƒ } | | i ƒ  d ƒ | | i	 ƒ  d ƒ | | i ƒ  d ƒ | i d ƒ } | | i	 ƒ  d ƒ | | i ƒ  d ƒ | t | i ƒ  ƒ d ƒ | i d ƒ } | | i ƒ  d ƒ | | i	 ƒ  d ƒ | | i ƒ  d ƒ d  S(	   Ns
   msg_28.txti   i   i    s   message/rfc822s
   text/plains
   message 1
s
   message 2
(
   R@   R5   R%   R6   R7   R8   R0  RH  RS   RH   (	   R.   RB   Rq  R4   R9   R(  t   part1aR)  t   part2a(    (    s+   scripts/common/Lib/email/test/test_email.pyt-   test_multipart_digest_with_extra_mime_headers«	  s0    		c         C   s?   d d d g } t  i t i | ƒ ƒ } |  i | d d ƒ d  S(   Ns$   From: Andrew Person <aperson@dom.ains   Subject: Tests%   Date: Tue, 20 Aug 2002 16:43:45 +1000t   dates   Tue, 20 Aug 2002 16:43:45 +1000(   R6   RŠ   R+   R   R@   (   R.   R‡   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_three_linesÍ	  s
    	c         C   sd   |  i  } d } d } d | | f } t i | ƒ } | | i d ƒ | ƒ | | i d ƒ | ƒ d  S(   NRu   s	   more texts'   Header: %s
Next-Header: %s

Body

R   s   Next-Header(   R@   R6   RŠ   t   get(   R.   RB   t   value1t   value2R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt3   test_strip_line_feed_and_carriage_return_in_headersÕ	  s    	c         C   sz   |  i  } d } t i | ƒ } | t | i ƒ  ƒ d ƒ | i ƒ  } | i ƒ  | | d d d g ƒ | | i ƒ  d ƒ d  S(   Ns(   >From: foo
From: bar
!"#QUX;~: zoo

bodyi   s   !"#QUX;~s   >FromRz   t   body(   R@   R6   RŠ   RH  RÕ   Rà  RS   (   R.   RB   R  R9   RÕ   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2822_header_syntaxà	  s    	
c         C   s;   |  i  } d } t i | ƒ } | t | i ƒ  ƒ d ƒ d  S(   Ns<   >From foo@example.com 11:25:53
From: bar
!"#QUX;~: zoo

bodyi    (   R@   R6   RŠ   RH  RÕ   (   R.   RB   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt(   test_rfc2822_space_not_allowed_in_headerê	  s    	c         C   sa   |  i  } d } t i | ƒ } | i ƒ  } | i ƒ  | | d d d g ƒ | | i ƒ  d ƒ d  S(   Ns7   A: first header
B: second header
CC: third header

bodyt   At   Bt   CCR4  (   R@   R6   RŠ   RÕ   Rà  RS   (   R.   RB   R  R9   t   headers(    (    s+   scripts/common/Lib/email/test/test_email.pyt!   test_rfc2822_one_character_headerð	  s    	
(   R;   R<   R$  R&  R'  R*  R-  R/  R3  R5  R6  R;  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR"  j	  s   					"			
	t
   TestBase64c           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sâ   |  i  } | t i d ƒ t t i d d d ƒƒ ƒ x§ t d ƒ D]™ } | d j o
 d } nc | d j o
 d } nL | d j o
 d	 } n5 | d
 j o
 d } n | d j o
 d } n d } | t i d | ƒ | ƒ qA Wd  S(   NR   t   eolR   i   i    i   i   i   i   i	   i   i   i   RÛ   (   R@   R   t
   base64_lenRH  Rè   Rû   (   R.   RB   t   sizet   bsize(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_lenü	  s"    	  
 
 
 
 
c         C   sk   |  i  } | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d d ƒ d ƒ | t i d d ƒ d ƒ d  S(   NR   s   aGVsbG8=R   t   Xs   aGVsbG8NCndvcmxk
t   helloXworld(   R@   R   Rf   (   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_decode	
  s
    	c         C   s®   |  i  } | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d d ƒ d ƒ | t i d d	 d
 d ƒd ƒ | t i d d	 d
 d d d ƒd ƒ d  S(   NR   R   s	   aGVsbG8=
s   hello
s	   aGVsbG8K
i    s   aGVsbG8NCg==
s   xxxx i   R   i(   sŒ   eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IA==
R=  s   
s�   eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IA==
(   R@   R   Rè   (   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_encode
  s    	c         C   s®   |  i  } t i } | | d ƒ d ƒ | | d ƒ d ƒ | | d d d ƒd ƒ | | d d t ƒd	 ƒ | | d
 d d d ƒd ƒ | | d
 d d d d d ƒd ƒ d  S(   NR   s   =?iso-8859-1?b?aGVsbG8=?=s   hello
worlds!   =?iso-8859-1?b?aGVsbG8NCndvcmxk?=RD   s
   iso-8859-2s   =?iso-8859-2?b?aGVsbG8=?=t	   keep_eolss!   =?iso-8859-1?b?aGVsbG8Kd29ybGQ=?=s   xxxx i   R   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?=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?=(   R@   R   t   header_encodeRg   (   R.   RB   t   he(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_header_encode&
  s    		(   R;   R<   RA  RD  RE  RI  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR<  û	  s   			t
   TestQuopric           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   s  g  } t  t d ƒ t d ƒ d ƒ D] } | t | ƒ q$ ~ g  } t  t d ƒ t d ƒ d ƒ D] } | t | ƒ qa ~ g  } t  t d ƒ t d ƒ d ƒ D] } | t | ƒ qŸ ~ d d	 d
 d d d g |  _ g  } t  d ƒ D]- } t | ƒ |  i j o | t | ƒ qæ qæ ~ |  _ t |  i ƒ t |  i ƒ d j p t ‚ g  } t  t d ƒ t d ƒ d ƒ D] } | t | ƒ qm~ d g |  _ |  i i d ƒ g  } t  d ƒ D]- } t | ƒ |  i j o | t | ƒ q´q´~ |  _	 t |  i ƒ t |  i	 ƒ d j p t ‚ d  S(   NRø  t   zi   R7  t   Zt   0t   9t   !t   *R7  R6  t   /R   i   t   ~s   	t   =(
   Rû   t   ordt   chrt   hlitt   hnonRH  t   AssertionErrort   blitt   removet   bnon(   R.   RU   RÛ   t   _[2]t   _[3]t   _[4]t   _[5]t   _[6](    (    s+   scripts/common/Lib/email/test/test_email.pyR  D
  s    ¹J*JJc         C   sX   x' |  i  D] } |  i t i | ƒ ƒ q
 Wx' |  i D] } |  i t i | ƒ ƒ q4 Wd  S(   N(   RV  R¢   R   t   header_quopri_checkRW  R�   (   R.   t   c(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_header_quopri_checkP
  s    
 
 c         C   sX   x' |  i  D] } |  i t i | ƒ ƒ q
 Wx' |  i D] } |  i t i | ƒ ƒ q4 Wd  S(   N(   RY  R¢   R   t   body_quopri_checkR[  R�   (   R.   Rb  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_body_quopri_checkV
  s    
 
 c      
   C   s­   |  i  } t i } t i } x= d	 D]5 } | | | ƒ t | | d d d d ƒƒ d ƒ q" Wx$ |  i D] } | | | ƒ d ƒ qe Wx$ |  i D] } | | | ƒ d ƒ qŒ Wd  S(
   NR   s
   h@e@l@l@o@RD   R   R=  i   i   i   (   s   hellos
   h@e@l@l@o@(   R@   R   t   header_quopri_lenRG  RH  RV  RW  (   R.   RB   t   hqlt   encRv   Rb  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_header_quopri_len\
  s    			 3
 
 c         C   sd   |  i  } t i } x$ |  i D] } | | | ƒ d ƒ q Wx$ |  i D] } | | | ƒ d ƒ qC Wd  S(   Ni   i   (   R@   R   t   body_quopri_lenRY  R[  (   R.   RB   t   bqlRb  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_body_quopri_lenh
  s    		
 
 c         C   sI   xB t  d ƒ D]4 } t | ƒ } |  i t i t i | ƒ ƒ | ƒ q Wd  S(   Ni   (   Rû   RU  R@   R   Rœ   t   quote(   R.   RÛ   Rb  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_quote_unquote_idempotentp
  s     c         C   sÁ   |  i  } t i } | | d ƒ d ƒ | | d ƒ d ƒ | | d d d ƒd ƒ | | d d t ƒd	 ƒ | | d
 ƒ d ƒ | | d d d d ƒd ƒ | | d d d d d d ƒd ƒ d  S(   NR   s   =?iso-8859-1?q?hello?=s   hello
worlds!   =?iso-8859-1?q?hello=0D=0Aworld?=RD   s
   iso-8859-2s   =?iso-8859-2?q?hello?=RF  s   =?iso-8859-1?q?hello=0Aworld?=s   helloÇtheres   =?iso-8859-1?q?hello=C7there?=s   xxxx i   R   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_?=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_?=(   R@   R   RG  Rg   (   R.   RB   RH  (    (    s+   scripts/common/Lib/email/test/test_email.pyRI  u
  s    		c         C   sk   |  i  } | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d d ƒ d ƒ | t i d d ƒ d ƒ d  S(   NR   R   RB  s   hello
worldRC  (   R@   R   Rf   (   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyRD  �
  s
    	c         C   sÄ   |  i  } | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d ƒ d ƒ | t i d d ƒ d ƒ | t i d d d d	 ƒd
 ƒ | t i d d d d	 d d ƒd ƒ | t i d ƒ d ƒ d  S(   NR   R   s   hello
worlds   hello
worldi    s   xxxx i   R   i(   sj   xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx=
 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx=
x xxxx xxxx xxxx xxxx=20R=  s   
sl   xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx=
 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx=
x xxxx xxxx xxxx xxxx=20s   one line

two line(   R@   R   Rè   (   R.   RB   (    (    s+   scripts/common/Lib/email/test/test_email.pyRE  –
  s    		(   R;   R<   R  Rc  Re  Ri  Rl  Rn  RI  RD  RE  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRJ  C
  s   								t   TestCharsetc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s8   d d k  l } y | i d =Wn t j
 o n Xd  S(   Niÿÿÿÿ(   R   t   fake(   R6   R   t   CHARSETSRØ   (   R.   t   CharsetModule(    (    s+   scripts/common/Lib/email/test/test_email.pyt   tearDown³
  s
    c         C   so   |  i  } t d ƒ } d } | i | ƒ } | | | i | ƒ ƒ d } | i | ƒ } | | | i | ƒ ƒ d  S(   Ns   us-asciis   Hello World!s
   ¤¢¤¤¤¦¤¨¤ª(   R@   R   t   to_splittablet   from_splittable(   R.   RB   Rb  Rv   t   sp(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_idempotentº
  s    	c         C   s  |  i  } t d ƒ } | d | i d ƒ ƒ t d ƒ } | d | i d ƒ ƒ t d ƒ } | d | i d ƒ ƒ t d ƒ } y3 | d	 | i d
 ƒ ƒ | d
 | i d
 t ƒ ƒ Wn t j
 o n Xd d k l } | i d | i d  ƒ t d ƒ } | d | i d ƒ ƒ d  S(   Ns
   iso-8859-1s   hello w=F6rlds   hello wörlds   utf-8s   aGVsbG8gd29ybGQ=
s   hello worlds   us-asciis   euc-jps   $B5FCO;~IW(Bs   µÆÃÏ»þÉ×iÿÿÿÿ(   R   Rp  (	   R@   R   t   body_encodeR�   t   LookupErrorR6   t   add_charsett   QPRF   (   R.   RB   Rb  Rr  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_body_encodeÆ
  s&    	c         C   s<   t  d ƒ } |  i t | ƒ d ƒ |  i t i t  d ƒ d  S(   Nu   us-asciis   us-asciis   ascÿii(   R   R@   R'   Ra   R   t   CharsetError(   R.   RD   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_unicode_charset_nameä
  s    (   R;   R<   Rs  Rw  R|  R~  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyRo  ²
  s   			t
   TestHeaderc           B   s†   e  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 „  Z RS(   c         C   sL   |  i  } t d ƒ } | | i ƒ  d ƒ | i d ƒ | | i ƒ  d ƒ d  S(   Ns   Hello World!s    Goodbye World!s   Hello World!  Goodbye World!(   R5   R   Rè   Rî   (   R.   RB   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_simpleí
  s
    	c         C   sL   |  i  } t d ƒ } | | i ƒ  d ƒ | i d ƒ | | i ƒ  d ƒ d  S(   Ns   Hello World!s   Goodbye World!s   Hello World! Goodbye World!(   R5   R   Rè   Rî   (   R.   RB   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_simple_surpriseô
  s
    	c         C   s)   d } |  i  t | ƒ | d  f g ƒ d  S(   Ns   no decoding needed(   R@   R   RF   (   R.   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_header_needs_no_decodingû
  s    c         C   sU   t  d d d ƒ} x< | i d d ƒ i d ƒ D] } |  i t | ƒ d j ƒ q. Wd  S(   Ns¶  I 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   iL   t
   splitcharsR   s   
 (   R   Rè   R„   R�   RH  (   R.   Rê   t   l(    (    s+   scripts/common/Lib/email/test/test_email.pyt	   test_longÿ
  s
    		 c         C   s  |  i  } t d ƒ } t d ƒ } t d ƒ } d } d } d i d ƒ } t | | ƒ } | i | | ƒ | i | | ƒ | i ƒ  }	 | |	 d ƒ | t |	 ƒ | d f | d f | d f g ƒ t | ƒ }
 | |
 i d ƒ d ƒ t t |	 ƒ ƒ } | | |	 ƒ d  S(	   Ns
   iso-8859-1s
   iso-8859-2s   utf-8s©   Die 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. s;   Finanèni metropole se hroutily pod tlakem jejich dùvtipu.. 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?=sâ  Die 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.ã€�ã�¨è¨€ã�£ã�¦ã�„ã�¾ã�™ã€‚(   R5   R   Rè   R   Rî   R   R~  R   (   R.   RB   Rw   Rï   Rð   Rñ   Rò   Ró   Rê   Rh  t   ustrt   newh(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_multilingual  s*    	c         C   sF   |  i  } t ƒ  } | | d ƒ | i d t d ƒ ƒ | | d ƒ d  S(   NR   Rk   s
   iso-8859-1s   =?iso-8859-1?q?foo?=(   R5   R   Rî   R   (   R.   RB   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_header_ctor_default_args6  s
    		c         C   s‚   |  i  } d } t | ƒ } | | i ƒ  d ƒ t | d d ƒ} | | i ƒ  d ƒ t | d d d d ƒ} | | i ƒ  | ƒ d  S(   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 behaviorRì   Rí   s}   A very long line that must get split to something other than at the
 76th character boundary to test the non-default behaviorR   i   (   R5   R   Rè   (   R.   RB   Ré   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_explicit_maxlinelen=  s    	c         C   sN   |  i  } d } t | ƒ } | | d g ƒ t | ƒ } | | | i ƒ  ƒ d  S(   NR   (   s   helloN(   R@   R   RF   R   Rè   (   R.   RB   Rv   RÛ   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_us_ascii_headerK  s    	c         C   s3   |  i  } t ƒ  } | i d d ƒ | | d ƒ d  S(   NR   s
   iso-8859-1s   =?iso-8859-1?q?hello?=(   R@   R   Rî   (   R.   RB   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_string_charsetS  s    		c         C   sQ   |  i  } t d d ƒ } | | i ƒ  d ƒ t d d ƒ } | | i ƒ  d ƒ d  S(   Nu   pÃ¶stals   utf-8s   =?utf-8?q?p=C3=B6stal?=u   è�Šåœ°æ™‚å¤«s   =?utf-8?b?6I+K5Zyw5pmC5aSr?=(   R@   R   Rè   (   R.   RB   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_utf8_shortestb  s
    	c         C   s�   |  i  } |  i } d } | t t | ƒ t ƒ  } | t | i | ƒ | t t | d d ƒƒ | ƒ | i | d d ƒ| t | ƒ | ƒ d  S(   Ns0   Ynwp4dUEbay Auction Semiar- No Charge – Earn BigR×  t   replace(   Ra   R@   t   UnicodeErrorR   Rî   R'   (   R.   RJ  RB   RÛ   Rê   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_bad_8bit_headeri  s    			c         C   sq   |  i  } t ƒ  } | i d d ƒ | i d ƒ | i ƒ  } | | d ƒ t t | ƒ ƒ } | | i ƒ  | ƒ d  S(   NR   s
   iso-8859-1t   worlds   =?iso-8859-1?q?hello?= world(   R@   R   Rî   Rè   R   R   (   R.   RB   Rê   Rv   (    (    s+   scripts/common/Lib/email/test/test_email.pyt    test_encoded_adjacent_nonencodedt  s    		c         C   sT   |  i  } d } t | ƒ } | | d d d	 g ƒ t | ƒ } | | i ƒ  d ƒ d  S(
   NsG   Subject: =?koi8-r?b?8NLP18XSy8EgzsEgxsnOwczYztk=?= =?koi8-r?q?=CA?= zz.s   Subject:s   ðÒÏ×ÅÒËÁ ÎÁ ÆÉÎÁÌØÎÙÊs   koi8-rs   zz.s6   Subject: =?koi8-r?b?8NLP18XSy8EgzsEgxsnOwczYztnK?= zz.(   s   Subject:N(   s   ðÒÏ×ÅÒËÁ ÎÁ ÆÉÎÁÌØÎÙÊs   koi8-r(   s   zz.N(   R@   R   RF   R   Rè   (   R.   RB   Rv   t   partst   hdr(    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_whitespace_eater~  s    	c         C   s&   |  i  } d } | t i t | ƒ d  S(   NsX   Subject: =?EUC-KR?B?CSixpLDtKSC/7Liuvsax4iC6uLmwMcijIKHaILzSwd/H0SC8+LCjwLsgv7W/+Mj3IQ?=(   Ra   R   Rb   R   (   R.   RJ  Rv   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_broken_base64_header‡  s    	(   R;   R<   R€  R�  R‚  R…  Rˆ  R‰  RŠ  R‹  RŒ  R�  R�  R’  R•  R–  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR  ì
  s   					1							
		t   TestRFC2231c           B   s×   e  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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sN   |  i  } |  i d ƒ } | | i d ƒ d ƒ | | i d d t ƒd	 ƒ d  S(
   Ns
   msg_29.txtt   titles   us-asciit   ens%   This is even more ***fun*** isn't it!Rœ   s'   "This is even more ***fun*** isn't it!"(   s   us-asciis   ens%   This is even more ***fun*** isn't it!(   s   us-asciis   ens'   "This is even more ***fun*** isn't it!"(   R@   R:   RI   R�   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyR™   �  s    	c         C   s²   |  i  } t ƒ  } | i d d d d ƒ| | i d ƒ d
 ƒ | i d d d d d d ƒ| | i d ƒ d ƒ |  i d ƒ } | i d d d d d d ƒ| | i ƒ  d	 ƒ d  S(   NR˜  s%   This is even more ***fun*** isn't it!RD   s   us-asciiR   t   languageR™  s
   msg_01.txts$  Return-Path: <bbb@zzz.org>
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
(   s   us-asciiR   s%   This is even more ***fun*** isn't it!(   s   us-asciis   ens%   This is even more ***fun*** isn't it!(   R@   R	   R¥   RI   R:   Rƒ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyR¦   ˜  s    		c         C   sz   |  i  } |  i d ƒ } | i d d d d d d ƒ| i d d	 d d d d ƒ| i d d
 d ƒ| | i ƒ  d ƒ d  S(   Ns
   msg_01.txtRk   R�   RD   s   us-asciiRš  R™  R˜  s%   This is even more ***fun*** isn't it!Rc   s   Content-Types&  Return-Path: <bbb@zzz.org>
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
(   R5   R:   R¥   R§   Rƒ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyR©   ½  s    	c         C   s/   |  i  } |  i d ƒ } | | i ƒ  d ƒ d  S(   Ns
   msg_32.txts   us-ascii(   R@   R:   RÝ   (   R.   RB   R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt    test_rfc2231_get_content_charsetÛ  s    	c         C   sN   d } t  i | ƒ } | i d ƒ } |  i t | t ƒ ƒ |  i | d ƒ d  S(   Ns  Content-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

t   NAMEsM   file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEMP_nsmail.htm(   R6   RŠ   RI   R¢   Rj  t   tupleR@   (   R.   R  R9   t   param(    (    s+   scripts/common/Lib/email/test/test_email.pyt#   test_rfc2231_no_language_or_charsetà  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Ns�   Content-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(   R6   RŠ   R@   RT   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt/   test_rfc2231_no_language_or_charset_in_filenameî  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Ns�   Content-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(   R6   RŠ   R@   RT   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt7   test_rfc2231_no_language_or_charset_in_filename_encodedú  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Ns�   Content-Disposition: inline;
	filename*0="''This%20is%20even%20more%20";
	filename*1*="%2A%2A%2Afun%2A%2A%2A%20";
	filename*2="is it not.pdf"

s1   This%20is%20even%20more%20***fun*** is it not.pdf(   R6   RŠ   R@   RT   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2231_partly_encoded  s
    	c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   NsŒ   Content-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(   R6   RŠ   R@   RT   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2231_partly_nonencoded  s
    	c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Ns˜   Content-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(   R6   RŠ   R@   R\   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt/   test_rfc2231_no_language_or_charset_in_boundary   s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Nsˆ   Content-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(   R6   RŠ   R@   RÝ   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt.   test_rfc2231_no_language_or_charset_in_charset,  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Ns—   Content-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(   R6   RŠ   R@   RT   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt%   test_rfc2231_bad_encoding_in_filename9  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d  ƒ d  S(   Ns:   Content-Type: text/plain; charset*=bogus''utf-8%E2%80%9D

(   R6   RŠ   R@   RÝ   RF   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt$   test_rfc2231_bad_encoding_in_charsetE  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d  ƒ d  S(   Ns:   Content-Type: text/plain; charset*=ascii''utf-8%E2%80%9D

(   R6   RŠ   R@   RÝ   RF   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt%   test_rfc2231_bad_character_in_charsetO  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Ns›   Content-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ï¿½(   R6   RŠ   R@   RT   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt&   test_rfc2231_bad_character_in_filenameY  s    c         C   s/   d } t  i | ƒ } |  i | i ƒ  d ƒ d  S(   Ns^   Content-Transfer-Encoding: 8bit
Content-Disposition: inline; filename*=X-UNKNOWN''myfile.txt

s
   myfile.txt(   R6   RŠ   R@   RT   (   R.   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2231_unknown_encodinge  s    c         C   sa   |  i  } d } t i | ƒ } | i d ƒ \ } } } | | d  ƒ | | d  ƒ | | d ƒ d  S(   NsJ   Content-Type: application/x-foo;
	name*0*="Frank's"; name*1*=" Document"

Rš   s   Frank's Document(   R@   R6   RŠ   RI   RF   (   R.   RB   R  R9   RD   Rš  Rv   (    (    s+   scripts/common/Lib/email/test/test_email.pyt-   test_rfc2231_single_tick_in_filename_extendedn  s    	c         C   sN   d } t  i | ƒ } | i d ƒ } |  i t | t ƒ ƒ |  i | d ƒ d  S(   NsG   Content-Type: application/x-foo; name*0="Frank's"; name*1=" Document"

Rš   s   Frank's Document(   R6   RŠ   RI   R¢   Rj  R�  R@   (   R.   R  R9   Rž  (    (    s+   scripts/common/Lib/email/test/test_email.pyt$   test_rfc2231_single_tick_in_filename{  s
    c         C   sa   |  i  } d } t i | ƒ } | i d ƒ \ } } } | | d ƒ | | d ƒ | | d ƒ d  S(   NsY   Content-Type: application/x-foo;
	name*0*="us-ascii'en-us'Frank's"; name*1*=" Document"

Rš   s   us-asciis   en-uss   Frank's Document(   R@   R6   RŠ   RI   (   R.   RB   R  R9   RD   Rš  Rv   (    (    s+   scripts/common/Lib/email/test/test_email.pyt!   test_rfc2231_tick_attack_extended…  s    	c         C   sN   d } t  i | ƒ } | i d ƒ } |  i t | t ƒ ƒ |  i | d ƒ d  S(   NsW   Content-Type: application/x-foo;
	name*0="us-ascii'en-us'Frank's"; name*1=" Document"

Rš   s   us-ascii'en-us'Frank's Document(   R6   RŠ   RI   R¢   Rj  R�  R@   (   R.   R  R9   Rž  (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2231_tick_attack’  s
    c         C   s8   |  i  } d } t i | ƒ } | | i d ƒ d ƒ d  S(   Ns:   Content-Type: application/x-foo; name="Frank's Document"

Rš   s   Frank's Document(   R@   R6   RŠ   RI   (   R.   RB   R  R9   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   test_rfc2231_no_extended_values�  s    	c         C   sa   |  i  } d } t i | ƒ } | i d ƒ \ } } } | | d ƒ | | d ƒ | | d ƒ d  S(   Nsi   Content-Type: application/x-foo;
	name*0*="us-ascii'en-us'My";
	name*1=" Document";
	name*2*=" For You"

Rš   s   us-asciis   en-uss   My Document For You(   R@   R6   RŠ   RI   (   R.   RB   R  R9   RD   Rš  Rv   (    (    s+   scripts/common/Lib/email/test/test_email.pyt,   test_rfc2231_encoded_then_unencoded_segments¦  s    	c         C   sa   |  i  } d } t i | ƒ } | i d ƒ \ } } } | | d ƒ | | d ƒ | | d ƒ d  S(   Nsi   Content-Type: application/x-foo;
	name*0="us-ascii'en-us'My";
	name*1*=" Document";
	name*2*=" For You"

Rš   s   us-asciis   en-uss   My Document For You(   R@   R6   RŠ   RI   (   R.   RB   R  R9   RD   Rš  Rv   (    (    s+   scripts/common/Lib/email/test/test_email.pyt,   test_rfc2231_unencoded_then_encoded_segmentsµ  s    	(   R;   R<   R™   R¦   R©   R›  RŸ  R   R¡  R¢  R£  R¤  R¥  R¦  R§  R¨  R©  Rª  R«  R¬  R­  R®  R¯  R°  R±  (    (    (    s+   scripts/common/Lib/email/test/test_email.pyR—  �  s.   		%											
	
					
					c          C   sO   t  i t }  g  } t |  ƒ D]* } | i d ƒ o | t |  | ƒ q q ~ S(   NRù   (   Rn   t   modulesR;   t   dirR…   t   getattr(   t   modRU   Rš   (    (    s+   scripts/common/Lib/email/test/test_email.pyt   _testclassesÆ  s    c          C   s:   t  i ƒ  }  x' t ƒ  D] } |  i t  i | ƒ ƒ q W|  S(   N(   t   unittestt	   TestSuiteR¶  t   addTestt	   makeSuite(   t   suitet	   testclass(    (    s+   scripts/common/Lib/email/test/test_email.pyR»  Ë  s
    
 c          C   s"   x t  ƒ  D] }  t |  ƒ q
 Wd  S(   N(   R¶  R   (   R¼  (    (    s+   scripts/common/Lib/email/test/test_email.pyt	   test_mainÒ  s    
 t   __main__t   defaultTestR»  (O   R   Rn   R:  RÚ   R(   R·  t   warningst	   cStringIOR    R6   t   email.CharsetR   t   email.HeaderR   R   R   t   email.ParserR   R   t   email.GeneratorR   R   t   email.MessageR	   t   email.MIMEAudioR
   t   email.MIMETextR   t   email.MIMEImageR   t   email.MIMEBaseR   t   email.MIMEMessageR   t   email.MIMEMultipartR   R   R   R   R   R   R   t   test.test_supportR   R   t
   email.testR   R!   R+   R  Rú   R%   t   TestCaseR&   R=   Rß   Rå   R  R  R)  R-  R3  Rf  R{  R‰  R²  RÌ  R  R"  R<  RJ  Ro  R  R—  R¶  R»  R½  R;   t   main(    (    (    s+   scripts/common/Lib/email/test/test_email.pyt   <module>   s~   ÿ »ÿ B"1+ÿ |s/ÿ >™ÿ E;‘Ho:£ÿ 8			