o
    i                     @   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   S/opt/alphahud/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       c                 C   s
   d| igS )Nkeyr   r/   r   r   r   r1   5   s   
 c                   @   sL   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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)r8   r9   )	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   r6   Fr7   )r9   r8   )	r   r   listr:   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 r5   )r   r   r    r(   r   r   r;   dumpr:   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   rA   r   r;   rF   r:   r<   rG   rB   rC   )r   r0   rD   rH   r   r   r   test_namedtuple_dump_falsed   s   z)TestNamedTuple.test_namedtuple_dump_falsec                 C   s~   t D ]:}| jttj|t t dd t }tj|t |dd | t	|i |
  | jttj|tt dd qd S NTr7   )CONSTRUCTORSrB   rC   r;   rF   r+   r   r.   r:   r=   rG   r   )r   frH   r   r   r   test_asdict_not_callable_dumpo   s,   z,TestNamedTuple.test_asdict_not_callable_dumpc                 C   sf   t D ].}| jttj|t dd | jttj|tdd | t|i tj|t dd qd S rK   )	rL   rB   rC   r;   r=   r+   r   r:   r.   r   rM   r   r   r   test_asdict_not_callable_dumps   s   z-TestNamedTuple.test_asdict_not_callable_dumpsc                 C   s8   t D ]}| tj|tdd dt|tj qd S )Nc                 S   s   | j S r	   )r   r/   r   r   r   r1      r2   zATestNamedTuple.test_asdict_unbound_method_dumps.<locals>.<lambda>)default)rL   r:   r;   r=   r   r   rO   r   r   r    test_asdict_unbound_method_dumps   s   z/TestNamedTuple.test_asdict_unbound_method_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)r8   for_json)r   hasattrunittestrS   printMock
assertTruecallabler   assertFalse
isinstancedictrB   rC   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?   rE   rI   rJ   rN   rP   rR   r`   r   r   r   r   r4   8   s    	r4   )
__future__r   rW   
simplejsonr;   simplejson.compatr   r   ImportErrorcollectionsr   r   r   r   objectr    r(   r+   r^   r.   rL   TestCaser4   r   r   r   r   <module>   s4    