
    `j                     P   d Z ddlmZ ddlmZ ddlmZ  G d d          Z ej        e          d             Z G d d	          Z	 G d
 d          Z
 G d d          Z G d d          Z G d d          Z G d dej                  Zedk    r ej                     dS dS )z Tests for the decorators module.    )core)
decorators)	testutilsc                       e Zd ZdZ ej        e          d             Z ej        e          d             Z	 ej        e          d             Z
dS )
NoDefaultsz?A class for testing decorated functions without default values.countc                     d|z  S N    selfr	   s     X/home/jworkman/hermes-web-chat/venv/lib/python3.11/site-packages/fire/decorators_test.pydoublezNoDefaults.double       u9    c                     d|z  S )N   r   r   s     r   triplezNoDefaults.triple   r   r   c                     d|z  S )N   r   r   s     r   	quadruplezNoDefaults.quadruple!   r   r   N)__name__
__module____qualname____doc__r   SetParseFnsintr   floatr   r   r   r   r   r   r      s        GG:$$$  %$ :&&&  '& :#    r   r   c                     d| z  S r   r   r   s    r   r   r   &   s    	
Ur   c                   x    e Zd Z ej        e          dd            Z ej        e          dd            ZdS )WithDefaults
   c                 $    |t          |          fS Ntyper   arg1s     r   example1zWithDefaults.example1-       dr   r*   c                 $    |t          |          fS r&   r'   r)   s     r   example2zWithDefaults.example21   r,   r   N)r$   )r   r   r   r   r   r    r+   r/   r   r   r   r#   r#   +   sq        :%     !  :u%%%   &%  r   r#   c                   D    e Zd Z ej        ee          d             ZdS )MixedArgumentsarg2c                 
    ||fS r&   r   r   r*   r3   s      r   example3zMixedArguments.example38       :r   N)r   r   r   r   r   r    strr6   r   r   r   r1   r1   6   s@        :%c***  +*  r   r1   c                   v    e Zd Z ej        e          d             Z ej        e          d             ZdS )PartialParseFnr-   c                 
    ||fS r&   r   r5   s      r   example4zPartialParseFn.example4?   r7   r   r2   c                 
    ||fS r&   r   r5   s      r   example5zPartialParseFn.example5C   r7   r   N)r   r   r   r   r   r8   r<   r>   r   r   r   r:   r:   =   sj        :s###  $# :s###  $#  r   r:   c                   D    e Zd Z ej        ee          d             ZdS )
WithKwargs)moder	   c                 Z    |                     dd          |                     dd          fS )NrA   defaultr	   r   )get)r   kwargss     r   example6zWithKwargs.example6J   s0     	

69%%

7A r   N)r   r   r   r   r   r8   r   rF   r   r   r   r@   r@   H   s@        :s#...  /.  r   r@   c                   B    e Zd Z ej        e          dd            ZdS )WithVarArgsNc                     ||||fS r&   r   )r   r*   r3   varargsrE   s        r   example7zWithVarArgs.example7T   s    w&&r   r&   )r   r   r   r   
SetParseFnr8   rK   r   r   r   rH   rH   R   s@        :' ' ' ' ' 'r   rH   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )FireDecoratorsTestc                     |                      t          j        t          ddg          d           |                      t          j        t          ddg          d           d S )Nr   2commandr   r   4      (@assertEqualr   Firer   r   s    r   testSetParseFnsNamedArgsz+FireDecoratorsTest.testSetParseFnsNamedArgs[   sZ    TYzHc?CCCQGGGTYzHc?CCCTJJJJJr   c                 h    |                      t          j        t          ddg          d           d S )Nr   5rQ      rU   rX   s    r   testSetParseFnsPositionalArgsz0FireDecoratorsTest.testSetParseFnsPositionalArgs_   s2    TYzK3EFFFKKKKKr   c                 f    |                      t          j        t          dg          d           d S )Nr[   rQ   r$   )rV   r   rW   r   rX   s    r   #testSetParseFnsFnWithPositionalArgsz6FireDecoratorsTest.testSetParseFnsFnWithPositionalArgsb   s/    TYvu555r:::::r   c                 l   |                      t                                                      dt          f           |                     t                                          d          dt          f           |                     t                                          d          dt
          f           d S Nr$      rT      )assertTupleEqualr#   r+   r   rV   r    rX   s    r   !testSetParseFnsDefaultsFromPythonz4FireDecoratorsTest.testSetParseFnsDefaultsFromPythone       ,..1133b#Y???\^^,,Q//!S:::\^^,,T22RK@@@@@r   c                    |                      t          j        t          dg          dt          f           |                      t          j        t          ddg          dt
          f           |                      t          j        t          ddg          dt
          f           |                      t          j        t          ddg          dt
          f           d S )	Nr+   rQ   r$   1013   14.0   rV   r   rW   r#   r   r    rX   s    r   testSetParseFnsDefaultsFromFirez2FireDecoratorsTest.testSetParseFnsDefaultsFromFirek       TY|j\BBBRINNNTY|j$5GHHH%[" " "TY|j$5GHHH%[" " "TY|j&5IJJJ%[" " " " "r   c                 l   |                      t                                                      dt          f           |                     t                                          d          dt          f           |                     t                                          d          dt
          f           d S ra   )rd   r#   r/   r   rV   r    rX   s    r   &testSetParseFnsNamedDefaultsFromPythonz9FireDecoratorsTest.testSetParseFnsNamedDefaultsFromPythonu   rf   r   c                    |                      t          j        t          dg          dt          f           |                      t          j        t          ddg          dt
          f           |                      t          j        t          ddg          dt
          f           |                      t          j        t          ddg          dt
          f           d S )	Nr/   rQ   r$   rh   ri   rj   rk   rl   rm   rX   s    r   $testSetParseFnsNamedDefaultsFromFirez7FireDecoratorsTest.testSetParseFnsNamedDefaultsFromFire{   ro   r   c                 f    |                      t          j        t          g d          d           d S )N)r6   rh   rh   r$   rh   )rV   r   rW   r1   rX   s    r   !testSetParseFnsPositionalAndNamedz4FireDecoratorsTest.testSetParseFnsPositionalAndNamed   s<    TY~/G/G/GHH! ! ! ! !r   c                     |                      t          j        t          g d          d           |                      t          j        t          g d          d           d S )N)r<   rh   rh   rQ   )rh   r$   )r>   rh   rh   ru   )rV   r   rW   r:   rX   s    r   testSetParseFnsOnlySomeTypesz/FireDecoratorsTest.testSetParseFnsOnlySomeTypes   sz    	.*B*B*BCCCZQ Q Q	.*B*B*BCCCZQ Q Q Q Qr   c                 P   |                      t          j        t          dg          d           |                      t          j        t          g d          d           |                      t          j        t          g d          d           |                      t          j        t          g d          d           |                      t          j        t          g d	          d
           |                      t          j        t          g d          d           d S )NrF   rQ   )rC   r   )rF   z	--herringz"red")rF   --modetrain)r{   r   )rF   rz   3)r|   r   )rF   rz   -1--countrh   )r}   r$   )rF   r~   z-2)rC   )rV   r   rW   r@   rX   s    r   testSetParseFnsForKeywordArgsz0FireDecoratorsTest.testSetParseFnsForKeywordArgs   sO   	*zl333^E E E	*&H&H&HIII   		*&E&E&EFFF   	TYz3N3N3NOOO  	*GGG	I 	I 	I   		*&C&C&CDDD    r   c                 t    |                      t          j        t          g d          dddddif           d S )N)rK   1z--arg2=2r|   rS   z	--kwarg=5rQ   r   rP   )r|   rS   kwargr[   )rV   r   rW   rH   rX   s    r   testSetParseFnz!FireDecoratorsTest.testSetParseFn   sV    	+NNN	P 	P 	P	c:~.0 0 0 0 0r   N)r   r   r   rY   r]   r_   re   rn   rq   rs   rv   rx   r   r   r   r   r   rN   rN   Y   s        K K KL L L; ; ;A A A" " "A A A" " "! ! !Q Q Q  &0 0 0 0 0r   rN   __main__N)r   firer   r   r   r   r   r   r   r#   r1   r:   r@   rH   BaseTestCaserN   r   mainr   r   r   <module>r      s   ' &                                                         ' ' ' ' ' ' ' 'M0 M0 M0 M0 M0/ M0 M0 M0` z). r   