
    <iJ)                         S SK Jr  S SKJrJrJrJrJrJr  S SK	r
 " S S\5      r " S S\5      rS rS	 r " S
 S\5      rg)    )TestCase)StringIO	long_typebbinary_type	text_typePY3Nc                       \ rS rSrS rSrg)MisbehavingTextSubtype   c                     g)NzFAIL! selfs    T/home/james-whalen/.local/lib/python3.13/site-packages/simplejson/tests/test_dump.py__str__MisbehavingTextSubtype.__str__   s        r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      s    r   r   c                   *    \ rS rSrSS jrS rS rSrg)MisbehavingBytesSubtype	   Nc                     g)Nz
bad decoder   )r   encodings     r   decodeMisbehavingBytesSubtype.decode
   s    r   c                     g)Nzbad __str__r   r   s    r   r   MisbehavingBytesSubtype.__str__   s    r   c                     [        S5      $ )Nzbad __bytes__r   r   s    r   	__bytes__!MisbehavingBytesSubtype.__bytes__   s    !!r   r   N)r   r   r   r   r   r   r%   r   r   r   r   r   r   	   s    "r   r   c                 h    [         (       a&  [        U [        5      (       a  U R                  S5      $ U $ )Nascii)r	   
isinstancebytesr   )ss    r   as_text_typer-      s'    
sz!U##xx  Hr   c                 &    U R                   " S5      $ )Niso-8859-15)r   r$   s    r   decode_iso_8859_15r0      s    88M""r   c                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)TestDump   c                     [        5       n[        R                  " 0 U5        U R                  UR	                  5       S5        g N{})r   jsondumpassertEqualgetvalue)r   sios     r   	test_dumpTestDump.test_dump   s-    j		"c.r   c           	         S H  nU R                  [        R                  " [        R                  " U5      5      UL 5        U R                  [        R                  " [        R                  " U/5      5      S   UL 5        U R                  [        R                  " [        R                  " SU05      5      S   UL 5        M     g )N)NTFr   a)
assertTruer7   loadsdumps)r   cs     r   test_constantsTestDump.test_constants   s    $AOODJJtzz!}5:;OODJJtzz1#7:a?@OODJJtzz3(';<SAQFG %r   c                    [        S5      S4SSSSS[        S5      S4/nU H|  u  p#U R                  [        R                  " [        R
                  " X#05      5      X305        U R                  [        R                  " [        R
                  " X#0S	S
95      X305        M~     U R                  [        [        R
                  [        S05        0 SS0[        S5      SSS04 H  nS H  n[        U5      nSU[        '   [        S UR                  5        5       5      nU R                  [        R                  " [        R
                  " US	US95      U5        U R                  [        R                  " [        R
                  " SU0S	US95      SU05        U R                  [        R                  " [        R
                  " U/S	US95      U/5        M     M     g )Nr+   )g      ?z1.0)
   10)Ttrue)Ffalse)Nnulld   100T	sort_keys   otherderpherp   )FTc              3   @   #    U  H  u  p[        U5      U4v   M     g 7fr'   )r-   ).0keyvals      r   	<genexpr>.TestDump.test_stringify_key.<locals>.<genexpr>9   s     OYz<,c2Ys   )skipkeysrO    )
r   r   r9   r7   rA   rB   assertRaises	TypeErrordictitems)r   r`   kexpectvrO   v0v1s           r   test_stringify_keyTestDump.test_stringify_key%   s   G*g&!C.%(* IA

4::qk23 " 

4::qkTBC "	  	)TZZ$;wlQvY61$=>A*	!W4OQWWYOO  JJtzz"tyQR   JJtzz2r(TYWXH   JJtzz2$STD + ?r   c                 P    U R                  [        R                  " 0 5      S5        g r5   )r9   r7   rB   r   s    r   
test_dumpsTestDump.test_dumpsD   s    B.r   c                 f   U R                  [        R                  " SSS.SS9S5        U R                  [        R                  " [        R                  " SS0SS0S.5      5      S	S0S
S0S.5        U R                  [        R                  " SSS[	        S5      SS[	        S5      SSS0SS9S5        g )NFT)TFrN   z{"false": true, "true": false}r   r   )k1k2rJ   0rT   g      @g      @rP      7z3{"2": 3.0, "4.0": 5, "6": true, "7": 0, "false": 1})r9   r7   rB   rA   r   r   s    r   test_encode_truefalseTestDump.test_encode_truefalseG   s    d+t=1	3 	JJtzz%Aq6"BCDQ<Qx0	
 	JJCil1ta	
   B	Cr   c                     / SQn[         R                  " [         R                  " U5      5      nU R                  US5        g )N))onerP   )tworT   )three   )four   )fiver   z6{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5})r7   rB   OrderedDictr9   )r   r`   r,   s      r   test_ordered_dictTestDump.test_ordered_dict[   s5    PJJt''./D	Fr   c                      " S S[         5      n[        R                  " / SQU" S5      S9nU R                  US5        g)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                   $    \ rS rSrSrS rS rSrg)@TestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeIntp   z'An awesome reimplementation of integersc                 j    [        U5      S:  a$  [        US   [        5      (       a  US   U l        g g g )Nr   )lenr*   int_int)r   argskwargss      r   __init__ITestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__init__s   s5    t9q=
 "$q'3//$(G	 0 !r   c                 X    [        U S5      (       a  U R                  U-  $ [        S5      e)Nr   zOTo do non-awesome things with this object, please construct it from an integer!)hasattrr   NotImplementedError)r   rQ   s     r   __mul__HTestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__mul__~   s5     4((99u,,- /M N Nr   )r   N)r   r   r   r   __doc__r   r   r   r   r   r   
AwesomeIntr   p   s    9,Nr   r   )r   rP   rT   rw   )indentz[
   0,
   1,
   2
]N)objectr7   rB   r9   )r   r   r,   s      r   #test_indent_unknown_type_acceptance,TestDump.test_indent_unknown_type_acceptancec   s7    	N 	N0 JJyA767r   c                     S/S-  nU R                  [        R                  " [        R                  " U5      5      U5        g )Nr   i )r9   r7   rA   rB   )r   lsts     r   test_accumulatorTestDump.test_accumulator   s.    cFlDJJsO4c:r   c           	      l   [        SS5       H  n[        S [        U5       5       5      n[        5       n[        R                  " X#SS9  U R                  UR                  5       [        R                  " USS95        U R                  [        R                  " UR                  5       5      U5        M     g )NrT       c              3   <   #    U  H  n[        U5      U4v   M     g 7fr'   )str)rV   xs     r   rY   *TestDump.test_sort_keys.<locals>.<genexpr>   s     :/Qc!fa[/s   TrN   )	ranger_   r   r7   r8   r9   r:   rB   rA   )r   num_keyspr;   s       r   test_sort_keysTestDump.test_sort_keys   s{    aH:%/::A*CIIa-S\\^TZZT-JKTZZ7; %r   c                    SnU R                  [        R                  " [        U5      5      [        R                  " U5      5        U R                  [        R                  " [        U5      /5      [        R                  " U/5      5        U R                  [        R                  " [        U5      S05      [        R                  " US05      5        g )Nzthis is some text*   )r9   r7   rB   r   )r   texts     r   test_misbehaving_text_subtype&TestDump.test_misbehaving_text_subtype   s    "JJ-d34JJt	
 	JJ.t456JJv	
 	JJ.t4b9:JJbz"	
r   c                    [        S5      nU R                  [        R                  " [	        U5      5      [        R                  " U5      5        U R                  [        R                  " [	        U5      /5      [        R                  " U/5      5        U R                  [        R                  " [	        U5      S05      [        R                  " US05      5        g )Nu   this is some data â¬r   )r   r9   r7   rB   r   )r   datas     r   test_misbehaving_bytes_subtype'TestDump.test_misbehaving_bytes_subtype   s    12JJ.t45JJt	
 	JJ/567JJv	
 	JJ/5r:;JJbz"	
r   c                    U R                  [        R                  " [        S5      5      S5        U R	                  [
        [        R                  [        S5      5        U R                  [        R                  " [        S5      SS9S5        U R                  [        R                  " [        S5      SS9S5        [        (       a  U R	                  [        [        R                  [        S5      S S9  U R	                  [        [        R                  [        S5      S S9  U R                  [        R                  " [        S5      S [        S9S5        g U R                  [        R                  " [        S5      S S9S5        U R	                  [
        [        R                  [        S5      S S9  U R	                  [
        [        R                  [        S5      S [        S9  g )	N   â¬z"\u20ac"   ¤
iso-8859-1r   z"\u00a4"r/   r   default	r9   r7   rB   r   r]   UnicodeDecodeErrorr	   r^   r0   r   s    r   test_bytes_toplevelTestDump.test_bytes_toplevel   sh   An$56D,djj!F)DAfIE$	&AfIF$	&3iQ~5F'+  -iQvY'+  -TZZ&	D0BD') TZZ.(9DI(*0$**ai'+  -0$**ai'+5G  Ir   c                    U R                  [        R                  " [        S5      /5      S5        U R	                  [
        [        R                  [        S5      /5        U R                  [        R                  " [        S5      /SS9S5        U R                  [        R                  " [        S5      /SS9S5        [        (       a  U R	                  [        [        R                  [        S5      /S S9  U R	                  [        [        R                  [        S5      /S S9  U R                  [        R                  " [        S5      /S [        S9S5        g U R                  [        R                  " [        S5      /S S9S5        U R	                  [
        [        R                  [        S5      /S S9  U R	                  [
        [        R                  [        S5      /S [        S9  g )	Nr   z
["\u20ac"]r   r   r   z
["\u00a4"]r/   r   r   r   s    r   test_bytes_nestedTestDump.test_bytes_nested   s   Q~%6$78-H,djj1V9+FQvYK,G&	(QvYK-H&	(3ia6G5H'+  -iai['+  -TZZ6d0BD*, TZZ>):(;dK*,0$**qyk'+  -0$**qyk'+5G  Ir   c                    U R                  [        R                  " [        S5      S05      S5        U R	                  [
        [        R                  [        S5      S05        U R                  [        R                  " [        S5      S0SS9S5        U R                  [        R                  " [        S5      S0SS9S5        [        (       a  U R	                  [        [        R                  [        S5      S0S S9  U R	                  [        [        R                  [        S5      S0S S9  U R	                  [        [        R                  [        S5      S0S [        S	9  U R                  [        R                  " [        S5      S0S S
S9S5        g U R                  [        R                  " [        S5      S0S S9S5        U R	                  [
        [        R                  [        S5      S0S S9  U R	                  [
        [        R                  [        S5      S0S [        S	9  U R	                  [
        [        R                  [        S5      S0S S
S9  g )Nr   r   z{"\u20ac": 42}r   r   r   z{"\u00a4": 42}r/   r   T)r   r[   r6   r   r   s    r   test_bytes_keyTestDump.test_bytes_key   s   Q~%6$;<>OP,djj1V9b/JQvYOlK*	,QvYOmL*	,3ia6G5L'+  -iai_'+  -iai_'+5G  ITZZ6B$157"$ TZZ>):B(?$O.00$**qy"o'+  -0$**qy"o'+5G  I0$**qy"o'+d  <r   r   N)r   r   r   r   r<   rD   rf   ri   rq   r|   r   r   r   r   r   r   r   r   r   r   r   r   r2   r2      sN    /
H>/C(F&8P;
<
 
I.I.<r   r2   )unittestr   simplejson.compatr   r   r   r   r   r	   
simplejsonr7   r   r   r-   r0   r2   r   r   r   <module>r      sA     Q Q Y "k "
#f<x f<r   