ó
P'—^c           @   sp   d  d l  Z  d  d l Z d  d l m Z d  d l Z d  d l m Z m Z m	 Z	 m
 Z
 d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   TestCase(   t   unichrt	   text_typet   bt   BytesIOt   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 d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sY   t  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?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_encoding1	   s    c         C   sS   d } | j  d ƒ } t j | d d ƒ} t j | d d ƒ} |  j | | ƒ d  S(   Nu   Î±Î©s   utf-8R   (   R	   R   t   dumpsR
   (   R   R   R   R   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_encoding2   s
    c         C   s)   d } t  j | ƒ } |  j | d ƒ d  S(   Nu   Î±Î©s   "\u03b1\u03a9"(   R   R   R
   (   R   R   t   j(    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_encoding3   s    c         C   s,   d } t  j | g ƒ } |  j | d ƒ d  S(   Nu   Î±Î©s   ["\u03b1\u03a9"](   R   R   R
   (   R   R   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_encoding4   s    c         C   s7   d } t  j | d t ƒ} |  j | d | d ƒ d  S(   Nu   Î±Î©t   ensure_asciiu   "(   R   R   t   FalseR
   (   R   R   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_encoding5"   s    c         C   s:   d } t  j | g d t ƒ} |  j | d | d ƒ d  S(   Nu   Î±Î©R   u   ["u   "](   R   R   R   R
   (   R   R   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_encoding6'   s    c         C   sB   d } |  j  t j | ƒ d ƒ |  j  t j | d t ƒd ƒ d  S(   Nu   ð„ s   "\ud834\udd20"R   u   "ð„ "(   R
   R   R   R   (   R   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_big_unicode_encode,   s    c         C   sD   d } |  j  t j d | d ƒ | ƒ |  j  t j d ƒ | ƒ d  S(   Nu   zð„ xt   "s   "z\ud834\udd20x"(   R
   R   t   loads(   R   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_big_unicode_decode1   s    !c         C   sP   xI t  d d ƒ D]8 } t | ƒ } d | f } |  j t j | ƒ | ƒ q Wd  S(   Ni    iÿ×  s   "\u%04x"(   t   rangeR   R
   R   R   (   R   t   iR   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_unicode_decode6   s    c         C   sä   d } d d d d d d d g } |  j  t j | ƒ t | ƒ ƒ |  j  t j | d d „  ƒ| ƒ t j | d t j ƒ} |  j  | t j | ƒ ƒ |  j  t | ƒ t j ƒ |  j  t j | d t j d d „  ƒt j | ƒ ƒ 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?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   <lambda>B   t    t   object_hookc         S   s   d  S(   N(   t   None(   R#   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyR$   I   R%   (   u   xkdi   (   u   kcwi   (   u   arti   (   u   hxmi   (   u   qrti   (   u   padi   (   u   hoyi   (   R
   R   R   t   evalt   OrderedDictt   type(   R   R   t   pt   od(    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt#   test_object_pairs_hook_with_unicode=   s    "		c         C   s-   |  j  t j d j d ƒ ƒ i d d 6ƒ d  S(   Nu   {"a": "Ã©"}s   utf-8u   Ã©t   a(   R
   R   R   R	   (   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_default_encodingM   s    c         C   se   |  j  t t j d ƒ ƒ t ƒ |  j  t t j d ƒ ƒ t ƒ |  j  t t j d ƒ d ƒ t ƒ d  S(   Nu   ""u   "a"u   ["a"]i    (   R
   R*   R   R   R   (   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_unicode_preservationQ   s    c         C   s˜   |  j  t t j g  d t ƒƒ t ƒ |  j  t t j d d t ƒƒ t ƒ |  j  t t j i  d t ƒƒ t ƒ |  j  t t j d d t ƒƒ t ƒ d  S(   NR   i    R%   (   R
   R*   R   R   R   R   (   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt'   test_ensure_ascii_false_returns_unicodeV   s    %%%c         C   s    i t  d ƒ d 6} i d d 6} d } d } |  j t j | ƒ | ƒ |  j t j | ƒ | ƒ |  j t j | d t ƒ| ƒ |  j t j | d t ƒ| ƒ d  S(   Ns   ArrÃªt sur imagesu   quuxu   ArrÃªt sur imagess!   {"quux": "Arr\u00eat sur images"}u   {"quux": "ArrÃªt sur images"}R   (   R   R
   R   R   R   (   R   t   doc1t   doc2t	   doc_asciit   doc_unicode(    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt+   test_ensure_ascii_false_bytestring_encoding]   s    c         C   s•   d } | j  d ƒ } d } d } |  j t j | ƒ | ƒ |  j t j | ƒ | ƒ |  j t j | d t ƒ| ƒ |  j t j | d t ƒ| ƒ d  S(   Nu   â€©â€¨t   utf8s   "\u2029\u2028"u   "â€©â€¨"R   (   R	   R
   R   R   R   (   R   t   s1t   s2t   expectt   expect_non_ascii(    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt$   test_ensure_ascii_linebreak_encodingh   s    c         C   s¿  |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d	 ƒ t j d
 k r»|  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ |  j  t j t j d ƒ n  d  S(   Ns   "\us   "\u1s   "\u12s   "\u123s   "\u1234s   "\u123x"s   "\u12x4"s   "\u1x34"s   "\ux234"iÿÿ  s
   "\ud800\u"s   "\ud800\u0"s   "\ud800\u00"s   "\ud800\u000"s   "\ud800\u000x"s   "\ud800\u00x0"s   "\ud800\u0x00"s   "\ud800\ux000"(   t   assertRaisesR   t   JSONDecodeErrorR   t   syst
   maxunicode(   R   (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_invalid_escape_sequencess   s$    c         C   s|   xH t  t t d d ƒ ƒ D]. } |  j t j | d t ƒt j | ƒ ƒ q Wd } |  j t j | d t ƒd | d ƒ d  S(   Ni    i   R   u   â˜ƒR   (   t   mapR   R   R
   R   R   R   (   R   t   ct   snowman(    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_ensure_ascii_still_worksŠ   s    c         C   s~   d } t  j t t j | ƒ ƒ } |  j t j t | ƒ ƒ | ƒ x6 | | j d ƒ f D] } |  j t j	 | ƒ | ƒ qW Wd  S(   Nu   ã“ã‚“ã«ã¡ã‚R7   (
   t   codecst   BOM_UTF8R   R   R   R
   t   loadR   t   decodeR   (   R   t   contentt   json_doct   doc(    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   test_strip_bom•   s
    (   t   __name__t
   __module__R   R   R   R   R   R   R   R   R!   R-   R/   R0   R1   R6   R<   RA   RE   RM   (    (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyR      s$   																	(   R?   RF   t   unittestR    t
   simplejsonR   t   simplejson.compatR   R   R   R   R   (    (    (    s?   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_unicode.pyt   <module>   s
   "