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_recursion.cpython-35.pyc



��Yf��@srddlmZmZGdd�d�ZGdd�d�ZGdd�dee�ZGdd	�d	ee�Zd
S)�)�PyTest�CTestc@seZdZdS)�JSONTestObjectN)�__name__�
__module__�__qualname__�rr�B/opt/alt/python35/lib64/python3.5/test/test_json/test_recursion.pyrsrc@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
TestRecursioncCs�g}|j|�y|j|�Wntk
r8YnX|jd�g}|g}|j|�y|j|�Wntk
r�YnX|jd�g}||g}|j|�dS)Nz)didn't raise ValueError on list recursionz5didn't raise ValueError on alternating list recursion)�append�dumps�
ValueError�fail)�self�x�yrrr	�test_listrecursion	s$


	


z TestRecursion.test_listrecursioncCsli}||d<y|j|�Wntk
r5YnX|jd�i}d|d|i}|j|�dS)NZtestz)didn't raise ValueError on dict recursion�a�b)rr
r)rrrrrr	�test_dictrecursion s


z TestRecursion.test_dictrecursioncCs~Gdd�d|jj�}|�}|j|jt�d�d|_y|jt�Wntk
rlYnX|jd�dS)Nc@s"eZdZdZdd�ZdS)zATestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoderFcSs0|tkr |jrtgSdStjj|�S)Nr)r�recurseZpyjson�JSONEncoder�default)r�orrr	r1s
	zITestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoder.defaultN)rrrrrrrrr	�RecursiveJSONEncoder/srz"JSONTestObject"Tz,didn't raise ValueError on default recursion)�jsonrZassertEqual�encoderrr
r)rr�encrrr	�test_defaultrecursion.s
		
z#TestRecursion.test_defaultrecursioncCs�|jt��"|jddddd�WdQRX|jt��"|jddddd�WdQRX|jt��"|jddddd�WdQRXdS)Nz{"a":i���1�}z[1]�[�])�assertRaises�RecursionError�loads)rrrr	�#test_highly_nested_objects_decodingDs$$z1TestRecursion.test_highly_nested_objects_decodingcCs�gi}}x*td�D]}|gd|i}}qW|jt��|j|�WdQRX|jt��|j|�WdQRXdS)Ni���k)�ranger#r$r)r�l�drrrr	�#test_highly_nested_objects_encodingNs
z1TestRecursion.test_highly_nested_objects_encodingc
CsMGdd�d|jj�}|jt��|dd�jd�WdQRXdS)Nc@seZdZdd�ZdS)z@TestRecursion.test_endless_recursion.<locals>.EndlessJSONEncodercSs|gS)z?If check_circular is False, this will keep adding another list.r)rrrrr	r[szHTestRecursion.test_endless_recursion.<locals>.EndlessJSONEncoder.defaultN)rrrrrrrr	�EndlessJSONEncoderZsr,Zcheck_circularFy@)rrr#r$r)rr,rrr	�test_endless_recursionXsz$TestRecursion.test_endless_recursionN)	rrrrrrr&r+r-rrrr	r
s

r
c@seZdZdS)�TestPyRecursionN)rrrrrrr	r.csr.c@seZdZdS)�TestCRecursionN)rrrrrrr	r/dsr/N)Ztest.test_jsonrrrr
r.r/rrrr	�<module>s[