a
    €h›  ã                   @   s8   d dl Z d dlmZ d dlZg d¢ZG dd„ deƒZdS )é    N)ÚTestCase)(z["Unclosed array"z["double extra comma",,]z[   , "<-- missing value"]z{"Illegal expression": 1 + 2}z{"Illegal invocation": alert()}z"["Illegal backslash escape: \x15"]z[\naked]z"["Illegal backslash escape: \017"]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&["tab\   character\   in\  string\  "]z["line\
break"]z[0e]z[0e+]z[0e+-1]z({"Comma instead if closing brace": true,z["mismatch"}Ú{z{]z{"foo": "bar"]z{"foo": "bar"ÚnulZnulxú-z-xz-ez-e0z	-Infinitez-InfZInfinitZInfiniteZNaMZNuNZfalsyZfalZtrugZtruc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestFailc              	   C   sT   t tƒD ]F\}}|d7 }zt |¡ W n tjy:   Y q0 |  d||f ¡ qd S )Né   z$Expected failure for fail%d.json: %r)Ú	enumerateÚJSONDOCSÚ	dirtyjsonÚloadsÚErrorÚfail)ÚselfÚidxÚdoc© r   úa/home/qiu/health_record_app/backend/venv/lib/python3.9/site-packages/dirtyjson/tests/test_fail.pyÚtest_failuresJ   s    zTestFail.test_failuresc              	   C   s    dD ]–}zt  |¡ W nx t jy`   t ¡ d }|  |jd¡ |  |jd¡ |  |jd¡ Y q t	yŽ   t ¡ d }|  
d||f ¡ Y q0 |  
d¡ qd S )N)ú[,]r   r   é   ú!Unexpected exception raised %r %sz Unexpected success parsing '[,]')r
   r   r   ÚsysÚexc_infoÚassertEqualÚposÚlinenoÚcolnoÚ	Exceptionr   )r   r   Úer   r   r   Útest_array_decoder_issue46T   s    z#TestFail.test_array_decoder_issue46c                 C   sÎ   g d¢}|D ]¼\}}}zt  |¡ W n’ t jyˆ   t ¡ d }|  |jd t|ƒ… |d|j||f ¡ |  |j|d|j||f ¡ Y q t	y¶   t ¡ d }|  
d||f ¡ Y q0 |  
d|f ¡ qd S )N))Ú úExpecting valuer   )ú[zExpecting value or ']'r   )z[42úExpecting ',' delimiteré   )z[42,r!   é   )z["úUnterminated string starting atr   )z["spamr&   r   )z["spam"r#   é   )z["spam",r!   é   )r   úExpecting property namer   )z{"r&   r   )z{"spamr&   r   )z{"spam"zExpecting ':' delimiterr'   )z{"spam":r!   r(   )z
{"spam":42r#   é
   )z{"spam":42,r)   é   )ú"r&   r   )z"spamr&   r   )z[,r!   r   r   z%r doesn't start with %r for %rzpos %r != %r for %rr   zUnexpected success parsing '%r')r
   r   r   r   r   r   ÚmsgÚlenr   r   r   )r   Z
test_casesÚdatar-   r   r   r   r   r   Útest_truncated_inputd   s&    ýþzTestFail.test_truncated_inputN)Ú__name__Ú
__module__Ú__qualname__r   r   r0   r   r   r   r   r   I   s   
r   )r   Zunittestr   r
   r	   r   r   r   r   r   Ú<module>   s   B