o
    Ďi                     @   s   d Z ddlmZ ddlmZ ddlmZ G dd dZeedd ZG d	d
 d
Z	G dd dZ
G dd dZG dd dZG dd dZG dd dejZedkrZe  dS dS )z Tests for the decorators module.    )core)
decorators)	testutilsc                   @   sJ   e Zd ZdZejeddd Zejeddd Z	eedd Z
d	S )

NoDefaultsz?A class for testing decorated functions without default values.countc                 C      d| S N    selfr   r   r   P/home/jeff/fluffinator/venv/lib/python3.10/site-packages/fire/decorators_test.pydouble      zNoDefaults.doublec                 C   r   )N   r   r   r   r   r   triple   r   zNoDefaults.triplec                 C   r   )N   r   r   r   r   r   	quadruple!   r   zNoDefaults.quadrupleN)__name__
__module____qualname____doc__r   SetParseFnsintr   floatr   r   r   r   r   r   r      s    



r   c                 C   s   d|  S r	   r   r   r   r   r   r   &   r   r   c                   @   s6   e Zd ZeedddZejeddddZdS )	WithDefaults
   c                 C      |t |fS Ntyper   arg1r   r   r   example1-      zWithDefaults.example1r#   c                 C   r   r   r    r"   r   r   r   example21   r%   zWithDefaults.example2N)r   )r   r   r   r   r   r   r$   r'   r   r   r   r   r   +   s
    
r   c                   @   "   e Zd Zejeeddd ZdS )MixedArgumentsarg2c                 C      ||fS r   r   r   r#   r+   r   r   r   example38   r   zMixedArguments.example3N)r   r   r   r   r   r   strr.   r   r   r   r   r)   6       r)   c                   @   s4   e Zd Zejeddd Zejeddd ZdS )PartialParseFnr&   c                 C   r,   r   r   r-   r   r   r   example4?   r   zPartialParseFn.example4r*   c                 C   r,   r   r   r-   r   r   r   example5C   r   zPartialParseFn.example5N)r   r   r   r   r   r/   r2   r3   r   r   r   r   r1   =   s
    


r1   c                   @   r(   )
WithKwargs)moder   c                 K   s   | dd| ddfS )Nr5   defaultr   r   )get)r   kwargsr   r   r   example6J   s   

zWithKwargs.example6N)r   r   r   r   r   r/   r   r9   r   r   r   r   r4   H   r0   r4   c                   @   s    e Zd ZeedddZdS )WithVarArgsNc                 O   s   ||||fS r   r   )r   r#   r+   varargsr8   r   r   r   example7T   r%   zWithVarArgs.example7r   )r   r   r   r   
SetParseFnr/   r<   r   r   r   r   r:   R   s    r:   c                   @   sd   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S )FireDecoratorsTestc                 C   s8   |  tjtddgdd |  tjtddgdd d S )Nr   2commandr   r   4      (@assertEqualr   Firer   r   r   r   r   testSetParseFnsNamedArgs[   s   z+FireDecoratorsTest.testSetParseFnsNamedArgsc                 C   s   |  tjtddgdd d S )Nr   5r@      rD   rG   r   r   r   testSetParseFnsPositionalArgs_   s   z0FireDecoratorsTest.testSetParseFnsPositionalArgsc                 C   s   |  tjtdgdd d S )NrI   r@   r   )rE   r   rF   r   rG   r   r   r   #testSetParseFnsFnWithPositionalArgsb   s   z6FireDecoratorsTest.testSetParseFnsFnWithPositionalArgsc                 C   J   |  t  dtf | t ddtf | t ddtf d S Nr      rC      )assertTupleEqualr   r$   r   rE   r   rG   r   r   r   !testSetParseFnsDefaultsFromPythone      z4FireDecoratorsTest.testSetParseFnsDefaultsFromPythonc                 C   z   |  tjtdgddtf |  tjtddgddtf |  tjtddgddtf |  tjtddgddtf d S )	Nr$   r@   r   1013   14.0   rE   r   rF   r   r   r   rG   r   r   r   testSetParseFnsDefaultsFromFirek      z2FireDecoratorsTest.testSetParseFnsDefaultsFromFirec                 C   rM   rN   )rQ   r   r'   r   rE   r   rG   r   r   r   &testSetParseFnsNamedDefaultsFromPythonu   rS   z9FireDecoratorsTest.testSetParseFnsNamedDefaultsFromPythonc                 C   rT   )	Nr'   r@   r   rU   rV   rW   rX   rY   rZ   rG   r   r   r   $testSetParseFnsNamedDefaultsFromFire{   r\   z7FireDecoratorsTest.testSetParseFnsNamedDefaultsFromFirec                 C   s   |  ttg dd d S )N)r.   rU   rU   r   rU   )rE   r   rF   r)   rG   r   r   r   !testSetParseFnsPositionalAndNamed   s   z4FireDecoratorsTest.testSetParseFnsPositionalAndNamedc                 C   s8   |  tjtg ddd |  tjtg ddd d S )N)r2   rU   rU   r@   )rU   r   )r3   rU   rU   r_   )rE   r   rF   r1   rG   r   r   r   testSetParseFnsOnlySomeTypes   s   z/FireDecoratorsTest.testSetParseFnsOnlySomeTypesc                 C   s   |  tjtdgdd |  tjtg ddd |  tjtg ddd |  tjtg ddd |  tjtg d	dd
 |  tjtg ddd d S )Nr9   r@   )r6   r   )r9   z	--herringz"red")r9   --modetrain)rc   r   )r9   rb   3)rd   r   )r9   rb   -1--countrU   )re   r   )r9   rf   z-2)r6   )rE   r   rF   r4   rG   r   r   r   testSetParseFnsForKeywordArgs   s0   z0FireDecoratorsTest.testSetParseFnsForKeywordArgsc                 C   s*   |  tjtg dddddddif d S )N)r<   1z--arg2=2rd   rB   z	--kwarg=5r@   ri   r?   )rd   rB   kwargrI   )rE   r   rF   r:   rG   r   r   r   testSetParseFn   s   z!FireDecoratorsTest.testSetParseFnN)r   r   r   rH   rK   rL   rR   r[   r]   r^   r`   ra   rh   rk   r   r   r   r   r>   Y   s    

r>   __main__N)r   firer   r   r   r   r   r   r   r   r)   r1   r4   r:   BaseTestCaser>   r   mainr   r   r   r   <module>   s    

P