
 X                 @   sb   d  d l  m Z d  d l Z Gd d   d  Z Gd d   d e j  Z Gd d   d e  Z d S)	    )TestCaseNc               @   s   e  Z d  Z d S)JSONTestObjectN)__name__
__module____qualname__ r   r   \/home/ubuntu/projects/ifolica/lib/python3.4/site-packages/simplejson/tests/test_recursion.pyr      s   r   c               @   s"   e  Z d  Z d Z d d   Z d S)RecursiveJSONEncoderFc             C   s3   | t  k r# |  j r t  g Sd Sn  t j 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               @   s4   e  Z d  Z d d   Z d d   Z d d   Z d S)TestRecursionc             C   s   g  } | j  |  y t j |  Wn t k
 r8 Yn X|  j d  g  } | g } | j  |  y t j |  Wn t k
 r Yn X|  j d  g  } | | g } t j |  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   sn   i  } | | d <y t  j |  Wn t k
 r5 Yn X|  j d  i  } i | d 6| d 6} t  j |  d  S)Ntestz)didn't raise ValueError on dict recursionab)r   r   r   r   )r   r   r   r   r   r   test_dictrecursion,   s    
z TestRecursion.test_dictrecursionc             C   sb   t    } |  j | j t  d  d | _ y | j t  Wn t k
 rP Yn X|  j 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   
simplejsonr   r   r   r	   r   r   r   r   r   <module>   s   