î
‚Ü XÊ  ã            :   @   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/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< g: Z i d= d> 6d? d@ 6Z GdA dB „  dB e ƒ Z d S)Cé    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               @   s4   e  Z d  Z d d „  Z d d „  Z d d „  Z d S)ÚTestFailc             C   sŠ   xƒ t  t ƒ D]u \ } } | d } | t k rB t j | ƒ q n  y t j | ƒ Wn t j k
 rj Yq X|  j d | | f ƒ q Wd  S)Nr   z$Expected failure for fail%d.json: %r)Ú	enumerateÚJSONDOCSÚSKIPSÚjsonÚloadsÚJSONDecodeErrorÚfail)ÚselfÚidxÚdoc© r   úW/home/ubuntu/projects/ifolica/lib/python3.4/site-packages/simplejson/tests/test_fail.pyÚtest_failuresm   s    
zTestFail.test_failuresc             C   sÒ   xË d d g D]½ } y t  j | ƒ Wn– t  j k
 r„ t j ƒ  d } |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ Yq t	 k
 r¼ t j ƒ  d } |  j
 d | | f ƒ Yq X|  j
 d ƒ q Wd  S)Nz[,]r   é   z!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_issue46z   s    z#TestFail.test_array_decoder_issue46c             C   s;  d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 g } xø | D]ð \ } } } y t  j | ƒ Wn¹ t  j k
 ræ t j ƒ  d } |  j | j d  t | ƒ … | d! | j | | f ƒ |  j | j | d" | j | | f ƒ YqC t	 k
 rt j ƒ  d } |  j
 d# | | f ƒ YqC X|  j
 d$ | f ƒ qC Wd  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   r/   r   )r0   r)   r   )r1   r)   r   )r2   r3   r,   )r4   r    r.   )r5   r$   r6   )r7   r/   r8   )r9   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€   	
