a
    Šxd  ã                   @   sH   d dl mZ d dlZG dd„ dƒZG dd„ dejƒZG dd„ deƒZdS )	é    )ÚTestCaseNc                   @   s   e Zd ZdS )ÚJSONTestObjectN)Ú__name__Ú
__module__Ú__qualname__© r   r   úW/var/www/html/Ranjet/env/lib/python3.9/site-packages/simplejson/tests/test_recursion.pyr      s   r   c                   @   s   e Zd ZdZdd„ ZdS )ÚRecursiveJSONEncoderFc                 C   s$   |t u r| jrt gS dS tj |¡S )Nr   )r   ÚrecurseÚjsonÚJSONEncoderÚdefault)ÚselfÚor   r   r   r      s
    zRecursiveJSONEncoder.defaultN)r   r   r   r
   r   r   r   r   r   r	   	   s   r	   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestRecursionc                 C   s”   g }|  |¡ zt |¡ W n ty.   Y n0 |  d¡ g }|g}|  |¡ zt |¡ W n tyn   Y n0 |  d¡ g }||g}t |¡ d S )Nz)didn't raise ValueError on list recursionz5didn't raise ValueError on alternating list recursion)Úappendr   ÚdumpsÚ
ValueErrorÚfail©r   ÚxÚyr   r   r   Útest_listrecursion   s$    



z TestRecursion.test_listrecursionc                 C   sT   i }||d< zt  |¡ W n ty,   Y n0 |  d¡ i }||dœ}t  |¡ d S )NÚtestz)didn't raise ValueError on dict recursion)ÚaÚb)r   r   r   r   r   r   r   r   Útest_dictrecursion,   s    

z TestRecursion.test_dictrecursionc                 C   sN   t ƒ }|  | t¡d¡ d|_z| t¡ W n ty>   Y n0 |  d¡ d S )Nz"JSONTestObject"Tz,didn't raise ValueError on default recursion)r	   ÚassertEqualÚencoder   r
   r   r   )r   Úencr   r   r   Útest_defaultrecursion:   s    z#TestRecursion.test_defaultrecursionN)r   r   r   r   r   r    r   r   r   r   r      s   r   )Zunittestr   Z
simplejsonr   r   r   r	   r   r   r   r   r   Ú<module>   s   