
    dafe#                     j    d dl mZmZ g dZdddZ G d d      Z G d d	ee      Z G d
 dee      Zy)    )PyTestCTest)"z<"A JSON payload should be an object or array, not a string."z["Unclosed array"z%{unquoted_key: "keys must be quoted"}z["extra comma",]z["double extra comma",,]z[   , "<-- missing value"]z["Comma after the close"],z["Extra close"]]z{"Extra comma": true,}z:{"Extra value after close": true} "misplaced quoted value"z{"Illegal expression": 1 + 2}z{"Illegal invocation": alert()}z+{"Numbers cannot have leading zeroes": 013}z{"Numbers cannot be hex": 0x14}z"["Illegal backslash escape: \x15"]z[\naked]z"["Illegal backslash escape: \017"]z2[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]z{"Missing colon" null}z{"Double colon":: null}z {"Comma instead of colon", null}z!["Colon instead of comma": false]z["Bad value", truth]z['single quote']z["	tab	character	in	string	"]z&["tab\   character\   in\  string\  "]z["line
break"]z["line\
break"]z[0e]z[0e+]z[0e+-1]z({"Comma instead if closing brace": true,z["mismatch"}z$["AZ control characters in string"]zwhy not have a string payload?z,spec doesn't specify any nesting limitations)      c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestFailc                     t        t              D ]M  \  }}|dz   }|t        v r| j                  |       %	 | j                  |       | j	                  d| d|       O y # | j
                  $ r Y bw xY w)Nr   zExpected failure for failz.json: )	enumerateJSONDOCSSKIPSloadsfailJSONDecodeError)selfidxdocs      3/root/Python-3.12.4/Lib/test/test_json/test_fail.pytest_failureszTestFail.test_failuresQ   s    !(+ 
	KHC'Ce|

3K

3 		5cU'#IJ
	K '' s   A!!A32A3c                     ddd}| j                  t        d      5  | j                  |       d d d        y # 1 sw Y   y xY w)Nr      )a)r   r   z5keys must be str, int, float, bool or None, not tuple)assertRaisesRegex	TypeErrordumps)r   datas     r   test_non_string_keys_dictz"TestFail.test_non_string_keys_dict^   sA    !$##IGI 	JJt	 	 	s	   7A c                     dd l }| j                  t        d      5  | j                  |       d d d        y # 1 sw Y   y xY w)Nr   z.Object of type module is not JSON serializable)sysr   r   r   )r   r   s     r   test_not_serializablezTestFail.test_not_serializabled   s9    ##I@B 	JJsO	 	 	s   6?c                    g d}|ddgz  }|D ]  \  }}}| j                  | j                        5 }| j                  |       d d d        j                  }| j	                  |j
                  |       | j	                  |j                  |       | j	                  |j                  d       | j	                  |j                  |dz          | j	                  t        |      d||dz   |fz          y # 1 sw Y   xY w)N)) Expecting valuer   )[r"   r   )z[42Expecting ',' delimiter   )z[42,r"      )z["Unterminated string starting atr   )z["spamr'   r   )z["spam"r$      )z["spam",r"      ){1Expecting property name enclosed in double quotesr   )z{"r'   r   )z{"spamr'   r   )z{"spam"Expecting ':' delimiterr(   )z{"spam":r"   r)   )z
{"spam":42r$   
   )z{"spam":42,r+      )"r'   r   )z"spamr'   r   r   %s: line 1 column %d (char %d)
assertRaisesr   r   	exceptionassertEqualmsgposlinenocolnostrr   
test_casesr   r5   r   cmerrs          r   test_truncated_inputzTestFail.test_truncated_inputj   s    

" 	7;
 	

 ) 
	2ND#s""4#7#78 !B

4 !,,CSWWc*SWWc*SZZ+SYYa0SX=!37C012
	2! !   C00C9	c                    g d}|D ]  \  }}}| j                  | j                        5 }| j                  |       d d d        j                  }| j	                  |j
                  |       | j	                  |j                  |       | j	                  |j                  d       | j	                  |j                  |dz          | j	                  t        |      d||dz   |fz          y # 1 sw Y   xY w)N))z[,r"   r   )z
{"spam":[}r"   	   )z[42:r$   r%   )z
[42 "spam"r$   r&   )z[42,]r"   r&   )z{"spam":[42}r$   r.   )z["]r'   r   )z["spam":r$   r(   )z	["spam",]r"   r)   )z{:r+   r   )z{,r+   r   )z{42r+   r   )z[{]r+   r   )z{"spam",r,   r(   )z{"spam"}r,   r(   )z	[{"spam"]r,   r)   )z	{"spam":}r"   r)   )z
[{"spam":]r"   rA   )z{"spam":42 "ham"r$   r.   )z[{"spam":42]r$   r.   )z{"spam":42,}r+   r.   r   r0   r1   r:   s          r   test_unexpected_datazTestFail.test_unexpected_data   s    

. ) 
	2ND#s""4#7#78 !B

4 !,,CSWWc*SWWc*SZZ+SYYa0SX=!37C012
	2! !s   C))C2	c                    g d}|ddgz  }|D ]  \  }}}| j                  | j                        5 }| j                  |       d d d        j                  }| j	                  |j
                  |       | j	                  |j                  |       | j	                  |j                  d       | j	                  |j                  |dz          | j	                  t        |      d||dz   |fz          y # 1 sw Y   xY w)N))z[]]
Extra datar   )z{}}rD   r   )z[],[]rD   r   )z{},{}rD   r   )z	42,"spam"rD   r   )z	"spam",42rD      r   r0   r1   r:   s          r   test_extra_datazTestFail.test_extra_data   s    

 	**
 	

 ) 
	2ND#s""4#7#78 !B

4 !,,CSWWc*SWWc*SZZ+SYYa0SX=!37C012
	2! !r?   c                    g d}|D ]  \  }}}}| j                  | j                        5 }| j                  |       d d d        j                  }| j	                  |j
                  d       | j	                  |j                  |       | j	                  |j                  |       | j	                  |j                  |       | j	                  t        |      d|||fz          y # 1 sw Y   xY w)N))!r   r   r   )z !r   r   r   )z
!r   r   r   )z
  

     !r&   rE   r-   r"   z,Expecting value: line %s column %d (char %d)r1   )r   r;   r   linecolr   r<   r=   s           r   test_linecolzTestFail.test_linecol   s    

 %/ 
	/ D$S""4#7#78 !B

4 !,,CSWW&78SWWc*SZZ.SYY,SXK"C-./
	/! !s   C$$C-	N)
__name__
__module____qualname__r   r   r   r>   rB   rF   rK        r   r   r   P   s(    K 2D"2H2./rP   r   c                       e Zd Zy)
TestPyFailNrL   rM   rN   rO   rP   r   rR   rR          rP   rR   c                       e Zd Zy)	TestCFailNrS   rO   rP   r   rV   rV      rT   rP   rV   N)test.test_jsonr   r   r   r   r   rR   rV   rO   rP   r   <module>rX      sC    (EP (6	
H/ H/T )6 ( &% &rP   