ó
u®¸Qc           @   sr   d  d l  m Z d  d l m Z m Z d e f d „  ƒ  YZ d e e f d „  ƒ  YZ d e e f d „  ƒ  YZ d	 S(
   iÿÿÿÿ(   t   OrderedDict(   t   PyTestt   CTestt   TestUnicodec           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 RS(   c         C   s\   |  j  j d d ƒ } d } | j d ƒ } | j | ƒ } | j | ƒ } |  j | | ƒ d  S(   Nt   encodings   utf-8u   Î±Î©(   t   jsont   JSONEncodert   encodet   assertEqual(   t   selft   encodert   ut   st   jut   js(    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_encoding1   s    c         C   sS   d } | j  d ƒ } |  j | d d ƒ} |  j | d d ƒ} |  j | | ƒ d  S(   Nu   Î±Î©s   utf-8R   (   R   t   dumpsR   (   R	   R   R   R   R   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_encoding2   s
    c         C   s)   d } |  j  | ƒ } |  j | d ƒ d  S(   Nu   Î±Î©s   "\u03b1\u03a9"(   R   R   (   R	   R   t   j(    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_encoding3   s    c         C   s,   d } |  j  | g ƒ } |  j | d ƒ d  S(   Nu   Î±Î©s   ["\u03b1\u03a9"](   R   R   (   R	   R   R   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_encoding4   s    c         C   s8   d } |  j  | d t ƒ} |  j | d j | ƒ ƒ d  S(   Nu   Î±Î©t   ensure_asciiu   "{0}"(   R   t   FalseR   t   format(   R	   R   R   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_encoding5   s    c         C   s;   d } |  j  | g d t ƒ} |  j | d j | ƒ ƒ d  S(   Nu   Î±Î©R   u   ["{0}"](   R   R   R   R   (   R	   R   R   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_encoding6$   s    c         C   sB   d } |  j  |  j | ƒ d ƒ |  j  |  j | d t ƒd ƒ d  S(   Nu   ð„ s   "\ud834\udd20"R   u   "ð„ "(   R   R   R   (   R	   R   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_big_unicode_encode)   s    c         C   sD   d } |  j  |  j d | d ƒ | ƒ |  j  |  j d ƒ | ƒ d  S(   Nu   zð„ xt   "s   "z\ud834\udd20x"(   R   t   loads(   R	   R   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_big_unicode_decode.   s    !c         C   sR   xK t  d d ƒ D]: } t | ƒ } d j | ƒ } |  j |  j | ƒ | ƒ q Wd  S(   Ni    iÿ×  s   "\u{0:04x}"(   t   ranget   unichrR   R   R   (   R	   t   iR   R   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_unicode_decode3   s    c         C   sÕ   d } d d d d d d d g } |  j  |  j | ƒ t | ƒ ƒ |  j  |  j | d d „  ƒ| ƒ |  j | d t ƒ} |  j  | t | ƒ ƒ |  j  t | ƒ t ƒ |  j  |  j | d t d d „  ƒt | ƒ ƒ d  S(   Nu?   {"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}u   xkdi   u   kcwi   u   arti   u   hxmi   u   qrti   u   padi   u   hoyi   t   object_pairs_hookc         S   s   |  S(   N(    (   t   x(    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   <lambda>>   s    t   object_hookc         S   s   d  S(   N(   t   None(   R#   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyR$   E   s    (   u   xkdi   (   u   kcwi   (   u   arti   (   u   hxmi   (   u   qrti   (   u   padi   (   u   hoyi   (   R   R   t   evalR    t   type(   R	   R   t   pt   od(    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt#   test_object_pairs_hook_with_unicode9   s    "	c         C   s-   |  j  |  j d j d ƒ ƒ i d d 6ƒ d  S(   Nu   {"a": "Ã©"}s   utf-8u   Ã©t   a(   R   R   R   (   R	   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_default_encodingH   s    c         C   s„   |  j  t |  j d ƒ ƒ t ƒ |  j  t |  j d ƒ ƒ t ƒ |  j  t |  j d ƒ d ƒ t ƒ |  j  t |  j d ƒ ƒ t ƒ d  S(   Nu   ""u   "a"u   ["a"]i    s   "foo"(   R   R(   R   t   unicode(   R	   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_unicode_preservationL   s    #c         C   s6   |  j  t |  j d d ƒ |  j  t |  j d d ƒ d  S(   Ns   "a"u   ratÃ©i   (   t   assertRaisest   UnicodeEncodeErrorR   t	   TypeError(   R	   (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   test_bad_encodingS   s    (   t   __name__t
   __module__R   R   R   R   R   R   R   R   R!   R+   R-   R/   R3   (    (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyR      s   												t   TestPyUnicodec           B   s   e  Z RS(    (   R4   R5   (    (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyR6   X   s    t   TestCUnicodec           B   s   e  Z RS(    (   R4   R5   (    (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyR7   Y   s    N(	   t   collectionsR    t
   json.testsR   R   t   objectR   R6   R7   (    (    (    s-   /sys/lib/python2.7/json/tests/test_unicode.pyt   <module>   s   S