o
    TÃiž  ã                   @   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   úN/home/ubuntu/.local/lib/python3.10/site-packages/hjson/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w |  d¡ g }|g}|  |¡ zt |¡ W n	 ty7   Y nw |  d¡ g }||g}t |¡ d S )Nz)didn't raise ValueError on list recursionz5didn't raise ValueError on alternating list recursion)Úappendr   Ú	dumpsJSONÚ
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w |  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   sP   t ƒ }|  | t¡d¡ d|_z| t¡ W n
 ty    Y d S w |  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   )Úunittestr   Úhjsonr   r   r   r	   r   r   r   r   r   Ú<module>   s
    