Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/test_json/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/test_json/__pycache__/test_decode.cpython-35.opt-2.pyc



���]��@s�ddlZddlmZmZddlmZddlmZmZGdd�d�Z	Gdd�de	e�Z
Gd	d
�d
e	e�ZdS)�N)�StringIO�BytesIO)�OrderedDict)�PyTest�CTestc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
TestDecodecCsN|jddtj�}|jt|tj��|j|tjd��dS)Nz1.1Zparse_float)�loads�decimalZDecimal�
assertTrue�
isinstance�assertEqual)�self�rval�r�0/opt/alt/python35/lib64/python3.5/test_decode.py�test_decimalszTestDecode.test_decimalcCs?|jddt�}|jt|t��|j|d�dS)N�1Z	parse_intg�?)r�floatr
rr)r
rrrr�
test_float
szTestDecode.test_floatcCsO|j|jd�i�|j|jd�g�|j|jd�d�dS)Nz{}z[]z""�)rr)r
rrr�test_empty_objectsszTestDecode.test_empty_objectscCs\d}dddddddg}|j|j|�t|��|j|j|ddd��|�|j|jjt|�ddd��|�|j|dt�}|j|t|��|jt|�t�|j|j|dtddd��t|��|j|jddt�t��|j|jddt�tdt�fg��dS) Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}�xkd��kcw��art��hxm��qrt��pad��hoy�Zobject_pairs_hookcSs|S)Nr)�xrrr�<lambda>sz3TestDecode.test_object_pairs_hook.<locals>.<lambda>cSs|S)Nr)r%rrrr&sZobject_hookcSsdS)Nr)r%rrrr&$sz{}z
{"empty": {}}�empty)rr)rr)rr)rr)rr )r!r")r#r$)rr�eval�json�loadrr�type)r
�s�pZodrrr�test_object_pairs_hooks$%

z!TestDecode.test_object_pairs_hookcCs/|jd�}|j|ddddi�dS)Nz,{   "key"    :    "value"    ,  "k":"v"    }�key�value�k�v)rr)r
rrrr�test_decoder_optimizations-sz%TestDecode.test_decoder_optimizationscCs]||�}t|d�t|d�\}}\}}|j||�|j||�dS)Nrr)�sortedZassertIs)r
�sourcerr�a�b�c�drrr�check_keys_reuse4s-zTestDecode.check_keys_reusecCs<d}|j||j�|j||jjj�j�dS)Nu2[{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}])r:rr)�decoder�JSONDecoder�decode)r
r,rrr�test_keys_reuse:szTestDecode.test_keys_reusecCs,d}d}|j|j||j|�dS)Nz
[1, 2, 3]5z
Extra data)�assertRaisesRegex�JSONDecodeErrorr)r
r,�msgrrr�test_extra_data?szTestDecode.test_extra_datacCs,d}d}|j|j||j|�dS)Nz	["abc\y"]�escape)r?r@r)r
r,rArrr�test_invalid_escapeDszTestDecode.test_invalid_escapec
Csyd}x<ddddgidgD]}|jt||j|�q"W|jt|��|jjtd��WdQRXdS)Nzthe JSON object must be strrg��Q�	@sbytess�s[1,2,3])r?�	TypeErrorrr)r*r)r
rAr0rrr�test_invalid_input_typeIs
"z"TestDecode.test_invalid_input_typecCsdjd�jd�}|j|j��}|j|�WdQRX|jdt|j��|j|j��}|jj	t
|��WdQRX|jdt|j��djdjd�jd��}|j|j|�d�|j|jj	t
|��d�dS)Nz[1,2,3]z	utf-8-sigzutf-8�BOMz"{}"ru)
�encoder=�assertRaisesr@rZassertIn�str�	exceptionr)r*r�formatr)r
Zbom_json�cmZ
bom_in_strrrr�test_string_with_utf8_bomPs!z$TestDecode.test_string_with_utf8_bomcCs0|jj�}|jt|jddd�dS)Nr6�*iP�i�<��)r)r<rI�
ValueErrorZ
raw_decode)r
r9rrr�test_negative_index^szTestDecode.test_negative_indexN)�__name__�
__module__�__qualname__rrrr.r3r:r>rBrDrFrNrQrrrrrsrc@seZdZdS)�TestPyDecodeN)rRrSrTrrrrrUbsrUc@seZdZdS)�TestCDecodeN)rRrSrTrrrrrVcsrV)r	�iorr�collectionsrZtest.test_jsonrrrrUrVrrrr�<module>s[