ó
P'—^c           @   s¢   d  d l  m Z d  d l m Z m Z m Z m Z m Z m Z d  d l	 Z
 d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d	 „  Z d
 e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   TestCase(   t   StringIOt	   long_typet   bt   binary_typet	   text_typet   PY3Nt   MisbehavingTextSubtypec           B   s   e  Z d  „  Z RS(   c         C   s   d S(   Ns   FAIL!(    (   t   self(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   __str__   s    (   t   __name__t
   __module__R	   (    (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyR      s   t   MisbehavingBytesSubtypec           B   s&   e  Z d d  „ Z d „  Z d „  Z RS(   c         C   s   d S(   Ns
   bad decode(    (   R   t   encoding(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   decode
   s    c         C   s   d S(   Ns   bad __str__(    (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyR	      s    c         C   s
   t  d ƒ S(   Ns   bad __bytes__(   R   (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt	   __bytes__   s    N(   R
   R   t   NoneR   R	   R   (    (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyR   	   s   	c         C   s&   t  r" t |  t ƒ r" |  j d ƒ S|  S(   Nt   ascii(   R   t
   isinstancet   bytesR   (   t   s(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   as_text_type   s    c         C   s   |  j  d ƒ S(   Ns   iso-8859-15(   R   (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   decode_iso_8859_15   s    t   TestDumpc           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   s3   t  ƒ  } t j i  | ƒ |  j | j ƒ  d ƒ d  S(   Ns   {}(   R   t   jsont   dumpt   assertEqualt   getvalue(   R   t   sio(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt	   test_dump   s    	c         C   sŸ   x˜ d  t t g D]‡ } |  j t j t j | ƒ ƒ | k ƒ |  j t j t j | g ƒ ƒ d | k ƒ |  j t j t j i | d 6ƒ ƒ d | k ƒ q Wd  S(   Ni    t   a(   R   t   Truet   Falset
   assertTrueR   t   loadst   dumps(   R   t   c(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_constants   s    %,c      
   C   sù  t  d ƒ d f d d t d f t d f d t d	 ƒ d
 f g } xz | D]r \ } } |  j t j t j i | | 6ƒ ƒ i | | 6ƒ |  j t j t j i | | 6d t ƒƒ i | | 6ƒ qF W|  j	 t
 t j i d t 6ƒ xi  i d d 6i d t  d ƒ 6d d 6g D]í } xä t t g D]Ö } t | ƒ } d | t <t d „  | j ƒ  Dƒ ƒ } |  j t j t j | d t d | ƒƒ | ƒ |  j t j t j i | d 6d t d | ƒƒ i | d 6ƒ |  j t j t j | g d t d | ƒƒ | g ƒ qWqWd  S(   NR   g      ð?s   1.0i
   t   10t   truet   falset   nullid   t   100t	   sort_keysi   t   othert   derpi   t   herpc         s   s'   |  ] \ } } t  | ƒ | f Vq d  S(   N(   R   (   t   .0t   keyt   val(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pys	   <genexpr>9   s    t   skipkeyst    (   g      ð?s   1.0(   i
   R&   (   NR)   (   R   R   R    R   R   R   R   R"   R#   t   assertRaisest	   TypeErrort   dictt   items(   R   R7   t   kt   expectt   vR+   t   v0t   v1(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_stringify_key%   s:    		"1
!($c         C   s   |  j  t j i  ƒ d ƒ d  S(   Ns   {}(   R   R   R#   (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt
   test_dumpsD   s    c         C   s   |  j  t j i t t 6t t 6d t ƒd ƒ |  j  t j i d d 6t d ƒ d 6d t 6t t d ƒ 6d	 d
 6d t ƒd ƒ d  S(   NR+   s   {"false": true, "true": false}g      @i   i   g      @i   i   i    t   7s3   {"2": 3.0, "4.0": 5, "6": true, "7": 0, "false": 1}(   R   R   R#   R    R   R   (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_encode_truefalseG   s    

c         C   sA   d d d d d g } t  j t  j | ƒ ƒ } |  j | d ƒ d  S(   Nt   onei   t   twoi   t   threei   t   fouri   t   fivei   s6   {"one": 1, "two": 2, "three": 3, "four": 4, "five": 5}(   RA   i   (   RB   i   (   RC   i   (   RD   i   (   RE   i   (   R   R#   t   OrderedDictR   (   R   R7   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_ordered_dictU   s
    c         C   sN   d t  f d „  ƒ  Y} t j d d d g d | d ƒ ƒ} |  j | d ƒ d	 S(
   s  
        A test against the regression mentioned at `github issue 29`_.

        The indent parameter should accept any type which pretends to be
        an instance of int or long when it comes to being multiplied by
        strings, even if it is not actually an int or long, for
        backwards compatibility.

        .. _github issue 29:
           http://github.com/simplejson/simplejson/issue/29
        t
   AwesomeIntc           B   s    e  Z d  Z d „  Z d „  Z RS(   s'   An awesome reimplementation of integersc         _   s<   t  | ƒ d k r8 t | d t ƒ r8 | d |  _ q8 n  d  S(   Ni    (   t   lenR   t   intt   _int(   R   t   argst   kwargs(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   __init__m   s    c         S   s*   t  |  d ƒ r |  j | St d ƒ ‚ d  S(   NRK   sO   To do non-awesome things with this object, please construct it from an integer!(   t   hasattrRK   t   NotImplementedError(   R   R,   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   __mul__x   s    (   R
   R   t   __doc__RN   RQ   (    (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyRH   j   s   	i    i   i   t   indenti   s   [
   0,
   1,
   2
]N(   t   objectR   R#   R   (   R   RH   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt#   test_indent_unknown_type_acceptance]   s    $c         C   s3   d g d } |  j  t j t j | ƒ ƒ | ƒ d  S(   Ni    i † (   R   R   R"   R#   (   R   t   lst(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_accumulator…   s    c         C   s   x– t  d d ƒ D]… } t d „  t  | ƒ Dƒ ƒ } t ƒ  } t j | | d t ƒ|  j | j ƒ  t j | d t ƒƒ |  j t j	 | j ƒ  ƒ | ƒ q Wd  S(   Ni   i    c         s   s!   |  ] } t  | ƒ | f Vq d  S(   N(   t   str(   R/   t   x(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pys	   <genexpr>   s    R+   (
   t   rangeR6   R   R   R   R   R   R   R#   R"   (   R   t   num_keyst   pR   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_sort_keysŠ   s    	%c         C   s–   d } |  j  t j t | ƒ ƒ t j | ƒ ƒ |  j  t j t | ƒ g ƒ t j | g ƒ ƒ |  j  t j i d t | ƒ 6ƒ t j i d | 6ƒ ƒ d  S(   Ns   this is some texti*   (   R   R   R#   R   (   R   t   text(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_misbehaving_text_subtype“   s    c         C   sœ   t  d ƒ } |  j t j t | ƒ ƒ t j | ƒ ƒ |  j t j t | ƒ g ƒ t j | g ƒ ƒ |  j t j i d t | ƒ 6ƒ t j i d | 6ƒ ƒ d  S(   Ns   this is some data â‚¬i*   (   R   R   R   R#   R   (   R   t   data(    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_misbehaving_bytes_subtype£   s    c         C   sp  |  j  t j t d ƒ ƒ d ƒ |  j t t j t d ƒ ƒ |  j  t j t d ƒ d d ƒd ƒ |  j  t j t d ƒ d d ƒd ƒ t rý |  j t t j t d ƒ d d  ƒ|  j t t j t d ƒ d d  ƒ|  j  t j t d ƒ d d  d t	 ƒd ƒ no |  j  t j t d ƒ d d  ƒd ƒ |  j t t j t d ƒ d d  ƒ|  j t t j t d ƒ d d  d t	 ƒd  S(	   Ns   â‚¬s   "\u20ac"s   ¤R   s
   iso-8859-1s   "\u00a4"s   iso-8859-15t   default(
   R   R   R#   R   R4   t   UnicodeDecodeErrorR   R5   R   R   (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_bytes_toplevel²   s(    
c         C   sŽ  |  j  t j t d ƒ g ƒ d ƒ |  j t t j t d ƒ g ƒ |  j  t j t d ƒ g d d ƒd ƒ |  j  t j t d ƒ g d d ƒd ƒ t r|  j t t j t d ƒ g d d  ƒ|  j t t j t d ƒ g d d  ƒ|  j  t j t d ƒ g d d  d t	 ƒd ƒ nx |  j  t j t d ƒ g d d  ƒd ƒ |  j t t j t d ƒ g d d  ƒ|  j t t j t d ƒ g d d  d t	 ƒd  S(	   Ns   â‚¬s
   ["\u20ac"]s   ¤R   s
   iso-8859-1s
   ["\u00a4"]s   iso-8859-15Rb   (
   R   R   R#   R   R4   Rc   R   R5   R   R   (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_bytes_nestedÉ   s(    "!!!
!c         C   s  |  j  t j i d t d ƒ 6ƒ d ƒ |  j t t j i d t d ƒ 6ƒ |  j  t j i d t d ƒ 6d d ƒd ƒ |  j  t j i d t d ƒ 6d d ƒd ƒ t r]|  j t t j i d t d ƒ 6d d  ƒ|  j t t j i d t d ƒ 6d d  ƒ|  j t t j i d t d ƒ 6d d  d	 t	 ƒ|  j  t j i d t d ƒ 6d d  d
 t
 ƒd ƒ n³ |  j  t j i d t d ƒ 6d d  ƒd ƒ |  j t t j i d t d ƒ 6d d  ƒ|  j t t j i d t d ƒ 6d d  d	 t	 ƒ|  j t t j i d t d ƒ 6d d  d
 t
 ƒd  S(   Ni*   s   â‚¬s   {"\u20ac": 42}s   ¤R   s
   iso-8859-1s   {"\u00a4": 42}s   iso-8859-15Rb   R2   s   {}(   R   R   R#   R   R4   Rc   R   R5   R   R   R   (   R   (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   test_bytes_keyà   s0    &#%%"""%
%"""(   R
   R   R   R%   R=   R>   R@   RG   RU   RW   R]   R_   Ra   Rd   Re   Rf   (    (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyR      s   							(							(   t   unittestR    t   simplejson.compatR   R   R   R   R   R   t
   simplejsonR   R   R   R   R   R   (    (    (    s<   /tmp/pip-unpacked-wheel-9xjeDh/simplejson/tests/test_dump.pyt   <module>   s   .		