U
    
W[=                     @   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.
    )unittest)
formmethodc                   @   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   sN   |d||}|D ]\}}|  ||| q|D ]}| tj|j| q2d S )Nname)r   )assertEqualcoerceassertRaisesr   
InputError)	selfZargKlassZ	testPairsZ	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   ZArgumentr   NotImplementedErrorr   )r
   r   r   r   r   test_argument   s    
zArgumentTests.test_argumentc                 C   sd   |  tjdddg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      )min)223213Z345x   )max)addr$   )r!   xr    r#   )r   r   Stringr
   r   r   r   
testString    s    zArgumentTests.testStringc                 C   s2   |  tjdddgd | j tjddgddd d S )N)3r"   )z-2r   N)q2.3)r-   r.   r   r   Z	allowNone)r   r   ZIntegerr(   r   r   r   testInt&   s    zArgumentTests.testIntc                 C   s2   |  tjdddgd | j tjddgddd d S )N)r*   g      @)z-2.3gffffffr,   )r-   2.3z)r-   r1   r   r   r/   )r   r   ZFloatr(   r   r   r   	testFloat*   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bananaZook)r   r4   )r6   r7   )cr   )choices)r   r   ZChoice)r
   r9   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 )
Nr3   r5   r   r4   r6   r7   r8   Zfdfs)flags)r   r   ZFlags)r
   r;   r   r   r   	testFlags5   s    zArgumentTests.testFlagsc                 C   s    ddddg}|  tj|d d S )N)Zyesr   )r   r   )Falser   )Znor   r   )r   r   ZBoolean)r
   Ztestsr   r   r   testBoolean=   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   r/   Z	somethingN)r   ZFiler   r   r   r	   ZassertIsNone)r
   r   Zarg2r   r   r   	test_fileB   s
    
zArgumentTests.test_filec                 C   s4   ddd d  }dddddd	g}| tj|| d S )
N)i        )i  r      ))200212Z21)Z1996r   29)r   r   r   )rC   r   rE   )Zxxr   r*   )rC   13r   )Z1999rD   Z32)rC   r   )rC   r   r*   4)itemsr   r   ZDater
   Z	goodTestsZbadTestsr   r   r   testDateM   s    
  zArgumentTests.testDatec                 C   s6   dddd  }ddddd	g}| tj||dd d S )
Nr   r@   r"   )0rD   r*   z-1r%   rF   z-2000z3.4)rH   r   r   ZIntegerRangerI   r   r   r   testRangedIntegerX   s    zArgumentTests.testRangedIntegerc                 C   s8   ddd  }dddddd	g}| jtj||d
dd d S )Nfoor   ))rM   rM   r   )r   r   )12345rN   r   r   )r   )r   r   r   r      r&   )rH   r   r   ZVerifiedPasswordrI   r   r   r   testVerifiedPassword]   s    z"ArgumentTests.testVerifiedPasswordN)__name__
__module____qualname__r   r   r)   r0   r2   r:   r<   r>   r?   rJ   rL   rP   r   r   r   r   r      s   r   N)__doc__Ztwisted.trialr   Ztwisted.pythonr   ZTestCaser   r   r   r   r   <module>   s   