o
    €Ýhæ  ã                   @   sH   d dl Z d dlmZ d dlZd dlZd dlmZmZ G dd„ deƒZ	dS )é    N)ÚTestCase)ÚbÚPY3c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestScanStringc                 C   s   |   tjj¡ d S )N)Ú_test_scanstringÚ
simplejsonÚdecoderÚpy_scanstring©Úself© r   úh/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/simplejson/tests/test_scanstring.pyÚtest_py_scanstring   s   z!TestScanString.test_py_scanstringc                 C   s<   t jjsd S |  t jj¡ |  tt j dd¡d tƒ¡ d S )Nz""r   )r   r   Úc_scanstringr   Z
assertTrueÚ
isinstanceÚstrr
   r   r   r   Útest_c_scanstring   s   "z TestScanString.test_c_scanstringc              	   C   s  t jdkr|  |ddd dƒd¡ n|  |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¡ |  |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*¡ |  |d+dd dƒd,¡ |  |d-dd dƒd.¡ tttd/d0ƒƒD ]}|  ||d1 d/d d2ƒ|df¡ |  t||d1 d/d d¡ qõ|  t|d3d/d d¡ |  t|d4d/d d¡ |  t|d5d/d d¡ |  t|d6d/d d¡ |  t|d7d/d d¡ |  t|d8d/d d¡ |  t|d9d/d d¡ |  t|d:d/d d¡ t jdkr|  t|d;d/d d¡ |  t|d<d/d d¡ d S d S )=Niÿÿ  u   "zð„ x"é   T)õ   zð„ xé   )r   é   z"\u007b")Ú{é   z<"A JSON payload should be an object or array, not a string.")z:A JSON payload should be an object or array, not a string.é<   z["Unclosed array"é   )zUnclosed arrayé   z["extra comma",])zextra commaé   z["double extra comma",,])zdouble extra commaé   z["Comma after the close"],)zComma after the closeé   z["Extra close"]])zExtra closer   z{"Extra comma": true,})zExtra commar   z:{"Extra value after close": true} "misplaced quoted value")zExtra value after closeé   z{"Illegal expression": 1 + 2})zIllegal expressionr   z{"Illegal invocation": alert()})zIllegal invocationr   z+{"Numbers cannot have leading zeroes": 013})z"Numbers cannot have leading zeroesé%   z{"Numbers cannot be hex": 0x14})zNumbers cannot be hexr   z2[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]r   )zToo deepé   z{"Missing colon" null})zMissing coloné   z{"Double colon":: null})zDouble coloné   z {"Comma instead of colon", null})zComma instead of coloné   z!["Colon instead of comma": false])zColon instead of commar$   z["Bad value", truth])z	Bad valueé   r   é   ú"FÚ Úaú\z\uz\u0z\u01z\u012z\u0123z	\ud834\u"z\ud834\x0123")ÚsysÚ
maxunicodeÚassertEqualÚmapÚchrÚrangeÚassertRaisesÚ
ValueError)r   Ú
scanstringÚcr   r   r   r      sÜ   
þþþþþþþþþþþþþþþþþþþþþþþ
ÿ
ÿýzTestScanString._test_scanstringc                 C   s0   |   ttjjddd¡ |   ttjjtdƒ¡ d S )NÚxxxr   u   xxÃ¿)	r1   r2   Újsonr   r3   ÚUnicodeDecodeErrorÚencoderÚencode_basestring_asciir   r
   r   r   r   Útest_issue3623‡   s   ÿÿzTestScanString.test_issue3623c                 C   s<   t tdt tdd ƒƒ}|d usJ ‚|  ttjjd|d ¡ d S )NÚmaxsizeZmaxintr5   r   )Úgetattrr+   r1   ÚOverflowErrorr6   r   r3   )r   r;   r   r   r   Útest_overflow   s
   ÿzTestScanString.test_overflowc                    sÊ   t jj‰ d‡ ‡fdd„	}|ddƒ |ddƒ |dd	ƒ |d
dƒ |ddƒ |ddƒ |dd ddg¡ƒ |dd ddg¡ƒ |d ddg¡d ddg¡dd ˆ tˆ ddd d¡ ˆ tˆ ddd d¡ d S )NTc                    sZ   | g}t s|r| |  d¡¡ |D ]} ˆ | dd dƒ\}}ˆ t| ƒ|¡ ˆ ||¡ qd S )NÚutf8r   T)r   ÚappendÚencoder-   Úlen)ÚgivenÚexpectÚ	test_utf8ZgivensÚresÚcount©r3   r   r   r   Ú
assertScan—   s   ýz2TestScanString.test_surrogates.<locals>.assertScanz"z\ud834\u0079x"u   zí ´yxz"z\ud834\udd20x"r   z"z\ud834\ud834\udd20x"u	   zí ´ð„ xz
"z\ud834x"u   zí ´xz
"z\udd20x"u   zí´ xu   "zí ´x"u   "z\ud834í´ x12345"r(   u   zí ´u	   í´ x12345u   "zí ´\udd20x"u   í´ xu   "zí ´u   í´ x"F)rE   z	"z\ud83x"r   z"z\ud834\udd2x")T)r6   r   r3   Újoinr1   r2   )r   rI   r   rH   r   Útest_surrogates”   sZ   	þþþþþþþþý
ÿ
ÿzTestScanString.test_surrogatesN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r:   r>   rK   r   r   r   r   r      s    	lr   )
r+   Zunittestr   r   r6   Zsimplejson.decoderZsimplejson.compatr   r   r   r   r   r   r   Ú<module>   s    