
    DUft(                         d dl mZ d dlmZmZmZmZmZmZ d dl	Z
 G d de          Z G d de          Zd Zd	 Z G d
 de          ZdS )    )TestCase)StringIO	long_typebbinary_type	text_typePY3Nc                       e Zd Zd ZdS )MisbehavingTextSubtypec                     dS )NzFAIL! selfs    W/var/www/html/software/conda/lib/python3.11/site-packages/simplejson/tests/test_dump.py__str__zMisbehavingTextSubtype.__str__   s    w    N)__name__
__module____qualname__r   r   r   r   r   r      s#            r   r   c                   "    e Zd ZddZd Zd ZdS )MisbehavingBytesSubtypeNc                     dS )Nz
bad decoder   )r   encodings     r   decodezMisbehavingBytesSubtype.decode
   s    |r   c                     dS )Nzbad __str__r   r   s    r   r   zMisbehavingBytesSubtype.__str__   s    }r   c                      t          d          S )Nzbad __bytes__r   r   s    r   	__bytes__z!MisbehavingBytesSubtype.__bytes__   s    !!!r   N)r   r   r   r   r   r   r   r   r   r   r   	   sF             " " " " "r   r   c                 h    t           r*t          | t                    r|                     d          S | S )Nascii)r	   
isinstancebytesr   )ss    r   as_text_typer%      s2    
 !z!U## !xx   Hr   c                 "     | j         d          S )Niso-8859-15)r   r   s    r   decode_iso_8859_15r(      s    18M"""r   c                   b    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S )TestDumpc                     t                      }t          j        i |           |                     |                                d           d S N{})r   jsondumpassertEqualgetvalue)r   sios     r   	test_dumpzTestDump.test_dump   sA    jj	"c.....r   c           	         dD ]}|                      t          j        t          j        |                    |u            |                      t          j        t          j        |g                    d         |u            |                      t          j        t          j        d|i                    d         |u            d S )N)NTFr   a)
assertTruer.   loadsdumps)r   cs     r   test_constantszTestDump.test_constants   s    $ 	H 	HAOODJtz!}}55:;;;OODJtz1#77:a?@@@OODJtz3(';';<<SAQFGGGG	H 	Hr   c                    t          d          dfdddddt          d          dfg}|D ]\  }}|                     t          j        t          j        ||i                    ||i           |                     t          j        t          j        ||id	
                    ||i           |                     t          t          j        t          di           i ddit          d          dddifD ]}dD ]}t          |          }d|t          <   t          d |	                                D                       }|                     t          j        t          j        |d	|                    |           |                     t          j        t          j        d|id	|                    d|i           |                     t          j        t          j        |gd	|                    |g           d S )Nr#   )g      ?z1.0)
   10)Ttrue)Ffalse)Nnulld   100T	sort_keys   otherderpherp   )FTc              3   >   K   | ]\  }}t          |          |fV  d S r   )r%   ).0keyvals      r   	<genexpr>z.TestDump.test_stringify_key.<locals>.<genexpr>9   s3      OOzS<,,c2OOOOOOr   )skipkeysrD    )
r   r   r0   r.   r7   r8   assertRaises	TypeErrordictitems)r   rT   kexpectvrD   v0v1s           r   test_stringify_keyzTestDump.test_stringify_key%   s*   G**g&!C..%(*  	" 	"IAv
4:q&k2233 " " " 
4:q&kTBBBCC " " " " 	)TZ$;;;wlQvYY61$=> 	 	A*  	!WW4OOQWWYYOOOOO  Jtz"tyQQQRR     Jtz2r(TYWWWXXH     Jtz2$SSSTTD   	 	r   c                 V    |                      t          j        i           d           d S r,   )r0   r.   r8   r   s    r   
test_dumpszTestDump.test_dumpsD   s&    B.....r   c                     |                      t          j        dddd          d           |                      t          j        dddt          d	          dd
t          d          dddid          d           d S )NFT)TFrC   z{"false": true, "true": false}rI   g      @g      @   rE      7r   z3{"2": 3.0, "4.0": 5, "6": true, "7": 0, "false": 1})r0   r.   r8   r   r   s    r   test_encode_truefalsezTestDump.test_encode_truefalseG   s    d++t= = =1	3 	3 	3 	JCill1ta	
       B	C 	C 	C 	C 	Cr   c                     g d}t          j        t          j        |                    }|                     |d           d S )N))onerE   )tworI   )three   )four   )fiver^   z6{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5})r.   r8   OrderedDictr0   )r   rT   r$   s      r   test_ordered_dictzTestDump.test_ordered_dictU   sT    PPPJt'..//D	F 	F 	F 	F 	Fr   c                      G d dt                     }t          j        g d |d                    }|                     |d           dS )a  
        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
        c                       e Zd ZdZd Zd ZdS )@TestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeIntz'An awesome reimplementation of integersc                     t          |          dk    r*t          |d         t                    r|d         | _        d S d S d S )Nr   )lenr"   int_int)r   argskwargss      r   __init__zITestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__init__m   sI    t99q==
 "$q'3// ,$(G			 !=
, ,r   c                 T    t          | d          r
| j        |z  S t          d          )Nrr   zOTo do non-awesome things with this object, please construct it from an integer!)hasattrrr   NotImplementedError)r   rF   s     r   __mul__zHTestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__mul__x   s?     4(( N9u,,- /M N N Nr   N)r   r   r   __doc__ru   ry   r   r   r   
AwesomeIntrn   j   s=        99, , ,N N N N Nr   r{   )r   rE   rI   rf   )indentz[
   0,
   1,
   2
]N)objectr.   r8   r0   )r   r{   r$   s      r   #test_indent_unknown_type_acceptancez,TestDump.test_indent_unknown_type_acceptance]   ss    	N 	N 	N 	N 	N 	N 	N 	N0 JyyyA777677777r   c                     dgdz  }|                      t          j        t          j        |                    |           d S )Nr   i )r0   r.   r7   r8   )r   lsts     r   test_accumulatorzTestDump.test_accumulator   s;    cFlDJsOO44c:::::r   c                    t          dd          D ]}t          d t          |          D                       }t                      }t          j        ||d           |                     |                                t          j        |d                     |                     t          j        |                                          |           d S )NrI       c              3   8   K   | ]}t          |          |fV  d S r   )str)rK   xs     r   rN   z*TestDump.test_sort_keys.<locals>.<genexpr>   s,      ::Qc!ffa[::::::r   TrC   )	rangerS   r   r.   r/   r0   r1   r8   r7   )r   num_keyspr2   s       r   test_sort_keyszTestDump.test_sort_keys   s    a 	< 	<H::%//:::::A**CIa----S\\^^TZT-J-J-JKKKTZ77;;;;	< 	<r   c                    d}|                      t          j        t          |                    t          j        |                     |                      t          j        t          |          g          t          j        |g                     |                      t          j        t          |          di          t          j        |di                     d S )Nzthis is some text*   )r0   r.   r8   r   )r   texts     r   test_misbehaving_text_subtypez&TestDump.test_misbehaving_text_subtype   s    "J-d3344Jt	
 	
 	
 	J.t44566Jv	
 	
 	
 	J.t44b9::Jbz""	
 	
 	
 	
 	
r   c                    t          d          }|                     t          j        t	          |                    t          j        |                     |                     t          j        t	          |          g          t          j        |g                     |                     t          j        t	          |          di          t          j        |di                     d S )Nu   this is some data â¬r   )r   r0   r.   r8   r   )r   datas     r   test_misbehaving_bytes_subtypez'TestDump.test_misbehaving_bytes_subtype   s    122J.t4455Jt	
 	
 	
 	J/55677Jv	
 	
 	
 	J/55r:;;Jbz""	
 	
 	
 	
 	
r   c                 `   |                      t          j        t          d                    d           |                     t
          t          j        t          d                     |                      t          j        t          d          d          d           |                      t          j        t          d          d          d           t          r|                     t          t          j        t          d          d            |                     t          t          j        t          d          d            |                      t          j        t          d          d t                    d           d S |                      t          j        t          d          d           d           |                     t
          t          j        t          d          d            |                     t
          t          j        t          d          d t                     d S )	N   â¬z"\u20ac"   ¤
iso-8859-1r   z"\u00a4"r'   r   default	r0   r.   r8   r   rQ   UnicodeDecodeErrorr	   rR   r(   r   s    r   test_bytes_toplevelzTestDump.test_bytes_toplevel   s   An$5$566DDD,dj!F))DDDAfIIEEE$	& 	& 	&AfIIFFF$	& 	& 	& 	IiQ~5F5F'+  - - -iQvYY'+  - - -TZ&		D0BD D D') ) ) ) ) TZ.(9(9DIII(* * *0$*aii'+  - - -0$*aii'+5G  I I I I Ir   c                 t   |                      t          j        t          d          g          d           |                     t
          t          j        t          d          g           |                      t          j        t          d          gd          d           |                      t          j        t          d          gd          d           t          r|                     t          t          j        t          d          gd            |                     t          t          j        t          d          gd            |                      t          j        t          d          gd t                    d           d S |                      t          j        t          d          gd           d           |                     t
          t          j        t          d          gd            |                     t
          t          j        t          d          gd t                     d S )	Nr   z
["\u20ac"]r   r   r   z
["\u00a4"]r'   r   r   r   s    r   test_bytes_nestedzTestDump.test_bytes_nested   s   Q~%6%6$788-HHH,dj1V99+FFFQvYYK,GGG&	( 	( 	(QvYYK-HHH&	( 	( 	( 	Iia6G6G5H'+  - - -iaii['+  - - -TZ6d0BD D D*, , , , , TZ>):):(;dKKK*, , ,0$*qyyk'+  - - -0$*qyyk'+5G  I I I I Ir   c                 h   |                      t          j        t          d          di          d           |                     t
          t          j        t          d          di           |                      t          j        t          d          did          d           |                      t          j        t          d          did          d           t          r|                     t          t          j        t          d          did            |                     t          t          j        t          d          did            |                     t          t          j        t          d          did t          	           |                      t          j        t          d          did d
          d           d S |                      t          j        t          d          did           d           |                     t
          t          j        t          d          did            |                     t
          t          j        t          d          did t          	           |                     t
          t          j        t          d          did d
           d S )Nr   r   z{"\u20ac": 42}r   r   r   z{"\u00a4": 42}r'   r   T)r   rO   r-   r   r   s    r   test_bytes_keyzTestDump.test_bytes_key   s   Q~%6%6$;<<>OPPP,dj1V99b/JJJQvYYOlKKK*	, 	, 	,QvYYOmLLL*	, 	, 	, 	<ia6G6G5L'+  - - -iaii_'+  - - -iaii_'+5G  I I ITZ6B$157 7 7"$ $ $ $ $ TZ>):):B(?$OOO.0 0 00$*qyy"o'+  - - -0$*qyy"o'+5G  I I I0$*qyy"o'+d  < < < < <r   N)r   r   r   r3   r:   rZ   r\   ra   rk   r~   r   r   r   r   r   r   r   r   r   r   r*   r*      s        / / /
H H H  >/ / /C C CF F F&8 &8 &8P; ; ;
< < <
 
 
 
 
 
I I I.I I I.< < < < <r   r*   )unittestr   simplejson.compatr   r   r   r   r   r	   
simplejsonr.   r   r   r%   r(   r*   r   r   r   <module>r      s         Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q        Y   " " " " "k " " "  
# # #`< `< `< `< `<x `< `< `< `< `<r   