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   