HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_json/__pycache__/test_recursion.cpython-38.opt-1.pyc
U

0D�g��@sTddlmZmZGdd�d�ZGdd�d�ZGdd�dee�ZGdd	�d	ee�Zd
S)�)�PyTest�CTestc@seZdZdS)�JSONTestObjectN��__name__�
__module__�__qualname__�r	r	�</opt/cppython/lib/python3.8/test/test_json/test_recursion.pyrsrc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
TestRecursioncCs�g}|�|�z|�|�Wntk
r0YnX|�d�g}|g}|�|�z|�|�Wntk
rrYnX|�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_listrecursioncCsVi}||d<z|�|�Wntk
r.YnX|�d�i}||d�}|�|�dS)N�testz)didn't raise ValueError on dict recursion)�a�b)r
rrrr	r	r
�test_dictrecursion s

z TestRecursion.test_dictrecursioncCsdGdd�d|jj�}|�}|�|�t�d�d|_z|�t�Wntk
rTYnX|�d�dS)Nc@seZdZdZdd�ZdS)zATestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoderFcSs$|tkr|jrtgSdStj�|�S)Nr)r�recurseZpyjson�JSONEncoder�default�r�or	r	r
r1s
zITestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoder.defaultN)rrrrrr	r	r	r
�RecursiveJSONEncoder/srz"JSONTestObject"Tz,didn't raise ValueError on default recursion)�jsonrZassertEqual�encoderrrr)rr�encr	r	r
�test_defaultrecursion.s
z#TestRecursion.test_defaultrecursionc	Cs�|�t�� |�ddddd�W5QRX|�t�� |�ddddd�W5QRX|�t�� |�ddddd�W5QRXdS)Nz{"a":順�1�}z[1]�[�])�assertRaises�RecursionError�loads)rr	r	r
�#test_highly_nested_objects_decodingDs$$z1TestRecursion.test_highly_nested_objects_decodingc	Cslgi}}td�D]}|gd|i}}q|�t��|�|�W5QRX|�t��|�|�W5QRXdS)Nr#�k)�ranger(r)r
)r�l�drr	r	r
�#test_highly_nested_objects_encodingNs
z1TestRecursion.test_highly_nested_objects_encodingc	Cs>Gdd�d|jj�}|�t��|dd��d�W5QRXdS)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	r
rzHTestRecursion.test_endless_recursion.<locals>.EndlessJSONEncoder.defaultN)rrrrr	r	r	r
�EndlessJSONEncoderZsr1F)Zcheck_circulary@)rrr(r)r )rr1r	r	r
�test_endless_recursionXsz$TestRecursion.test_endless_recursionN)	rrrrrr"r+r0r2r	r	r	r
rs

rc@seZdZdS)�TestPyRecursionNrr	r	r	r
r3csr3c@seZdZdS)�TestCRecursionNrr	r	r	r
r4dsr4N)Ztest.test_jsonrrrrr3r4r	r	r	r
�<module>s[