3
O5[              :   @   s   d dl Z d dlmZ d dlZddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<g:Zd=d>d?ZG d@dA dAeZdS )B    N)TestCasez<"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{]z{"foo": "bar"]z{"foo": "bar"ZnulZnulx-z-xz-ez-e0z	-Infinitez-InfZInfinitZInfiniteZNaMZNuNZfalsyZfalZtrugZtruZ1eZ1exz1e-z1e-xzwhy not have a string payload?z,spec doesn't specify any nesting limitations)      c               @   s$   e Zd Zdd Zdd Zdd ZdS )TestFailc             C   sn   xht tD ]\\}}|d }|tkr.tj| q
ytj| W n tjk
rR   Y q
X | jd||f  q
W d S )Nr   z$Expected failure for fail%d.json: %r)	enumerateJSONDOCSSKIPSjsonloadsJSONDecodeErrorfail)selfidxdoc r   S/var/www/html/itrack/venv/lib/python3.6/site-packages/simplejson/tests/test_fail.pytest_failuresm   s    
zTestFail.test_failuresc             C   s   xdD ]}yt j| W n| t jk
rd   tj d }| j|jd | j|jd | j|jd Y q t	k
r   tj d }| j
d||f  Y qX | j
d qW d S )N[,]r      z!Unexpected exception raised %r %sz Unexpected success parsing '[,]')r   r   )r   r   r   sysexc_infoassertEqualposlinenocolno	Exceptionr   )r   r   er   r   r   test_array_decoder_issue46z   s    
z#TestFail.test_array_decoder_issue46c             C   s   d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6g}x|D ]\}}}yt j| W n t jk
 r   tj d }| j|jd t| |d!|j||f  | j|j|d"|j||f  Y q. t	k
 r   tj d }| j
d#||f  Y q.X | j
d$|f  q.W d S )7N Expecting valuer   [Expecting value or ']'r   [42Expecting ',' delimiter   [42,   ["Unterminated string starting at["spam["spam"   ["spam",   r   1Expecting property name enclosed in double quotes{"{"spam{"spam"Expecting ':' delimiter{"spam":
{"spam":42
   {"spam":42,   ""spam[,z%r doesn't start with %r for %rzpos %r != %r for %rz!Unexpected exception raised %r %szUnexpected success parsing '%r')r    r!   r   )r"   r#   r   )r$   r%   r&   )r'   r!   r(   )r)   r*   r   )r+   r*   r   )r,   r%   r-   )r.   r!   r/   )r   r0   r   )r1   r*   r   )r2   r*   r   )r3   r4   r-   )r5   r!   r/   )r6   r%   r7   )r8   r0   r9   )r:   r*   r   )r;   r*   r   )r<   r!   r   )r   r   r   r   r   r   msglenr   r   r   )r   Z
test_casesdatar=   r   r   r   r   r   test_truncated_input   sF     zTestFail.test_truncated_inputN)__name__
__module____qualname__r   r   r@   r   r   r   r   r   l   s   r   )r   Zunittestr   
simplejsonr   r	   r
   r   r   r   r   r   <module>   s~   