mò
­fIc           @   s»   d  k  Z  d  k Z d  k Z d  k Z d k l Z d k l Z d Z d f  d „  ƒ  YZ	 e
 d ƒ d j o" e Z d „  Z e Z d	 „  Z n d
 e i f d „  ƒ  YZ d „  Z d „  Z d  S(   N(   s   test_support(   s   StringIOi    t   TestBasec           B   s…   t  Z d Z d  Z d Z d  Z d Z d Z d  Z	 d „  Z
 d „  Z d „  Z e i d j o d „  Z d	 „  Z n d
 „  Z d „  Z RS(   Nt    i   i    c         C   sN   |  i d  j o t i |  i ƒ |  _ n |  i \ |  _ |  _ |  _ |  _	 d  S(   N(
   t   selft   codect   Nonet   codecst   lookupt   encodingt   encodet   decodet   readert   writer(   R   (    (    t=   /mit/python/lib/python2.4/test/test_multibytecodec_support.pyt   setUp   s    c         C   s¢   x› t  g  } |  i D] } | t | ƒ i ƒ  q ~ Œ  D]c \ } } |  i	 | ƒ d } |  i | | i	 d ƒ ƒ |  i o! |  i | |  i | ƒ d ƒ q7 q7 Wd  S(   Ni    s   utf-8(   t   zipt   _[1]R   t   tstringt   ft   StringIOt	   readlinest   nativet   utf8R	   t   ut   assertEqualt   roundtriptestR   (   R   R   R   R   R   R   (    (    R   t   test_chunkcoding   s    7 
c         C   s”   x |  i D]‚ \ } } } t | ƒ t d ƒ j o |  i } n
 |  i } | o' | | | ƒ d } |  i
 | | ƒ q
 |  i t | | | ƒ q
 Wd  S(   NR   i    (   R   t
   codectestst   sourcet   schemet   expectedt   typeR	   t   funcR   t   resultR   t   assertRaisest   UnicodeError(   R   R   R    R   R   R   (    (    R   t   test_errorhandle&   s    
 	i  c         C   s<   |  i o d  Sn d } |  i |  i | d ƒ d d ƒ d  S(   Nu   à¬“à¬£à­  nd eggst   xmlcharrefreplacei    s   &#2835;&#2851;&#2912; nd eggs(   R   t   has_iso10646t   sR   R   (   R   R&   (    (    R   t   test_xmlcharrefreplace3   s
    
c            s  |  i o d  Sn d  k } h  ‰  x~ | i i ƒ  D]m \ } } t | ƒ d j o$ |  i	 | ƒ d ˆ  | i	 d ƒ <q1 |  i	 | ƒ d ˆ  t
 t | d d !ƒ ƒ <q1 W‡  d †  } t i d | ƒ |  i o |  i \ } } n d } d	 } |  i |  i | d ƒ d | ƒ d  S(
   Ni   i    s   latin-1i   iÿÿÿÿc            s§   t  |  t ƒ p t d |  ƒ ‚ n g  } xd |  i |  i |  i !D]L } y | i	 d ˆ  | ƒ WqA t j
 o | i	 d t | ƒ ƒ qA XqA Wd i | ƒ |  i f S(   Ns   don't know how to handle %ru   &%s;u   &#%d;u    (   t
   isinstancet   exct   UnicodeEncodeErrort	   TypeErrort   lt   objectt   startt   endt   ct   appendt   namest   KeyErrort   ordt   join(   R)   R0   R,   (   R2   (    R   t   xmlcharnamereplaceJ   s      s   test.xmlcharnamereplaceu   Â«â„œÂ» = âŒ©áˆ´âŒªs*   &laquo;&real;&raquo; = &lang;&#4660;&rang;(   R   R%   t   htmlentitydefsR2   t
   entitydefst   itemst   keyt   valuet   lenR	   t   unichrt   intR6   R   t   register_errort   xmlcharnametestt   sint   soutR   R   (   R   RB   R7   R6   R;   R:   RA   R2   (    (   R2   R   t   test_customreplace=   s$    
	 $.

 c         C   s  t  i d ƒ } xð d d d g D]ß } xÖ d  d g t d d ƒ d d	 d
 d d g D]¨ } |  i t	 |  i
 d ƒ ƒ } | t	 ƒ  ƒ } t | | ƒ } xH | | ƒ } | p Pn | d j o | i | ƒ q• | i | ƒ q• W|  i | i ƒ  |  i
 d ƒ qR Wq Wd  S(   Ns   utf-8t   readt   readlineR   iÿÿÿÿi   i!   i@   i€   i   i   i   i    (   R   t	   getwritert
   UTF8Writert   nameR   t   ranget   sizehintR   R
   R   R   t   istreamt   ostreamt   getattrR   t   datat
   writelinest   writeR   t   getvalue(   R   RJ   RH   RG   RK   RL   R   RN   (    (    R   t   test_streamreader`   s"     -   c   	      C   s+  t  o
 d } n d } t i d ƒ } xþ | D]ö } xí d  g t d d ƒ d d d	 d
 d g D]Â } | t	 |  i d ƒ ƒ } |  i t	 ƒ  ƒ } t | | ƒ } xb | d  j	 o | | ƒ } n
 | ƒ  } | p Pn | d j o | i | ƒ q  | i | ƒ q  W|  i | i ƒ  |  i d ƒ q] Wq- Wd  S(   NRD   RE   R   s   utf-8i   i!   i@   i€   i   i   i   i    (   s   reads   readlines	   readlines(   s   read(   t   __cjkcodecs__t	   readfuncsR   t	   getreadert
   UTF8ReaderRH   R   RI   RJ   R   R   R   RK   R   RL   RM   R   RN   RO   RP   R   RQ   (	   R   RV   RJ   RH   RT   RK   RL   RN   R   (    (    R   t   test_streamwriters   s,    
 *   	(   t   __name__t
   __module__R   R   R   R   R   R   R%   R@   R   R   R#   t   syst
   hexversionR'   RC   RR   RW   (    (    (    R   R       s   				
#	u   ð’…i   c         C   sK   |  d j o0 t d |  d d ?ƒ t d |  d d @ƒ Sn t |  ƒ Sd  S(   Ni   i Ø  i
   i Ü  iÿ  (   t   vt   _unichr(   R\   (    (    R   R=   ‘   s    0c         C   sQ   t  |  ƒ d j o0 d t |  d ƒ d d >t |  d ƒ d Sn t |  ƒ Sd  S(   Ni   i   i    i Ø  i
   i   i Ü  (   R<   R0   t   _ordR4   (   R0   (    (    R   R4   ˜   s    0t   TestBase_Mappingc           B   s>   t  Z g  Z g  Z g  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         O   sS   t  i i |  | | Ž t i i |  i	 ƒ p# t
 i d |  i	 |  i f ƒ ‚ n d  S(   Ns   %s not found, download from %s(   t   unittestt   TestCaset   __init__R   t   argst   kwt   ost   patht   existst   mapfilenamet   test_supportt   TestSkippedt
   mapfileurl(   R   Rc   Rd   (    (    R   Rb   ¤   s    c         C   s½  d „  } h  } x§t |  i ƒ D]–} | p Pn | i d ƒ d i ƒ  i ƒ  } t	 | ƒ d j o q n t
 | d ƒ } | d j o t | d @ƒ } nÇ | d j oF t | d ?ƒ t | d	 ?d @ƒ t | d
 ?d @ƒ t | d @ƒ } nt | d j o4 t | d	 ?ƒ t | d
 ?d @ƒ t | d @ƒ } n3 | d j o" t | d
 ?ƒ t | d @ƒ } n q | | d ƒ } t | ƒ d j p | i | ƒ o q n | | | <|  i | | ƒ q Wd  S(   Nc         C   s(   d i  t t t t |  i d ƒ ƒ ƒ ƒ S(   Nu    t   +(   R5   t   mapR=   t   evalR&   t   split(   R&   (    (    R   t   <lambda>«   s    t   #i    i   i   iÿ   i   i   i   i   i   i   i   iýÿ  (   t   unichrst   urt_wat   openR   Rh   t   lineRo   t   stripRN   R<   Rn   t   csetvalt   chrt   csetcht   unichR4   t   has_keyt
   _testpoint(   R   Rz   Rw   Rs   Rr   RN   Ru   Ry   (    (    R   t   test_mapping_fileª   s0    	 F4"#
c         C   s%   x |  i D] } |  i | Œ  q
 Wd  S(   N(   R   t   supmapst   mappingR|   (   R   R   (    (    R   t   test_mapping_supplementalÊ   s    
 c         C   sp   | | f |  i j o  |  i | i |  i ƒ | ƒ n | | f |  i j o  |  i t | |  i ƒ | ƒ n d  S(   N(	   Ry   Rz   R   t   pass_enctestR   R   R   t   pass_dectestt   unicode(   R   Ry   Rz   (    (    R   R|   Î   s     (	   RX   RY   R   R‚   R~   Rb   R}   R€   R|   (    (    (    R   R_   Ÿ   s   		 	c         C   s{   t  oX t t i i d |  ƒ d ƒ i ƒ  } t t i i d |  ƒ d ƒ i ƒ  } | | f Sn d k	 l
 } | i |  Sd  S(   Nt   sampletextss   .txts   .utf8(   s   cjkencodings_test(   RS   Rt   Re   Rf   R5   R   RD   t   etxtt   utxtt   testt   cjkencodings_testt
   teststring(   R   Rˆ   R…   R†   (    (    R   t   load_teststringÔ   s    %%c          G   s˜   x‘ |  D]v } xm t i i t i i g D]? } t i i | | i ƒ } t i i	 | ƒ o | | _ Pq& q& Wt
 t i | i _ Pq Wt t i | i _ d  S(   N(   t   casest   caseRe   Rf   t   curdirt   pardirR5   Rh   t   fnRg   t   TrueRZ   t   modulesRY   t   skip_expectedt   False(   R‹   RŒ   Rf   R   (    (    R   t   register_skip_expectedÝ   s      		(   RZ   R   t   os.pathRe   R`   R‡   Ri   R   RS   R    R<   R=   R]   R4   R^   Ra   R_   RŠ   R”   (   Ri   R    R”   R   R`   R^   RZ   R_   R   R=   RS   RŠ   Re   R4   R]   (    (    R   t   ?   s   	€	5		