o
    ȷe                     @   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   V/var/www/ideatree/venv/lib/python3.10/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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   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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   
simplejsonr   r   r   r	   r   r   r   r   r   <module>   s
    