Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/test/test_json/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/test_json/__pycache__/test_recursion.cpython-39.pyc

a

XC?h
�@s`ddlmZddlmZmZGdd�d�ZGdd�d�ZGdd�dee�ZGd	d
�d
ee�ZdS)�)�support)�PyTest�CTestc@seZdZdS)�JSONTestObjectN��__name__�
__module__�__qualname__�r
r
�B/opt/alt/python39/lib64/python3.9/test/test_json/test_recursion.pyrsrc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
TestRecursioncCs�g}|�|�z|�|�Wnty.Yn0|�d�g}|g}|�|�z|�|�WntynYn0|�d�g}||g}|�|�dS)Nz)didn't raise ValueError on list recursionz5didn't raise ValueError on alternating list recursion)�append�dumps�
ValueError�fail��self�x�yr
r
r�test_listrecursion
s$



z TestRecursion.test_listrecursioncCsTi}||d<z|�|�Wnty,Yn0|�d�i}||d�}|�|�dS)N�testz)didn't raise ValueError on dict recursion)�a�b)rrrrr
r
r�test_dictrecursion!s

z TestRecursion.test_dictrecursioncCsbGdd�d|jj�}|�}|�|�t�d�d|_z|�t�WntyRYn0|�d�dS)Nc@seZdZdZdd�ZdS)zATestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoderFcSs&|tur|jrtgSdS|jj�|�S)Nr)r�recurse�json�JSONEncoder�default�r�or
r
rr2s
zITestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoder.defaultN)rrr	rrr
r
r
r�RecursiveJSONEncoder0sr z"JSONTestObject"Tz,didn't raise ValueError on default recursion)rrZassertEqual�encoderrrr)rr �encr
r
r�test_defaultrecursion/s
z#TestRecursion.test_defaultrecursionc	CsL|�t��Rt���*|�ddddd�Wd�n1sD0YWd�n1sb0Y|�t��Rt���*|�ddddd�Wd�n1s�0YWd�n1s�0Y|�t��Tt���*|�ddddd�Wd�n1�s0YWd�n1�s>0YdS)Nz{"a":順�1�}z[1]�[�])�assertRaises�RecursionErrorr�infinite_recursion�loads)rr
r
r�#test_highly_nested_objects_decodingEs
V
V
z1TestRecursion.test_highly_nested_objects_decodingc	Cs�gi}}td�D]}|gd|i}}q|�t��Bt���|�|�Wd�n1s\0YWd�n1sz0Y|�t��Bt���|�|�Wd�n1s�0YWd�n1s�0YdS)Nr$�k)�ranger)r*rr+r)r�l�drr
r
r�#test_highly_nested_objects_encodingRs

F
z1TestRecursion.test_highly_nested_objects_encodingc	CszGdd�d|jj�}|�t��Ht��� |dd��d�Wd�n1sN0YWd�n1sl0YdS)Nc@seZdZdd�ZdS)z@TestRecursion.test_endless_recursion.<locals>.EndlessJSONEncodercSs|gS)z?If check_circular is False, this will keep adding another list.r
rr
r
rraszHTestRecursion.test_endless_recursion.<locals>.EndlessJSONEncoder.defaultN)rrr	rr
r
r
r�EndlessJSONEncoder`sr3F)Zcheck_circulary@)rrr)r*rr+r!)rr3r
r
r�test_endless_recursion^s
z$TestRecursion.test_endless_recursionN)	rrr	rrr#r-r2r4r
r
r
rr	s
rc@seZdZdS)�TestPyRecursionNrr
r
r
rr5j�r5c@seZdZdS)�TestCRecursionNrr
r
r
rr7kr6r7N)	rrZtest.test_jsonrrrrr5r7r
r
r
r�<module>s
a