
    _j                     .   S r SSKJr  SSKJr  SSKJr   " S S5      r\R                  " \5      S 5       r " S S	5      r	 " S
 S5      r
 " S S5      r " S S5      r " S S5      r " S S\R                  5      r\S:X  a  \R"                  " 5         gg)z Tests for the decorators module.    )core)
decorators)	testutilsc                       \ rS rSrSr\R                  " \S9S 5       r\R                  " \	S9S 5       r
\R                  " \5      S 5       rSrg)	
NoDefaults   z?A class for testing decorated functions without default values.countc                     SU-  $ N    selfr
   s     I/home/rurouni/.local/lib/python3.13/site-packages/fire/decorators_test.pydoubleNoDefaults.double       u9    c                     SU-  $ )N   r   r   s     r   tripleNoDefaults.triple   r   r   c                     SU-  $ )N   r   r   s     r   	quadrupleNoDefaults.quadruple!   r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   SetParseFnsintr   floatr   r   __static_attributes__r   r   r   r   r      s`    G$ % & ' # r   r   c                     SU -  $ r   r   r	   s    r   r   r   &   s    	
Ur   c                   x    \ rS rSr\R
                  " \5      SS j5       r\R
                  " \S9SS j5       rSr	g)WithDefaults+   c                     U[        U5      4$ Ntyper   arg1s     r   example1WithDefaults.example1-       dr   r0   c                     U[        U5      4$ r,   r-   r/   s     r   example2WithDefaults.example21   r3   r   r   N)
   )
r   r   r    r!   r   r#   r%   r1   r6   r&   r   r   r   r)   r)   +   s>    %  ! u% &r   r)   c                   B    \ rS rSr\R
                  " \\S9S 5       rSr	g)MixedArguments6   arg2c                     X4$ r,   r   r   r0   r=   s      r   example3MixedArguments.example38   
    :r   r   N)
r   r   r    r!   r   r#   r%   strr@   r&   r   r   r   r:   r:   6   s!    %c* +r   r:   c                   l    \ rS rSr\R
                  " \S9S 5       r\R
                  " \S9S 5       rSr	g)PartialParseFn=   r4   c                     X4$ r,   r   r?   s      r   example4PartialParseFn.example4?   rB   r   r<   c                     X4$ r,   r   r?   s      r   example5PartialParseFn.example5C   rB   r   r   N)
r   r   r    r!   r   r#   rC   rH   rK   r&   r   r   r   rE   rE   =   s>    s# $ s# $r   rE   c                   B    \ rS rSr\R
                  " \\S9S 5       rSr	g)
WithKwargsH   )moder
   c                 J    UR                  SS5      UR                  SS5      4$ )NrP   defaultr
   r   )get)r   kwargss     r   example6WithKwargs.example6J   s*     	

69%

7A r   r   N)
r   r   r    r!   r   r#   rC   r$   rU   r&   r   r   r   rN   rN   H   s!    s#. /r   rN   c                   H    \ rS rSr\R
                  " \5      SS j5       rSrg)WithVarArgsR   Nc                 
    XX44$ r,   r   )r   r0   r=   varargsrT   s        r   example7WithVarArgs.example7T   s    w&&r   r   r,   )	r   r   r    r!   r   
SetParseFnrC   r\   r&   r   r   r   rX   rX   R   s    ' 'r   rX   c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)FireDecoratorsTestY   c                     U R                  [        R                  " [        SS/S9S5        U R                  [        R                  " [        SS/S9S5        g )Nr   2commandr   r   4      (@assertEqualr   Firer   r   s    r   testSetParseFnsNamedArgs+FireDecoratorsTest.testSetParseFnsNamedArgs[   s@    TYYzHc?CQGTYYzHc?CTJr   c                 Z    U R                  [        R                  " [        SS/S9S5        g )Nr   5rd      rh   rk   s    r   testSetParseFnsPositionalArgs0FireDecoratorsTest.testSetParseFnsPositionalArgs_   s"    TYYzK3EFKr   c                 X    U R                  [        R                  " [        S/S9S5        g )Nro   rd   r8   )ri   r   rj   r   rk   s    r   #testSetParseFnsFnWithPositionalArgs6FireDecoratorsTest.testSetParseFnsFnWithPositionalArgsb   s    TYYvu5r:r   c                    U R                  [        5       R                  5       S[        45        U R	                  [        5       R                  S5      S[        45        U R	                  [        5       R                  S5      S[
        45        g Nr8      rg      )assertTupleEqualr)   r1   r$   ri   r%   rk   s    r   !testSetParseFnsDefaultsFromPython4FireDecoratorsTest.testSetParseFnsDefaultsFromPythone   c    ,.113b#Y?\^,,Q/!S:\^,,T2RK@r   c                    U R                  [        R                  " [        S/S9S[        45        U R                  [        R                  " [        SS/S9S[
        45        U R                  [        R                  " [        SS/S9S[
        45        U R                  [        R                  " [        SS/S9S[
        45        g )	Nr1   rd   r8   1013   14.0   ri   r   rj   r)   r$   r%   rk   s    r   testSetParseFnsDefaultsFromFire2FireDecoratorsTest.testSetParseFnsDefaultsFromFirek       TYY|j\BRINTYY|j$5GH%["TYY|j$5GH%["TYY|j&5IJ%["r   c                    U R                  [        5       R                  5       S[        45        U R	                  [        5       R                  S5      S[        45        U R	                  [        5       R                  S5      S[
        45        g rw   )rz   r)   r6   r$   ri   r%   rk   s    r   &testSetParseFnsNamedDefaultsFromPython9FireDecoratorsTest.testSetParseFnsNamedDefaultsFromPythonu   r}   r   c                    U R                  [        R                  " [        S/S9S[        45        U R                  [        R                  " [        SS/S9S[
        45        U R                  [        R                  " [        SS/S9S[
        45        U R                  [        R                  " [        SS/S9S[
        45        g )	Nr6   rd   r8   r   r   r   r   r   r   rk   s    r   $testSetParseFnsNamedDefaultsFromFire7FireDecoratorsTest.testSetParseFnsNamedDefaultsFromFire{   r   r   c                 ^    U R                  [        R                  " [        / SQ5      S5        g )N)r@   r   r   r8   r   )ri   r   rj   r:   rk   s    r   !testSetParseFnsPositionalAndNamed4FireDecoratorsTest.testSetParseFnsPositionalAndNamed   s!    TYY~/GH!r   c                     U R                  [        R                  " [        / SQS9S5        U R                  [        R                  " [        / SQS9S5        g )N)rH   r   r   rd   )r   r8   )rK   r   r   r   )ri   r   rj   rE   rk   s    r   testSetParseFnsOnlySomeTypes/FireDecoratorsTest.testSetParseFnsOnlySomeTypes   sB    		.*BCZQ		.*BCZQr   c                    U R                  [        R                  " [        S/S9S5        U R                  [        R                  " [        / SQS9S5        U R                  [        R                  " [        / SQS9S5        U R                  [        R                  " [        / SQS9S5        U R                  [        R                  " [        / S	QS9S
5        U R                  [        R                  " [        / SQS9S5        g )NrU   rd   )rR   r   )rU   z	--herringz"red")rU   --modetrain)r   r   )rU   r   3)r   r   )rU   r   -1--countr   )r   r8   )rU   r   z-2)rR   )ri   r   rj   rN   rk   s    r   testSetParseFnsForKeywordArgs0FireDecoratorsTest.testSetParseFnsForKeywordArgs   s    		*zl3^E		*&HI 			*&EF 	TYYz3NO		*G	I 			*&CDr   c                 f    U R                  [        R                  " [        / SQS9SSSSS045        g )N)r\   1z--arg2=2r   rf   z	--kwarg=5rd   r   rc   )r   rf   kwargro   )ri   r   rj   rX   rk   s    r   testSetParseFn!FireDecoratorsTest.testSetParseFn   s2    		+N	P	c:~.0r   r   N)r   r   r    r!   rl   rq   rt   r{   r   r   r   r   r   r   r   r&   r   r   r   r`   r`   Y   s>    KL;A"A"!Q&0r   r`   __main__N)r"   firer   r   r   r   r#   r$   r   r)   r:   rE   rN   rX   BaseTestCaser`   r   mainr   r   r   <module>r      s    '           ' 'M0// M0` z.. r   