U
    +cl                     @   s   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 ddlmZ G dd	 d	e	Z
eed
d ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd dejZedkre  dS )z Tests for the decorators module.    )absolute_import)division)print_function)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   s   d| S N    selfr
   r   r   8/tmp/pip-unpacked-wheel-1xt1w7un/fire/decorators_test.pydouble   s    zNoDefaults.doublec                 C   s   d| S )N   r   r   r   r   r   triple!   s    zNoDefaults.triplec                 C   s   d| S )N   r   r   r   r   r   	quadruple%   s    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   *   s    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   s   |t |fS Ntyper   arg1r   r   r   example11   s    zWithDefaults.example1r#   c                 C   s   |t |fS r   r    r"   r   r   r   example25   s    zWithDefaults.example2N)r   )r   )r   r   r   r   r   r   r$   r&   r   r   r   r   r   /   s   
r   c                   @   s"   e Zd Zejeeddd ZdS )MixedArgumentsarg2c                 C   s   ||fS r   r   r   r#   r)   r   r   r   example3<   s    zMixedArguments.example3N)r   r   r   r   r   r   strr+   r   r   r   r   r'   :   s   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   s   ||fS r   r   r*   r   r   r   example4C   s    zPartialParseFn.example4r(   c                 C   s   ||fS r   r   r*   r   r   r   example5G   s    zPartialParseFn.example5N)r   r   r   r   r   r,   r.   r/   r   r   r   r   r-   A   s   


r-   c                   @   s"   e Zd Zejeeddd ZdS )
WithKwargs)moder
   c                 K   s   | dd| ddfS )Nr1   defaultr
   r   )get)r   kwargsr   r   r   example6N   s    

zWithKwargs.example6N)r   r   r   r   r   r,   r   r5   r   r   r   r   r0   L   s   r0   c                   @   s    e Zd ZeedddZdS )WithVarArgsNc                 O   s   ||||fS r   r   )r   r#   r)   varargsr4   r   r   r   example7X   s    zWithVarArgs.example7)N)r   r   r   r   Z
SetParseFnr,   r8   r   r   r   r   r6   V   s   r6   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;      r?   rB   r   r   r   testSetParseFnsPositionalArgsc   s    z0FireDecoratorsTest.testSetParseFnsPositionalArgsc                 C   s   |  tjtdgdd d S )NrD   r;   r   )r@   r   rA   r   rB   r   r   r   #testSetParseFnsFnWithPositionalArgsf   s    z6FireDecoratorsTest.testSetParseFnsFnWithPositionalArgsc                 C   sJ   |  t  dtf | t ddtf | t ddtf d S Nr      r>      )assertTupleEqualr   r$   r   r@   r   rB   r   r   r   !testSetParseFnsDefaultsFromPythoni   s    z4FireDecoratorsTest.testSetParseFnsDefaultsFromPythonc                 C   sz   |  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   r@   r   rA   r   r   r   rB   r   r   r   testSetParseFnsDefaultsFromFireo   s    z2FireDecoratorsTest.testSetParseFnsDefaultsFromFirec                 C   sJ   |  t  dtf | t ddtf | t ddtf d S rH   )rK   r   r&   r   r@   r   rB   r   r   r   &testSetParseFnsNamedDefaultsFromPythony   s    z9FireDecoratorsTest.testSetParseFnsNamedDefaultsFromPythonc                 C   sz   |  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   rM   rN   rO   rP   rQ   rR   rB   r   r   r   $testSetParseFnsNamedDefaultsFromFire   s    z7FireDecoratorsTest.testSetParseFnsNamedDefaultsFromFirec                 C   s   |  ttdddgd d S )Nr+   rM   r   rM   )r@   r   rA   r'   rB   r   r   r   !testSetParseFnsPositionalAndNamed   s    z4FireDecoratorsTest.testSetParseFnsPositionalAndNamedc                 C   s<   |  tjtdddgdd |  tjtdddgdd d S )Nr.   rM   r;   )rM   r   r/   rV   )r@   r   rA   r-   rB   r   r   r   testSetParseFnsOnlySomeTypes   s      z/FireDecoratorsTest.testSetParseFnsOnlySomeTypesc              	   C   s   |  tjtdgdd |  tjtdddgdd |  tjtdddgdd |  tjtddd	gdd
 |  tjtdddddgdd |  tjtdddgdd d S )Nr5   r;   )r2   r   z	--herringz"red"z--modetrain)rY   r   3)rZ   r   -1z--countrM   )r[   r   z-2)r2   )r@   r   rA   r0   rB   r   r   r   testSetParseFnsForKeywordArgs   s2     z0FireDecoratorsTest.testSetParseFnsForKeywordArgsc              
   C   s2   |  tjtddddddgdddd	d
dif d S )Nr8   1z--arg2=2rZ   r=   z	--kwarg=5r;   r:   )rZ   r=   kwargrD   )r@   r   rA   r6   rB   r   r   r   testSetParseFn   s    z!FireDecoratorsTest.testSetParseFnN)r   r   r   rC   rF   rG   rL   rS   rT   rU   rW   rX   r]   r`   r   r   r   r   r9   ]   s   

r9   __main__N)r   
__future__r   r   r   Zfirer   r   r   objectr   r   r   r   r   r'   r-   r0   r6   ZBaseTestCaser9   r   mainr   r   r   r   <module>   s"   

P