o
    j%                     @   sj   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ G dd dej	Z
ed	kr3e  d
S d
S )zTests for the core module.    )mock)core)test_components)	testutils)tracec                   @   s  e Zd Zdd Zdd Zeddd Zeddd	 Zedd
d Z	ed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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.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Z d:d; Z!d<S )=CoreTestc                 C   sP   |  tdd |  tdd |  ti d |  tddid d S )N   1Zhello{}xyz
{"x": "y"})assertEqualr   _OneLineResultself r   O/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/fire/core_test.pytestOneLineResult   s   zCoreTest.testOneLineResultc                 C   s"   t  }| t| d d S )Nz{'y': {...}})tcZCircularReferencer   r   r   create)r   Zcircular_referencer   r   r   testOneLineResultCircularRef!   s   z%CoreTest.testOneLineResultCircularRefzfire.interact.Embedc                 C   sB   t jtjdgd | |j t jtjg dd | |j d S )Nalphacommand)r   ---i)r   Firer   TypedPropertiesassertFalsecalled
assertTruer   
mock_embedr   r   r   testInteractiveMode&   s   zCoreTest.testInteractiveModec                 C   s$   t jtjg dd | |j d S )N)r   r   z--interactiver   )r   r   r   r   r    r   r!   r   r   r   testInteractiveModeFullArgument-   s   z(CoreTest.testInteractiveModeFullArgumentc                 C   sp   t jtjg dd | |j |j\\}}}| | | |d d | 	|d tj | 	|d t
j d S )N)double2r   r   r   result   r   r   )r   r   r   WithDefaultsr    r   	call_argsr   r   assertIsInstancer   	FireTracer   r"   	variablesverboseZunused_kwargsr   r   r   testInteractiveModeVariables2   s   
z%CoreTest.testInteractiveModeVariablesc                 C   s   t jtjg ddd | |j |j\\}}}| | | |d d | |d tj | |d tj | |d t	j
 d S )N)r%   r&   r   r   z-vD)r   namer'   r(   r   r   )r   r   r   r)   r    r   r*   r   r+   r   r,   r-   r   r   r   $testInteractiveModeVariablesWithName<   s   
z-CoreTest.testInteractiveModeVariablesWithNamec                 C   s   |  dd tjtjddgd W d    n1 sw   Y  |  dd tjtjdgd W d    n1 s:w   Y  |  dd tjtjdgd W d    d S 1 sZw   Y  d S )Nr   zSYNOPSIS.*ARG1r   --helpr   zINFO:.*SYNOPSIS.*ARG1-h)assertRaisesFireExitr   r   r   ZInstanceVarsr   r   r   r   testHelpWithClassI   s   "zCoreTest.testHelpWithClassc                 C   sF  |  dd tjtjg dd W d    n1 sw   Y  |  dd tjtjddgd W d    n1 s;w   Y  |  dd tjtjddgd W d    n1 s[w   Y  |  dd	 tjtjd
dgd W d    n1 s{w   Y  |  dd tjtjddgd W d    d S 1 sw   Y  d S )Nr   zSYNOPSIS.*capitalize)gammar   r4   r   zINFO:.*SYNOPSIS.*capitalizer8   r4   r5   zINFO:.*SYNOPSIS.*deltadeltazINFO:.*SYNOPSIS.*echoZecho)r6   r   r   r   r   r   r   r   r   testHelpWithMemberQ   s   "zCoreTest.testHelpWithMemberc                 C   s   |  dd tjtjddgd W d    n1 sw   Y  |  dd tjtjdgd W d    d S 1 s;w   Y  d S )Nr   zSYNOPSIS.*VALUEr   r4   r   zINFO:.*SYNOPSIS.*VALUE)r6   r   r   r   ZErrorInConstructorr   r   r   r   testHelpOnErrorInConstructor]   s   "z%CoreTest.testHelpOnErrorInConstructorc                 C   s  | j dd d tjtjddgd W d    n1 sw   Y  | j dd d tjtjddgd W d    n1 s=w   Y  | j d	d d tjtjddgd W d    n1 s^w   Y  | j dd d tjtjdgd W d    d S 1 sw   Y  d S )
NzDESCRIPTION.*stdoutstderrr4   Falser   zhelp in a dict
dictionaryZ__helpr
   )assertOutputMatchesr   r   r   ZWithHelpArgZfunction_with_helpr   r   r   r   testHelpWithNamespaceCollisionc   s   "z'CoreTest.testHelpWithNamespaceCollisionc                 C   sF   |  dd tjtjg dd W d    d S 1 sw   Y  d S )N   runmisspelled)propsz--a=1z--b=2rD   r   )r6   r   r   r   ZKwargsr   r   r   r   "testInvalidParameterRaisesFireExitn   s   "z+CoreTest.testInvalidParameterRaisesFireExitc                 C   sB   |  t tjtjdgd W d    d S 1 sw   Y  d S )NZfailr   )assertRaises
ValueErrorr   r   r   ZErrorRaiserr   r   r   r   testErrorRaisingr   s   "zCoreTest.testErrorRaisingc                 C   s   t d}| | d S )NExample errorr   	FireErrorZassertIsNotNoner   errorr   r   r   testFireErrorx   s   
zCoreTest.testFireErrorc                 C   s   t dd}| | d S )NrJ   valuerK   rM   r   r   r   testFireErrorMultipleValues|   s   z$CoreTest.testFireErrorMultipleValuesc                 C   s   | j dd d tjtjdgd W d    n1 sw   Y  | j dd d tjtjdgd W d    d S 1 s<w   Y  d S )Nr
   r<   Ztotally_emptyr   Znothing_printable)rA   r   r   r   ZEmptyDictOutputr   r   r   r   testPrintEmptyDict   s   "zCoreTest.testPrintEmptyDictc                 C   s   | j dd d tjtjdgd W d    n1 sw   Y  | j dd tjtjdgd W d    d S 1 s;w   Y  d S )NzA:\s+A\s+2:\s+2\s+r<   Z	non_emptyr   r
   )r=   empty)rA   r   r   r   ZOrderedDictionaryr   r   r   r   testPrintOrderedDict   s   "zCoreTest.testPrintOrderedDictc                 C   H   | j dd d tjtjddgd W d    d S 1 sw   Y  d S )N11r<   pointr   r   rA   r   r   r   
NamedTupler   r   r   r   testPrintNamedTupleField      "z!CoreTest.testPrintNamedTupleFieldc                 C   sH   | j dd d tjtjddgd W d    d S 1 sw   Y  d S )Nr   r<   Zmatching_namesr   rX   r   r   r   r   'testPrintNamedTupleFieldNameEqualsValue   r[   z0CoreTest.testPrintNamedTupleFieldNameEqualsValuec                 C   rU   )NZ22r<   rW   r	   r   rX   r   r   r   r   testPrintNamedTupleIndex   r[   z!CoreTest.testPrintNamedTupleIndexc                 C   F   | j dd d tjt g d W d    d S 1 sw   Y  d S Nz	.*three.*r<   r   )rA   r   r   r   Z
simple_setr   r   r   r   testPrintSet      "zCoreTest.testPrintSetc                 C   r^   r_   )rA   r   r   r   Zsimple_frozensetr   r   r   r   testPrintFrozenSet   ra   zCoreTest.testPrintFrozenSetc                 C   rU   )NrV   r<   rW   z-2r   rX   r   r   r   r    testPrintNamedTupleNegativeIndex   r[   z)CoreTest.testPrintNamedTupleNegativeIndexc                 C   s   | j dd d tjt dgd W d    n1 sw   Y  | j dd d tjt ddgd W d    n1 s>w   Y  | j dd d tjt g d W d    d S 1 s_w   Y  d S )	Nzfoo:\s+foo\s+r<   z	--foo=foor   zfoo\s+Z	print_msgfoo )rA   r   r   r   ZCallableWithKeywordArgumentr   r   r   r   testCallable   s   "zCoreTest.testCallablec                 C   sH   |  dd tjt ddgd W d    d S 1 sw   Y  d S )NrC   re   34r   )r6   r   r   r   ZCallableWithPositionalArgsr   r   r   r   testCallableWithPositionalArgs   s   "z'CoreTest.testCallableWithPositionalArgsc                 C   s    |  tjtjddgdd d S )NZ	static_fnr   r   r   r   r   r   ZHasStaticAndClassMethodsr   r   r   r   testStaticMethod      zCoreTest.testStaticMethodc                 C   s    |  tjtjddgdd d S )NZclass_fn6r      rj   r   r   r   r   testClassMethod   rl   zCoreTest.testClassMethodc                 C   sT  dd }dd }| j dd d tj|dg|d}W d    n1 s#w   Y  | j d	d d tj|d
g|d}W d    n1 sCw   Y  | j dd d tj|dg|d}W d    n1 scw   Y  | j dd d tj|dg|d}W d    n1 sw   Y  | tj tj|dgdd W d    d S 1 sw   Y  d S )Nc                 S   sX   t | trddd | D S t | tr"ddd t|  D S | dkr*ddgS | S )Nz, c                 s   s    | ]}t |V  qd S N)str).0xir   r   r   	<genexpr>   s    zBCoreTest.testCustomSerialize.<locals>.serialize.<locals>.<genexpr>c                 s   s     | ]\}}d  ||V  qdS )z{}={!r}N)format)rr   kvr   r   r   rt      s    specialz
SURPRISE!!zI'm a list!)
isinstancelistjoindictsorteditemsr   r   r   r   	serialize   s   

z/CoreTest.testCustomSerialize.<locals>.serializec                 S   s   | S rp   r   r   r   r   r   <lambda>   s    z.CoreTest.testCustomSerialize.<locals>.<lambda>za, br<   z[a,b])r   r   za=5, b=6z	{a:5,b:6}ZasdfzSURPRISE!!
I'm a list!
rx   7   )rA   r   r   rG   rL   )r   r   ident_r   r   r   testCustomSerialize   s&   	"zCoreTest.testCustomSerializec                 C   s"   |  tjtjjddgdd d S )NZlru_cache_in_classrd   r   )r   r   r   r   py3ZLruCacheDecoratedMethodr   r   r   r   testLruCacheDecoratorBoundArg   s   
z&CoreTest.testLruCacheDecoratorBoundArgc                 C   s    |  tjtjjdgdd d S )Nrd   r   )r   r   r   r   r   Zlru_cache_decoratedr   r   r   r   testLruCacheDecorator   s   
zCoreTest.testLruCacheDecoratorN)"__name__
__module____qualname__r   r   r   patchr#   r$   r0   r3   r7   r:   r;   rB   rF   rI   rO   rQ   rR   rT   rZ   r\   r]   r`   rb   rc   rf   ri   rk   ro   r   r   r   r   r   r   r   r      sD    


	
r   __main__N)__doc__Zunittestr   firer   r   r   r   r   ZBaseTestCaser   r   mainr   r   r   r   <module>   s    K