
    3hh4$                     j    S SK JrJr  / SQrSSS.r " S S5      r " S S	\\5      r " S
 S\\5      rg)    )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                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestFailP   c                     [        [        5       HQ  u  pUS-   nU[        ;   a  U R                  U5        M'   U R                  U5        U R	                  SU SU< 35        MS     g ! U R
                   a     Mi  f = f)Nr   zExpected failure for failz.json: )	enumerateJSONDOCSSKIPSloadsfailJSONDecodeError)selfidxdocs      A/opt/python-3.13.8/usr/lib/python3.13/test/test_json/test_fail.pytest_failuresTestFail.test_failuresQ   sx    !(+HC'Ce|

3K

3 		5cU'#IJ , '' s   A&&A:9A:c                     SSS.nU R                  [        S5         U R                  U5        S S S 5        g ! , (       d  f       g = f)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_dict"TestFail.test_non_string_keys_dict^   s?    !$##IGIJJtI I Is	   7
Ac                     SS K nU R                  [        S5         U R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   z.Object of type module is not JSON serializable)sysr   r   r   )r   r!   s     r   test_not_serializableTestFail.test_not_serializabled   s7    ##I@BJJsOB B Bs	   6
Ac                    / SQnUSS/-  nU H  u  p#nU R                  U R                  5       nU R                  U5        S S S 5        WR                  nU R	                  UR
                  U5        U R	                  UR                  U5        U R	                  UR                  S5        U R	                  UR                  US-   5        U R	                  [        U5      SX4S-   U4-  5        M     g ! , (       d  f       N= f)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   r9   r   cmerrs          r   test_truncated_inputTestFail.test_truncated_inputj   s    

" 	7;
 	

 )NDs""4#7#78B

4  9,,CSWWc*SWWc*SZZ+SYYa0SX=!7C012 )88   C00
C>	c                    / SQnU H  u  p#nU R                  U R                  5       nU R                  U5        S S S 5        WR                  nU R	                  UR
                  U5        U R	                  UR                  U5        U R	                  UR                  S5        U R	                  UR                  US-   5        U R	                  [        U5      SX4S-   U4-  5        M     g ! , (       d  f       N= f)N))z[,r&   r   )z
{"spam":[}r&   	   )z[42:r(   r)   )z
[42 "spam"r(   r*   )z[42,]*Illegal trailing comma before end of arrayr)   )z{"spam":[42}r(   r2   )z["]r+   r   )z["spam":r(   r,   )z	["spam",]rG   r,   )z{:r/   r   )z{,r/   r   )z{42r/   r   )z[{]r/   r   )z{"spam",r0   r,   )z{"spam"}r0   r,   )z	[{"spam"]r0   r-   )z	{"spam":}r&   r-   )z
[{"spam":]r&   rF   )z{"spam":42 "ham"r(   r2   )z[{"spam":42]r(   r2   )z{"spam":42,}+Illegal trailing comma before end of objectr1   )z{"spam":42 , }rH   r2   )z	[123  , ]rG      r   r4   r5   r>   s          r   test_unexpected_dataTestFail.test_unexpected_data   s    

2 )NDs""4#7#78B

4  9,,CSWWc*SWWc*SZZ+SYYa0SX=!7C012 )88s   C))
C7	c                    / SQnUSS/-  nU H  u  p#nU R                  U R                  5       nU R                  U5        S S S 5        WR                  nU R	                  UR
                  U5        U R	                  UR                  U5        U R	                  UR                  S5        U R	                  UR                  US-   5        U R	                  [        U5      SX4S-   U4-  5        M     g ! , (       d  f       N= f)N))z[]]
Extra datar   )z{}}rM   r   )z[],[]rM   r   )z{},{}rM   r   )z	42,"spam"rM   r   )z	"spam",42rM   rI   r   r4   r5   r>   s          r   test_extra_dataTestFail.test_extra_data   s    

 	**
 	

 )NDs""4#7#78B

4  9,,CSWWc*SWWc*SZZ+SYYa0SX=!7C012 )88rD   c                    / SQnU H  u  p#pEU R                  U R                  5       nU R                  U5        S S S 5        WR                  nU R	                  UR
                  S5        U R	                  UR                  U5        U R	                  UR                  U5        U R	                  UR                  U5        U R	                  [        U5      SX4U4-  5        M     g ! , (       d  f       N= f)N))!r   r   r   )z !r   r   r   )z
!r   r   r   )z
  

     !r*   rI   r1   r&   z,Expecting value: line %s column %d (char %d)r5   )r   r?   r   linecolr   r@   rA   s           r   test_linecolTestFail.test_linecol   s    

 %/ D""4#7#78B

4  9,,CSWW&78SWWc*SZZ.SYY,SXK"-./ %/88s   C##
C1	 N)__name__
__module____qualname____firstlineno__r   r   r"   rB   rJ   rN   rT   __static_attributes__rV       r   r   r   P   s(    K 2D$2L2./r\   r   c                       \ rS rSrSrg)
TestPyFail   rV   NrW   rX   rY   rZ   r[   rV   r\   r   r^   r^      s    Dr\   r^   c                       \ rS rSrSrg)	TestCFail   rV   Nr`   rV   r\   r   rb   rb      s    $r\   rb   N)test.test_jsonr   r   r   r   r   r^   rb   rV   r\   r   <module>re      sC    (EP (6	
J/ J/X )6 ( &% &r\   