U
    ƽb                     @   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   C/tmp/pip-unpacked-wheel-9yxrzpkm/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 )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k
r@   Y nX | 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   