o
    ȷea                     @   s  d dl mZ d dlZd dlZd dlmZ zd dlmZ W n ey'   dZY nw zd dl	m
Z
 W n eyI   G dd deZG dd	 d	eZY nw e
dd
gZe
d	ddgZG dd deZG dd deZG dd deZG dd deZdd dd dd gZG dd dejZdS )    )absolute_importN)StringIO)mock)
namedtuplec                   @      e Zd Zdd Zdd ZdS )Valuec                 G      t | |S Ntuple__new__clsargs r   W/var/www/ideatree/venv/lib/python3.10/site-packages/simplejson/tests/test_namedtuple.pyr         zValue.__new__c                 C   s   d| d iS )Nvaluer   r   selfr   r   r   _asdict   r   zValue._asdictN__name__
__module____qualname__r   r   r   r   r   r   r          r   c                   @   r   )Pointc                 G   r   r	   r
   r   r   r   r   r      r   zPoint.__new__c                 C   s   | d | d dS )Nr      )xyr   r   r   r   r   r      s   zPoint._asdictNr   r   r   r   r   r      r   r   r   r   r   c                   @   r   )	DuckValuec                 G      t | | _d S r	   )r   r   r   r   r   r   r   __init__      zDuckValue.__init__c                 C   
   | j  S r	   )r   r   r   r   r   r   r   "      
zDuckValue._asdictNr   r   r   r#   r   r   r   r   r   r       r   r    c                   @   r   )	DuckPointc                 G   r!   r	   )r   pointr"   r   r   r   r#   &   r$   zDuckPoint.__init__c                 C   r%   r	   )r)   r   r   r   r   r   r   )   r&   zDuckPoint._asdictNr'   r   r   r   r   r(   %   r   r(   c                   @      e Zd ZdZdS )DeadDuckNr   r   r   r   r   r   r   r   r+   ,       r+   c                   @   r*   )DeadDictNr,   r   r   r   r   r.   /   r-   r.   c                 C   s   | S r	   r   vr   r   r   <lambda>3   s    r1   c                 C   s   | gS r	   r   r/   r   r   r   r1   4   s    c                 C   s
   d| igS )Nkeyr   r/   r   r   r   r1   5   s   
 c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )TestNamedTuplec                 C   s   t dtddtdtddfD ]=}| }| |tt| | |ttj|dd | |ttj|dd | |ttj|ddd qd S Nr      Tnamedtuple_as_objectF)tuple_as_array)r7   r8   )	r   r   r    r(   r   assertEqualjsonloadsdumps)r   r0   dr   r   r   test_namedtuple_dumps9   s   $z$TestNamedTuple.test_namedtuple_dumpsc              
   C   sV   t dtddfD ]}t|}| |ttj|dd | jttj|ddd q	d S Nr   r5   Fr6   )r8   r7   )	r   r   listr9   r:   r;   r<   assertRaises	TypeError)r   r0   lr   r   r   test_namedtuple_dumps_falseF   s   z*TestNamedTuple.test_namedtuple_dumps_falsec                 C   s   t dtddtdtddfD ]]}| }t }t|| | |t	|
  t }tj||dd | |t	|
  t }tj||dd | |t	|
  t }tj||ddd | |t	|
  qd S r4   )r   r   r    r(   r   r   r:   dumpr9   r;   getvalue)r   r0   r=   sior   r   r   test_namedtuple_dumpO   s.   $
z#TestNamedTuple.test_namedtuple_dumpc              	   C   sj   t dtddfD ])}t|}t }tj||dd | |t|  | j	t
tj|t ddd q	d S r?   )r   r   r@   r   r:   rE   r9   r;   rF   rA   rB   )r   r0   rC   rG   r   r   r   test_namedtuple_dump_falsed   s   z)TestNamedTuple.test_namedtuple_dump_falsec                 C   sb   t D ],}| jttj|t t dd t }tj|t |dd | t	|i |
  qd S NTr6   )CONSTRUCTORSrA   rB   r:   rE   r+   r   r.   r9   r<   rF   )r   frG   r   r   r   test_asdict_not_callable_dumpo   s   z,TestNamedTuple.test_asdict_not_callable_dumpc                 C   sN   t D ]"}| jttj|t dd | t|i tj|t dd qd S rJ   )rK   rA   rB   r:   r<   r+   r9   r.   )r   rL   r   r   r   test_asdict_not_callable_dumpsy   s   z-TestNamedTuple.test_asdict_not_callable_dumpsc                 C   s   t sttdrtdtd d S t  }| t|d | t|j | 	t
| t | t tjd|iddd W d    d S 1 sKw   Y  d S )	NSkipTestzunittest.mock requiredzunittest.mock not availabler      TF)r7   for_json)r   hasattrunittestrO   printMock
assertTruecallabler   assertFalse
isinstancedictrA   rB   r:   r<   )r   faker   r   r    test_asdict_does_not_return_dict   s   

	"z/TestNamedTuple.test_asdict_does_not_return_dictN)
r   r   r   r>   rD   rH   rI   rM   rN   r\   r   r   r   r   r3   8   s    	
r3   )
__future__r   rS   
simplejsonr:   simplejson.compatr   r   ImportErrorcollectionsr   r   r   r   objectr    r(   r+   rZ   r.   rK   TestCaser3   r   r   r   r   <module>   s4    