ó
­«Y]c           @   sž  d  d l  m Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 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 Z
 d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d  e j f d! „  ƒ  YZ d" e j f d# „  ƒ  YZ d$ e j f d% „  ƒ  YZ d& e j f d' „  ƒ  YZ d( e j f d) „  ƒ  YZ d* e f d+ „  ƒ  YZ d, „  Z e d- k rše ƒ  n  d S(.   iÿÿÿÿ(   t   test_support(   t   TESTFNNt   gb2312t   gbkt   gb18030t   hzt	   big5hkscst   cp932t	   shift_jist   euc_jpt   euc_jisx0213t   shift_jisx0213t   euc_jis_2004t   shift_jis_2004t   cp949t   euc_krt   johabt   big5t   cp950t
   iso2022_jpt   iso2022_jp_1t   iso2022_jp_2t   iso2022_jp_2004t   iso2022_jp_3t   iso2022_jp_extt
   iso2022_krt   Test_MultibyteCodecc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s`   xY t  D]Q } |  j d j | ƒ d ƒ |  j t d | ƒ d ƒ |  j d j | ƒ d ƒ q Wd  S(   Nt    u    (   t   ALL_CJKENCODINGSt   assertEqualt   decodet   unicodet   encode(   t   selft   enc(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_nullcoding   s    c         C   s.   x' t  D] } |  j d j | ƒ d ƒ q Wd  S(   Nt   abcd(   R   R   R    (   R!   R"   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_str_decode#   s    c         C   sB   t  j d ƒ } d „  } t  j d | ƒ |  j t | d d ƒ d  S(   Ns   euc-krc         S   s   d t  j d f S(   Nu    i   (   t   syst   maxint(   t   exc(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   <lambda>)   R   s   test.cjktests   apple’ham“spam(   t   codecst
   getdecodert   register_errort   assertRaisest
   IndexError(   R!   t   dect	   myreplace(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_errorcallback_longindex'   s
    	c         C   sT   d t  d ƒ } t j d t j ƒ x* t D]" } |  j | j | d ƒ d ƒ q* Wd  S(   Nid   i Ü  s   test.ignoreR   (   t   unichrR*   R,   t   ignore_errorsR   R   R    (   R!   t   dataR"   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt    test_errorcallback_custom_ignore.   s    c         B   s,   x% e  D] } d j | ƒ } | d  Uq Wd  S(   Ns   # coding: {}
(   R   t   format(   R!   R"   t   code(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_codingspec5   s    c         C   s0   |  j  t t j d  ƒ |  j  t t j d  ƒ d  S(   N(   R-   t   AttributeErrort   _multibytecodect   MultibyteStreamReadert   Nonet   MultibyteStreamWriter(   R!   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_init_segfault:   s    		(   t   __name__t
   __module__R#   R%   R1   R5   R8   R>   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyR      s   					t   Test_IncrementalEncoderc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sÅ   t  j d ƒ ƒ  } |  j | j d ƒ d ƒ |  j | j ƒ  d  ƒ |  j | j d t ƒ d ƒ |  j | j ƒ  d  ƒ |  j | j d t ƒ d ƒ |  j | j d t ƒ d ƒ |  j | j ƒ  d  ƒ d  S(   NR   u   íŒŒì´ì¬ ë§ˆì„s   ÆÄÀÌ½ã ¸¶À»u	   â˜†âˆ¼â˜†s   ¡Ù¡­¡Ùu    R   (   R*   t   getincrementalencoderR   R    t   resetR<   t   Truet   False(   R!   t   encoder(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_statelessD   s    c         C   sý   t  j d ƒ ƒ  } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d t ƒ d ƒ |  j | j ƒ  d  ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d t ƒ d ƒ |  j | j d t ƒ d ƒ d  S(	   Nt   jisx0213u   Ã¦Ì€s   «Äu   Ã¦R   u   Ì€s   ©Üs   «Ü(   R*   RB   R   R    RD   RC   R<   (   R!   RF   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_statefulQ   s    c         C   sî   t  j d ƒ ƒ  } |  j | j d ƒ d ƒ |  j t | j d ƒ |  j | j d ƒ d ƒ |  j t | j d ƒ |  j | j ƒ  d  ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j t | j d ƒ |  j | j d	 t ƒ d
 ƒ d  S(   NRH   u   Ã¦R   u   Ä£u   Ì€Ã¦s   «Äu   Ì€s   «Üu    s   ©Ü(	   R*   RB   R   R    R-   t   UnicodeEncodeErrorRC   R<   RD   (   R!   RF   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_stateful_keep_bufferd   s    c         C   sK   t  j d ƒ d ƒ } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ d  S(   Ns	   shift-jist   backslashreplaceu   Ã¿s   \xffu   
s   
(   R*   RB   R   R    (   R!   RF   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_issue5640p   s    (   R?   R@   RG   RI   RK   RM   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyRA   B   s   			t   Test_IncrementalDecoderc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sa   t  j d ƒ ƒ  } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ d  S(   NR   s   ÆÄÀÌ½u   íŒŒì´s   ã ¸¶À»u
   ì¬ ë§ˆì„R   u    (   R*   t   getincrementaldecoderR   R   (   R!   t   decoder(    (    s)   lib/python2.7/test/test_multibytecodec.pyt	   test_dbcsw   s    c         C   s¬   t  j d ƒ ƒ  } |  j | j d ƒ d ƒ |  j t | j d t ƒ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ |  j t | j d t ƒ |  j | j d ƒ d ƒ d  S(   NR   s   ÆÄÀu   íŒŒR   s   Ìu   ì´s   Ì½(   R*   RO   R   R   R-   t   UnicodeDecodeErrorRD   (   R!   RP   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_dbcs_keep_buffer€   s    c         C   s>  t  j d ƒ ƒ  } d } |  j | j | d ƒ d ƒ |  j | j d t ƒ d ƒ |  j | j | d ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d	 ƒ d ƒ |  j | j d t ƒ d ƒ |  j | j ƒ  d  ƒ |  j | j d
 ƒ d ƒ |  j | j | d ƒ d ƒ |  j t | j d t ƒ |  j | j d ƒ d ƒ d  S(   Ns
   iso2022-jps   t   (u    t   Bt   $s   B@$u   ä¸–s   @$@s   @$u   @$R   (	   R*   RO   R   R   RD   RC   R<   R-   RR   (   R!   RP   t   ESC(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_iso2022Š   s    (   R?   R@   RQ   RS   RX   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyRN   u   s   			
t   Test_StreamReaderc           B   s   e  Z d  „  Z RS(   c         C   sr   zE t  t d ƒ j d ƒ t j  t d d ƒ} |  j t | j d ƒ Wd  y | j ƒ  Wn n Xt j	 t ƒ Xd  S(   Nt   ws   ¡t   encodingR   i   (
   t   openR   t   writeR*   R-   RR   t   readt   closet   ost   unlink(   R!   t   f(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_bug1728403š   s      (   R?   R@   Rc   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyRY   ™   s   t   Test_StreamWriterc           B   s_   e  Z e j e d  ƒ d k d ƒ d „  ƒ Z e j e d  ƒ d k d ƒ d „  ƒ Z d „  Z RS(   u   ð’…i   s   need a narrow buildc         C   s  t  j  ƒ  } t j d ƒ | ƒ } | j d ƒ |  j | j ƒ  d ƒ | j d ƒ |  j | j ƒ  d ƒ | j d d ƒ |  j | j ƒ  d ƒ | j d d d d ƒ |  j | j ƒ  d	 ƒ | j d d ƒ |  j | j ƒ  d	 ƒ |  j t | j ƒ |  j | j ƒ  d	 ƒ d  S(
   NR   u   123t   123u   ð’…s   1237•9i    i   u   ê°€Â¬s   1237•97•97•9‚7Ï50…1(	   t   StringIOR*   t	   getwriterR]   R   t   getvalueR-   t   UnicodeErrorRC   (   R!   t   st   c(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_gb18030¥   s"    c         C   sk   t  j  ƒ  } t j d ƒ | ƒ } | j d ƒ |  j | j ƒ  d ƒ | j d ƒ |  j | j ƒ  d ƒ d  S(   Ns   utf-8u   123Re   u   ð’…s   123ð’…(   Rf   R*   Rg   R]   R   Rh   (   R!   Rj   Rk   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt
   test_utf_8¹   s    c         C   sH   t  j  ƒ  } t j d ƒ | ƒ } | j d ƒ |  j | j ƒ  d ƒ d  S(   NR   R$   (   Rf   R*   Rg   R]   R   Rh   (   R!   Rj   t   wr(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_streamwriter_strwrite×   s    (   R?   R@   t   unittestt
   skipUnlesst   lenRl   Rm   Ro   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyRd   ¤   s   ''t   Test_ISO2022c           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s)   d } d } |  j  | j d ƒ | ƒ d  S(   Ns   (B:hu4:unit.ANi de familleu   :hu4:unitÃ© de familles   iso2022-jp-2(   R   R   (   R!   t
   iso2022jp2t   uni(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_g2Þ   s    c         C   sV   |  j  d d j d ƒ ƒ x6 d D]. } d j | ƒ } |  j t d „  | ƒ ƒ q  Wd  S(	   Ns   u   Â­s   iso-2022-jp-2s   iso-2022-jp-2004s   iso-2022-jp-3u   ã†c         S   s
   |  d k S(   Ns   €(    (   t   x(    (    s)   lib/python2.7/test/test_multibytecodec.pyR)   ç   R   (   s   iso-2022-jp-2004s   iso-2022-jp-3(   t   assertNotInR    t   assertFalset   filter(   R!   R[   t   e(    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_iso2022_jp_g0ã   s    c         C   sU   t  j d k r t } n	 d „  } x- t d d ƒ D] } | | ƒ j d d ƒ q1 Wd  S(   Ni   c         S   s$   t  d |  d ?ƒ t  d |  d @ƒ S(   NiÀ×  i
   i Ü  iÿ  (   R2   (   Rw   (    (    s)   lib/python2.7/test/test_multibytecodec.pyR)   í   R   i   t   iso_2022_jpt   ignore(   R&   t
   maxunicodeR2   t   xrangeR    (   R!   t   myunichrRw   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_bug1572832é   s
    		(   R?   R@   Rv   R|   R‚   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyRs   Ý   s   		t   TestStatefulc           B   s;   e  Z d  Z d Z d Z d Z d „  Z d „  Z d „  Z RS(   u   ä¸–ä¸–s   iso-2022-jps   $B@$@$s
   $B@$@$(Bc         C   s&   |  j  |  j j |  j ƒ |  j ƒ d  S(   N(   R   t   textR    R[   t   expected_reset(   R!   (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   test_encodeù   s    c            sN   t  j |  j ƒ ƒ  ‰  d j ‡  f d †  |  j Dƒ ƒ } |  j | |  j ƒ d  S(   NR   c         3   s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R    (   t   .0t   char(   RF   (    s)   lib/python2.7/test/test_multibytecodec.pys	   <genexpr>ÿ   s   (   R*   RB   R[   t   joinR„   R   t   expected(   R!   t   output(    (   RF   s)   lib/python2.7/test/test_multibytecodec.pyt   test_incrementalencoderü   s
    c            sj   t  j |  j ƒ ƒ  ‰  t |  j ƒ d ‰ d j ‡  ‡ f d †  t |  j ƒ Dƒ ƒ } |  j | |  j ƒ d  S(   Ni   R   c         3   s-   |  ]# \ } } ˆ  j  | | ˆ k ƒ Vq d  S(   N(   R    (   R‡   t   indexRˆ   (   RF   t
   last_index(    s)   lib/python2.7/test/test_multibytecodec.pys	   <genexpr>  s   (	   R*   RB   R[   Rr   R„   R‰   t	   enumerateR   R…   (   R!   R‹   (    (   RF   RŽ   s)   lib/python2.7/test/test_multibytecodec.pyt   test_incrementalencoder_final  s    (	   R?   R@   R„   R[   RŠ   R…   R†   RŒ   R   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyRƒ   ó   s   		t   TestHZStatefulc           B   s    e  Z d  Z d Z d Z d Z RS(   u   èŠèŠR   s   ~{ADADs   ~{ADAD~}(   R?   R@   R„   R[   RŠ   R…   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyR‘     s   c           C   s   t  j t ƒ d  S(   N(   R    t   run_unittestR?   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyt	   test_main  s    t   __main__(   t   testR    t   test.test_supportR   Rp   Rf   R*   R&   R`   R:   R   t   TestCaseR   RA   RN   RY   Rd   Rs   Rƒ   R‘   R“   R?   (    (    (    s)   lib/python2.7/test/test_multibytecodec.pyt   <module>   s,   <	'3$9	