o
    Óó·i!  ã                   @  sd   d dl mZ 	 d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ edƒZG dd„ dejƒZd	S )
é    )Úannotations)ÚCallableÚIterable)ÚConcatenateÚ	ParamSpec)Ú
formmethod)ÚunittestÚ_Pc                   @  s„   e Zd Zd&dd„Zd'dd„Zd'dd„Zd'dd„Zd'dd„Zd'dd„Zd'dd„Z	d'dd„Z
d'dd„Zd'dd „Zd'd!d"„Zd'd#d$„Zd%S )(ÚArgumentTestsÚargKlassú3Callable[Concatenate[str, _P], formmethod.Argument]Ú	testPairsúIterable[tuple[object, object]]Ú	badValuesúIterable[object]Úargsú_P.argsÚkwargsú	_P.kwargsÚreturnÚNonec           	      O  sV   |dg|¢R i |¤Ž}|D ]\}}|   | |¡|¡ q|D ]}|  tj|j|¡ qd S )NÚname)ÚassertEqualÚcoerceÚassertRaisesr   Ú
InputError)	Úselfr   r   r   r   r   ÚargÚvalÚresult© r    úbC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-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  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&   )Ú223213Z345xé   )Úmax)Úaddr4   )r1   Úx©r0   r3   )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)©Ú3r2   ©z-2éþÿÿÿ©r#   N)Úqú2.3r;   r=   )r@   rA   r#   r   ©Z	allowNone)r"   r   ZIntegerr8   r    r    r!   ÚtestInt9   s   ÿ
ÿzArgumentTests.testIntc                 C  r:   )N)©r<   g      @©z-2.3gffffffÀr?   )r@   ú2.3zrD   rE   )r@   rF   r#   r   rB   )r"   r   ZFloatr8   r    r    r!   Ú	testFloatA   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'   rI   )rK   rL   )Úcr(   )Úchoices)r"   r   ZChoice)r   rN   r    r    r!   Ú
testChoiceL   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 )
NrH   rJ   r'   rI   rK   rL   rM   Zfdfs)Úflags)r"   r   ÚFlags)r   rP   r    r    r!   Ú	testFlagsU   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!   Ú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   rB   Z	somethingN)r   ÚFiler   r   r   r   ZassertIsNone)r   r   Zarg2r    r    r!   Ú	test_fileb   s
   
zArgumentTests.test_filec                 C  s,   ddd dœ  ¡ }g d¢}|  tj||¡ d S )N)iÒ  é   é   )iÌ  r/   é   ))Ú2002Ú12Z21)Z1996r.   Ú29)r#   r#   r#   ))r^   r.   r`   )Úxxr.   r<   )r^   Ú13r)   )Z1999r_   Ú32)r^   r)   )r^   r.   r<   Ú4)Úitemsr"   r   ÚDate©r   Z	goodTestsZbadTestsr    r    r!   ÚtestDatel   s   ýüzArgumentTests.testDatec                 C  s0   ddddœ  ¡ }g d¢}|  tj||dd¡ d S )Nr   r[   r2   )Ú0r_   r<   )z-1r5   rb   z-2000z3.4)re   r"   r   ZIntegerRangerg   r    r    r!   ÚtestRangedInteger|   s   zArgumentTests.testRangedIntegerc                 C  s0   dddœ  ¡ }g d¢}| jtj||ddd� d S )NÚfoor,   ))rk   rk   r+   ))r,   r'   )Ú12345rl   r*   r&   )r'   )r'   r'   r'   r/   é   r6   )re   r"   r   ZVerifiedPasswordrg   r    r    r!   ÚtestVerifiedPassword�   s   z"ArgumentTests.testVerifiedPasswordN)r   r   r   r   r   r   r   r   r   r   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__r"   r%   r9   rC   rG   rO   rR   rX   rZ   rh   rj   rn   r    r    r    r!   r
      s    






	
	



r
   N)Ú
__future__r   Útypingr   r   Ztyping_extensionsr   r   Ztwisted.pythonr   Ztwisted.trialr   r	   ZTestCaser
   r    r    r    r!   Ú<module>   s   