o
    by                     @   s2   d Z ddlmZ ddlmZ G dd dejZdS )z#
Test cases for formmethod module.
    )
formmethod)unittestc                   @   sl   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S )ArgumentTestsc           	      O   sV   |dg|R i |}|D ]\}}|  ||| q|D ]}| tj|j| qd S )Nname)assertEqualcoerceassertRaisesr   
InputError)	selfargKlass	testPairs	badValuesargskwargsargvalresult r   >/usr/lib/python3/dist-packages/twisted/test/test_formmethod.pyargTest   s   zArgumentTests.argTestc                 C   s   t d}| t|jd dS )zG
        Test that corce correctly raises NotImplementedError.
        r    N)r   Argumentr   NotImplementedErrorr   )r
   r   r   r   r   test_argument   s   
zArgumentTests.test_argumentc                 C   sb   |  tjg dd | j tjddgddd | j tjddgd	d
d | j tjddgddd
d d S )N)ar   )   1r   r   r   abr    )abcr!   )2r      )minr   )223213345x   )max)addr)   )r%   xr$   r(   )r   r   Stringr
   r   r   r   
testString   s   
zArgumentTests.testStringc                 C   0   |  tjg dd | j tjddgddd d S )N)3r'   z-2r   N)q2.3r0   r2   )r5   r6   r   r   	allowNone)r   r   Integerr-   r   r   r   testInt,   s   
zArgumentTests.testIntc                 C   r/   )N)r1   g      @z-2.3gffffffr4   )r5   2.3zr;   r<   )r5   r=   r   r   r7   )r   r   Floatr-   r   r   r   	testFloat4   s   
zArgumentTests.testFloatc                 C   s$   ddg}| j tjddgd|d d S )Nr   applezan applebbananaook)r   rA   )rC   rD   )cr   )choices)r   r   Choice)r
   rG   r   r   r   
testChoice?   s   
zArgumentTests.testChoicec                 C   sB   ddg}| j tjdgdgfddgddgfgddgdgf|d	 d S )
Nr@   rB   r   rA   rC   rD   rF   fdfs)flags)r   r   Flags)r
   rK   r   r   r   	testFlagsH   s   
zArgumentTests.testFlagsc                 C   s   g d}|  tj|d d S )N))yesr   )r   r   )Falser   )nor   r   )r   r   Boolean)r
   testsr   r   r   testBooleanQ   s   zArgumentTests.testBooleanc                 C   sP   t jddd}| |dd | t j|jd t d}| |d dS )z>
        Test the correctness of the coerce function.
        r   r   r7   	somethingN)r   Filer   r   r   r	   assertIsNone)r
   r   arg2r   r   r   	test_fileU   s
   
zArgumentTests.test_filec                 C   s,   ddd d  }g d}| tj|| d S )N)i        )i  r#      ))20021221)1996r"   29)r   r   r   ))r\   r"   r`   )xxr"   r1   )r\   13r   )1999r]   32)r\   r   )r\   r"   r1   4)itemsr   r   Dater
   	goodTestsbadTestsr   r   r   testDate_   s   zArgumentTests.testDatec                 C   s0   dddd  }g d}| tj||dd d S )Nr   rY   r'   )0r]   r1   )z-1r*   rb   z-2000z3.4)rf   r   r   IntegerRangerh   r   r   r   testRangedIntegero   s   zArgumentTests.testRangedIntegerc                 C   s0   ddd  }g d}| jtj||ddd d S )Nfoor    ))ro   ro   r   ))r    r   )12345rp   r   r   )r   )r   r   r   r#      r+   )rf   r   r   VerifiedPasswordrh   r   r   r   testVerifiedPasswordt   s   z"ArgumentTests.testVerifiedPasswordN)__name__
__module____qualname__r   r   r.   r:   r?   rI   rM   rS   rX   rk   rn   rs   r   r   r   r   r      s    		
r   N)__doc__twisted.pythonr   twisted.trialr   TestCaser   r   r   r   r   <module>   s   