Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/test_json/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/test_json/__pycache__/test_recursion.cpython-34.pyc

�
g f��@srddlmZmZGdd�d�ZGdd�d�ZGdd�dee�ZGdd	�d	ee�Zd
S)�)�PyTest�CTestc@seZdZdS)�JSONTestObjectN)�__name__�
__module__�__qualname__�rr�B/opt/alt/python34/lib64/python3.4/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_listrecursioncCsni}||d<y|j|�Wntk
r5YnX|jd�i}i|d6|d6}|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>.RecursiveJSONEncoderFcSs3|tkr#|jrtgSdSntjj|�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�WdQX|jt��"|jddddd�WdQX|jt��"|jddddd�WdQXdS)Nz{"a":i���1�}z[1]�[�])�assertRaises�RuntimeError�loads)rrrr	�#test_highly_nested_objects_decodingDs##z1TestRecursion.test_highly_nested_objects_decodingcCs�gi}}x+td�D]}|gi|d6}}qW|jt��|j|�WdQX|jt��|j|�WdQXdS)Ni���k)�ranger#r$r)r�l�drrrr	�#test_highly_nested_objects_encodingNs
z1TestRecursion.test_highly_nested_objects_encodingc
CsLGdd�d|jj�}|jt��|dd�jd�WdQXdS)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[