o
    j"r                     @   sj   d Z ddlZddlZddlmZ ddl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 fire module.    N)mock)test_components)	testutilsc                   @   s  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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/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dIdJ Z'dKdL Z(dMdN Z)dOdP Z*dQdR Z+dSdT Z,dUdV Z-dWdX Z.dYdZ Z/d[d\ Z0d]d^ Z1d_d` Z2dadb Z3dcdd Z4dedf Z5dgdh Z6didj Z7dkdl Z8dmdn Z9dodp Z:dqdr Z;dsdt Z<dudv Z=dwdx Z>dydz Z?d{d| Z@d}S )~FireTestc                 C   s   t jtddg ttj ttj ttj	 W d    n1 s&w   Y  | 
tjtjddd | 
tjtjddd | 
tjtjdd	gdd | 
tjtjd
dgdd | 
tjtjdd	gdd d S )NargvZprognameztriple 4command   )double2   triple4r
   r   )r   patchobjectsysfireFiretcEmptyZOldStyleEmptyZWithInitassertEqual
NoDefaultsWithDefaultsOldStyleWithDefaultsself r   O/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/fire/fire_test.pytestFire   s$   zFireTest.testFirec                 C   s4   |  ttjdd |  ttjddgd d S )Nzdouble 2r   r
   r   )r   r   r   r   r   r   r   r   r   testFirePositionalCommand*   s   z"FireTest.testFirePositionalCommandc                 C   s@   |  t tjtjdd W d    d S 1 sw   Y  d S )N
   r   )assertRaises
ValueErrorr   r   r   r   r   r   r   r   testFireInvalidCommandArg/   s   "z"FireTest.testFireInvalidCommandArgc              	   C   s   t jtdtjdddg. | jdd d t	t
j W d    n1 s(w   Y  W d    d S W d    d S 1 s@w   Y  d S )Nr   zpython-firer   zbase_filename.pyzSYNOPSIS.*base_filename.py)stdoutstderr)r   r   r   r   ospathjoinZassertOutputMatchesr   r   r   r   r   r   r   r   testFireDefaultName4   s   

"zFireTest.testFireDefaultNamec                 C   s   |  tjtjdgdd d S )Ntenr   r    r   r   r   r   MixedDefaultsr   r   r   r   testFireNoArgs<   s   zFireTest.testFireNoArgsc                 C   s   |  d tjtjdgd W d    n1 sw   Y  |  d tjtjdgd W d    n1 s7w   Y  |  d tjtjddgd W d    n1 sVw   Y  | t tjtj	ddgd W d    d S 1 svw   Y  d S )	N   Znomethodr   r
   deltaxZ
reciprocalz0.0)
assertRaisesFireExitr   r   r   r   r   TypedPropertiesr!   ZeroDivisionErrorNumberDefaultsr   r   r   r   testFireExceptions?   s   "zFireTest.testFireExceptionsc                 C   t   |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd d S Nr
   --count5r   r    r   r9   r:      r   r   r   r   r   r   r   r   r   r   testFireNamedArgsL   $   zFireTest.testFireNamedArgsc                 C   r6   )N)r
   -countr:   r   r    )r   r@   r:   r<   r=   r   r   r   r   testFireNamedArgsSingleHyphenX   r?   z&FireTest.testFireNamedArgsSingleHyphenc                 C   <   |  tjtjddgdd |  tjtjddgdd d S )Nr
   z	--count=5r   r    r   r<   r   r   r   r   r   r   r   r   r   testFireNamedArgsWithEqualsd      z$FireTest.testFireNamedArgsWithEqualsc                 C   rB   )Nr
   z-count=5r   r    r   r<   rC   r   r   r   r   'testFireNamedArgsWithEqualsSingleHyphenj   rE   z0FireTest.testFireNamedArgsWithEqualsSingleHyphenc                 C      |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg d	dd |  tjtjg d
dd d S )N)sum1r   r      )rH   --alpharI   r   )rH   --betarI   r   r   )rH   rI   rK   r   )rH   rI   rL   r   )rH   rK   rI   rL   r   )rH   rL   rI   rK   r   r+   r   r   r   r   testFireAllNamedArgsp   sB   zFireTest.testFireAllNamedArgsc                 C   sr   |  tjtjdgdd |  tjtjddgdd |  tjtjg ddd |  tjtjg ddd d S )	NrH   r   r   rI      )rH   rK   rI   )rH   rL   r   r   r+   r   r   r   r   testFireAllNamedArgsOneMissing   s   z'FireTest.testFireAllNamedArgsOneMissingc                 C   rG   )N)identityrI   r   r   )rN   r.   )rP   rK   rI   r   )rP   rL   rI   r   )r.   rN   )rP   rI   rK   r   )rP   rI   rL   r   )rP   rK   rI   rL   r   )rP   rL   rI   rK   r   r+   r   r   r   r   testFirePartialNamedArgs   sR   z!FireTest.testFirePartialNamedArgsc                 C   s   |  d tjtjdgd W d    n1 sw   Y  |  d tjtjg dd W d    n1 s8w   Y  | tjtjddgdd | tjtjg ddd d S )Nr.   rP   r   )rP   rL   r   rI   )rN   0)rP   rK   rI   )r1   r   r   r   r,   r   r   r   r   r   "testFirePartialNamedArgsOneMissing   s   z+FireTest.testFirePartialNamedArgsOneMissingc                 C   rB   )Nr
   r:   r   r    r   r<   )r   r   r   r   ZAnnotationsr   r   r   r   testFireAnnotatedArgs   s    zFireTest.testFireAnnotatedArgsc                 C   s   |  d tjtjjddgd W d    n1 sw   Y  | tjtjjg ddd | tjtjjg ddd d S )	Nr.   r
   r:   r   r8   r    r;   r<   )r1   r   r   r   py3ZKeywordOnlyr   r   r   r   r   testFireKeywordOnlyArgs   s   z FireTest.testFireKeywordOnlyArgsc                 C   s8   |  tjtjdgdd |  tjtjdgdd d S )Nalphar   Tbeta)rN   r.      r   r   r   r   r2   r   r   r   r   testFireProperties   s   zFireTest.testFirePropertiesc                 C   <   |  tjtjg ddd |  tjtjg ddd d S )N)charlier
   Zhellor   Z
hellohello)r]   r   wwwwrZ   r   r   r   r   testFireRecursion   s   zFireTest.testFireRecursionc                 C   sD   |  tjtjg ddg d |  tjtjg ddg d d S )N)cumsumsabcdr   )rb   ababcabcd)ra   rI   r   3r   )rN   rY      r    r   r   r   r   ZVarArgsr   r   r   r   testFireVarArgs   s   zFireTest.testFireVarArgsc                 C   r\   )N)varcharsrI   r   rd   re   r   )rN   r.   cd)rm   ri   r   rd   re   e)rY   r   Zcderk   r   r   r   r   testFireVarArgsWithNamedArgs   s   z%FireTest.testFireVarArgsWithNamedArgsc                 C   s   |  tjtjg ddddd |  tjtjg ddddi |  tjtjg d	dddi |  tjtjd
dddi |  tjtjg ddd |  tjtjg ddd d S )N)propsz--nameDavidz--ageZ24r   rr      )nameZage)rq   	--messagez#"This is a message it has -- in it"message!This is a message it has -- in it)rq   ru   rw   z3props --message "This is a message it has -- in it")upperrK   ArL   Bz
ALPHA BETA)rx   rK   ry   rL   rz   -lowerz
alpha betar   r   r   r   ZKwargsr   r   r   r   testFireKeywordArgs   sR   zFireTest.testFireKeywordArgsc                 C   sP   |  tjtjg ddddddif |  tjtjg dddd ddif d S )	N)runHelloWorld--cellisr   r   r   cellr   )r   r   r   okr   r}   r   r   r   r   ,testFireKeywordArgsWithMissingPositionalArgs   s   z5FireTest.testFireKeywordArgsWithMissingPositionalArgsc                 C   s@   |  tjt g ddd |  tjt g ddd d S r7   rC   r   r   r   r   testFireObject  s   zFireTest.testFireObjectc                 C   sF   ddddd}|  tj|ddgdd	 |  tj|d
gdd d S )Nr   c                 S   s   d|  S )Nr.   r   )r0   r   r   r   <lambda>      z'FireTest.testFireDict.<locals>.<lambda>Zswiss)r
   cheeser
   r:   r   r    r   r   r   r   r   r   	componentr   r   r   testFireDict  s
   zFireTest.testFireDictc                 C   st   |  tjtjddgdd |  tjtjg ddd | tjtjddgdt |  tjtjg ddd	 d S )
Nr/   echor   E)r/   r   r|   ro   nest)r/   r   rR   rb   )r   r   r   r   r2   assertIsInstancedictr   r   r   r   testFireObjectWithDict  s   zFireTest.testFireObjectWithDictc                 C   *   t  }tj|g d}| t|d d S Nr   rY   )r   Z
simple_setr   r   r   lenr   r   resultr   r   r   testFireSet     zFireTest.testFireSetc                 C   r   r   )r   Zsimple_frozensetr   r   r   r   r   r   r   r   testFireFrozenset"  r   zFireTest.testFireFrozensetc                 C   sT   g d}|  tj|dgdd |  tj|dgdd |  tj|dgdd d S )N)zeroonetwothreer   r   r   ri   r   z-1r   r   r   r   r   testFireList'  s   zFireTest.testFireListc                 C   <   |  tjtjddgdd |  tjtjddgdd d S )Nr   rR   r   ZalexrI   bethanyrZ   r   r   r   r   testFireObjectWithList-     zFireTest.testFireObjectWithListc                 C   r   )NfoxrR   r   ZcarryrI   dividerZ   r   r   r   r   testFireObjectWithTuple3  r   z FireTest.testFireObjectWithTuplec                 C       |  tjtjg ddd d S )N)r   countr   r   rN   rZ   r   r   r   r   testFireObjectWithListAsObject9     z'FireTest.testFireObjectWithListAsObjectc                 C   r   )N)r   r   r   r   rN   rZ   r   r   r   r   testFireObjectWithTupleAsObject>  r   z(FireTest.testFireObjectWithTupleAsObjectc                 C   sz   |  tjg ddd dd }|  tjddgdd |  tjd	d
gdd ddd}|  tjddgdh d d S )N)r   r   r
   10r      c                 S   s   | d S )Nr   )textr   r   r   r   F  r   z.FireTest.testFireNoComponent.<locals>.<lambda>	last_charz"Hello"oz	last-charz"World"re   r   c                 S   s   t t| S N)setrange)r   r   r   r   r   I  s    rsetr:   >   r   rN   r.   rY   r   r   r   )r   r   r   r   r   r   testFireNoComponentC  s   
 zFireTest.testFireNoComponentc                 C   s8   |  tjtjdgdd |  tjtjdgdd d S )Nzunderscore-exampler   zfish fingersZunderscore_exampler   r   r   r   ZUnderscoresr   r   r   r   testFireUnderscoresL  s   zFireTest.testFireUnderscoresc                 C   sX   |  tjtjddgdd |  tjtjddgdd |  tjtjddgdd d S )Nzunderscore-functionZexampler   Zunderscore_functionz--underscore-arg=scoreZscorez--underscore_arg=scorer   r   r   r   r   testFireUnderscoresInArgT  s$   z!FireTest.testFireUnderscoresInArgc                 C   s   |  tjtjddgdd |  tjtjddgdd |  tjtjddgdd |  tjtjddgdd |  tjtjdd	gdd |  tjtjdd
gdd d S )Nas-boolTruer   TFalseFz
--arg=Truez--arg=Falsez--argz--noarg)r   r   r   r   BoolConverterr   r   r   r   testBoolParsinga  s$   zFireTest.testBoolParsingc                 C   s   |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg d	dd
 |  tjtjg ddd d S )N)rP   r   r   r   TF)rP   z--alpha=Falser   Fr    )rP   rK   rL   r   Tr    rP   rK   	--beta=10)rP   z	--noalpharL   FT)rP   r   rL   )r    Tr+   r   r   r   r   testBoolParsingContinuedo  sD   z!FireTest.testBoolParsingContinuedc                 C   s   |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd |  tjtjg d	dd
 d S )N)rP   z-alpha=Falser   r   r   )rP   -alpha-betar   r   )rP   r   z-beta=10)rP   z-noalphar   r   )rP   r   z-10r   )iTr+   r   r   r   r   testBoolParsingSingleHyphen  <   z$FireTest.testBoolParsingSingleHyphenc                 C   s   |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd | d tjtjg dd W d    n1 sDw   Y  |  tjtjg d	dd
 |  tjtjddgdd |  tjtjddd d S )N)rP   rK   r   r   )r    rR   r   r   )rP   r   r   r.   )rP   rK   --test)rP   rK   r   z"--test")Tr   rP   z--alpha=--test)r   rR   zidentity --alpha \"--test\"r   r   r   r   r,   r1   r   r   r   r    testBoolParsingLessExpectedCases  sJ   z)FireTest.testBoolParsingLessExpectedCasesc                 C   s   |  tjtjddgdd |  tjtjg ddd |  tjtjg ddd |  tjtjg d	dd
 |  tjtjg ddd |  tjtjg ddd | d tjtjddgd W d    d S 1 sow   Y  d S )NrP   -ar   TrR   )rP   r   r   r   )rP   r   -bTT)rP   r   42r   )*   T)rP   r   r   r   r   r   r    )rP   rK   r   r   r   r.   r   )r   r   r   r   r,   r1   SimilarArgNamesr   r   r   r   testSingleCharFlagParsing  sN   "z"FireTest.testSingleCharFlagParsingc                 C   s   |  tjtjddgdd |  tjtjg ddd |  tjtjg ddd |  tjtjg d	dd
 |  tjtjg ddd d S )NrP   z-a=Truer   r   )rP   z-a=3r   )rY   r    )rP   z-a=Falsez-b=15)Fr<   )rP   r   r   z-b=12)r   r	   )rP   z-a=42r   r   r   r+   r   r   r   r   "testSingleCharFlagParsingEqualSign  r   z+FireTest.testSingleCharFlagParsingEqualSignc                 C   s   |  tjtjddgdd |  tjtjddgdd |  tjtjddgdd |  tjtjddgdd	 |  tjtjg d
dd d S )N	identity2r   r   )TNz-a=10)r    Nz--ar   )NT)r   r   r   r   )r   r   r   r   r   r   r   r   r   #testSingleCharFlagParsingExactMatch  r   z,FireTest.testSingleCharFlagParsingExactMatchc                 C   r   )N)rH   z-Dr:   z-Gr   r   r<   )r   r   r   r   ZCapitalizedArgNamesr   r   r   r   &testSingleCharFlagParsingCapitalLetter     z/FireTest.testSingleCharFlagParsingCapitalLetterc                 C   s  dd }|  tj|ddgdd |  tj|ddgdd | d	 tj|ddgd W d    n1 s7w   Y  d
d }|  tj|dgddi f |  tj|dgddi f | d	 tj|dgd W d    n1 stw   Y  |  tj|ddgddddif dd }|  tj|ddgddddif |  tj|ddgddddif |  tj|ddgddddif d S )Nc                 S      | |fS r   r   )thingnothingr   r   r   fn1     z+FireTest.testBoolParsingWithNo.<locals>.fn1z--thingz	--nothingr   r   z--nonothingr   r.   c                 [   r   r   r   )r   kwargsr   r   r   fn2  r   z+FireTest.testBoolParsingWithNo.<locals>.fn2TFz--nothing=Truer   c                 [   r   r   r   )argr   r   r   r   fn3  r   z+FireTest.testBoolParsingWithNo.<locals>.fn3z--arg=valuevaluer   )r   r   r   r1   )r   r   r   r   r   r   r   testBoolParsingWithNo  s:   



zFireTest.testBoolParsingWithNoc                 C   s   |  dd tjtjg dd W d    n1 sw   Y  |  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    d S 1 s\w   Y  d S )Nr   zFire trace:
)r   r   ----tracer   )r   r   r   -tr   r   r1   r   r   r   r   r   r   r   r   testTraceFlag  s   "zFireTest.testTraceFlagc                 C   s   |  d tjtjg dd W d    n1 sw   Y  |  d tjtjg dd W d    n1 s9w   Y  |  d tjtjddgd W d    d S 1 sYw   Y  d S )Nr   )r   r   r   --helpr   )r   r   r   -hr   r   r   r   r   r   r   testHelpFlag  s   "zFireTest.testHelpFlagc                 C   s   |  dd tjtjg dd W d    n1 sw   Y  |  dd tjtjg dd W d    n1 s;w   Y  |  dd tjtjg dd W d    d S 1 s\w   Y  d S )Nr   zFire trace:
.*SYNOPSIS)r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   testHelpFlagAndTraceFlag&  s   "z!FireTest.testHelpFlagAndTraceFlagc                 C   s0   t jtjddgd}| d| | d| d S )Nr   --completionr   r
   r   r   r   r   r   assertInr   completion_scriptr   r   r   testTabCompletionNoName/  s   z FireTest.testTabCompletionNoNamec                 C   s2   t jtjddgdd}| d| | d| d S )Nr   r   rd   r   rt   r
   r   r   r   r   r   r   testTabCompletion4  s
   zFireTest.testTabCompletionc                 C   s<   ddd i}t j|ddgdd}| d| | d| d S )Nmultiplyc                 S   s   | | S r   r   )rb   rc   r   r   r   r   ;  r   z4FireTest.testTabCompletionWithDict.<locals>.<lambda>r   r   ZactCLIr   )r   r   r   )r   actionsr   r   r   r   testTabCompletionWithDict:  s   
z"FireTest.testTabCompletionWithDictc                 C   s   |  tjtjg ddd |  tjtjg ddd |  tjtjg ddd | d tjtjg d	d W d    d S 1 sEw   Y  d S )
N)rP   +_r   )r   r   )rP   r   r   r{   )r   r   )rP   r{   r   r   --separator&)r{   r   r.   )rP   r{   r   r   r   r   r   r   r   testBasicSeparatorA  s*   "zFireTest.testBasicSeparatorc                 C   sV   |  tjtjddtj |  tjtjg dtj |  tjtjddgdtj dS )z8Fire should work with classes that disallow comparisons. r   r{   N)r   r   r   r   ZNonComparabler   r   r   r   testNonComparableT  s   zFireTest.testNonComparablec                 C   s<   |  tjtjg ddd |  tjtjg ddd d S )N)get-objarg1arg2r{   r{   r   r   r   T)r  r  r  r{   r{   r{   r   r   )r   r   r   r   
ReturnsObjr   r   r   r   testExtraSeparatorsa  s   zFireTest.testExtraSeparatorsc                 C   sv   |  tjtjg ddtj | tjtjg ddd | tjtjg ddd | tjtjg ddd d S )N)r  r  r  r   r   r   )r  r  r  r{   r   r   T)	r  r  r  r   r   r   r   r   r   )r  r  $$r   r   r   r   r	  )r   r   r   r   r  r   r   r   r   r   r   testSeparatorForChainingn  s2   z!FireTest.testSeparatorForChainingc                 C   r   )N)rH   rK   z-3rL   z-4r   ir+   r   r   r   r   testNegativeNumbers  r   zFireTest.testNegativeNumbersc                 C   sX   |  tjtjg ddd |  tjtjg ddd |  tjtjddgdd d S )	N)rH   rK   z2.2rL   z3.0r   gffffff @)integer_reciprocalz	--divisorz5.0g?r  z4.0g      ?)r   r   r   r   r,   r4   r   r   r   r   testFloatForExpectedInt  s"   z FireTest.testFloatForExpectedIntc                 C   sb   |  tjtjddgdtj | d tjtjddgd W d    d S 1 s*w   Y  d S )N	--arg1=a1	--arg2=a2r   r.   a1a2)r   r   r   r   InstanceVarsr1   r   r   r   r   testClassInstantiation  s   "zFireTest.testClassInstantiationc                 C   s  |  d tjtjdgd W d    n1 sw   Y  |  d tjtjdgd W d    n1 s7w   Y  |  d tjtjg dd W d    n1 sVw   Y  |  d tjtjg dd W d    n1 suw   Y  |  d tjtjg dd W d    n1 sw   Y  |  d tjtjg dd W d    n1 sw   Y  |  d tjtjg d	d W d    n1 sw   Y  |  d tjtjg d
d W d    d S 1 sw   Y  d S )Nr.   r  r   r  )r  r  r{   r   b1)r  r  r{   zrun b1)r  r  r{   r   r  b2b3)r  r  r{   r   r  r  r  )r  r  r{   jog)r  r  r{   r  )r1   r   r   r   r  r   r   r   r   testTraceErrors  s>   "zFireTest.testTraceErrorsc                 C       |  tjtjddgdd d S Nr
   r   r   r   )r   r   r   r   ZDefaultMethodr   r   r   r   testClassWithDefaultMethod     z#FireTest.testClassWithDefaultMethodc                 C   r  r  )r   r   r   r   ZInvalidPropertyr   r   r   r   testClassWithInvalidProperty  r  z%FireTest.testClassWithInvalidPropertyc                 C   s~   |  d tjtjdgd W d    n1 sw   Y  |  d tjtjdgd W d    d S 1 s8w   Y  d S )Nr   r   r   r   )r1   r   r   r   Zdecorated_methodr   r   r   r   testHelpKwargsDecorator  s   "z FireTest.testHelpKwargsDecoratorc                 C   s"   |  tjtjjg ddd d S )N)r
   r9   r   r   r   )r   r   r   r   rU   ZWithAsyncior   r   r   r   testFireAsyncio  s
   zFireTest.testFireAsyncioN)A__name__
__module____qualname__r   r   r#   r)   r-   r5   r>   rA   rD   rF   rM   rO   rQ   rS   rT   rV   r[   r`   rl   rp   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  r  r  r  r  r  r  r  r   r   r   r   r      s~    
	"
	#	r   __main__)__doc__r&   r   Zunittestr   r   r   r   r   ZBaseTestCaser   r   mainr   r   r   r   <module>   s         ;