U
    O5[  ã                   @   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   úA/usr/lib/python3/dist-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 k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k
r0   Y nX |  d¡ g }|g}|  |¡ zt |¡ W n tk
rr   Y nX |  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   sV   i }||d< zt  |¡ W n tk
r.   Y nX |  d¡ i }||dœ}t  |¡ d S )NZ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k
r@   Y nX |  d¡ d S )Nz"JSONTestObject"Tz,didn't raise ValueError on default recursion)r	   Z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   