o
    Qœ_5&  ã                   @   s˜  d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlZd dlmZ ejrId dlmZmZ G dd„ dejƒ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ƒZG dd„ dejƒZG dd„ dejƒZ G dd„ dejƒZ!G dd„ dejƒZ"G dd„ dejƒZ#G dd „ d ejƒZ$G d!d"„ d"ejƒZ%G d#d$„ d$ejƒZ&dS )%é    )ÚStringION)Úutf8)Úraise_exc_infoÚConfigurableÚexec_inÚArgReplacerÚtimedelta_to_secondsÚimport_objectÚre_unescapeÚis_finalizing)Úcast)ÚDictÚAnyc                   @   ó   e Zd Zdd„ ZdS )ÚRaiseExcInfoTestc              
   C   s†   G dd„ dt ƒ}z|ddƒ‚ |y   t ¡ }Y nw zt|ƒ |  d¡ W d S  |yB } z|  ||d ¡ W Y d }~d S d }~ww )Nc                       s   e Zd Z‡ fdd„Z‡  ZS )z@RaiseExcInfoTest.test_two_arg_exception.<locals>.TwoArgExceptionc                    s   t ƒ  ¡  ||| _| _d S ©N)ÚsuperÚ__init__ÚaÚb)Úselfr   r   ©Ú	__class__© ú8/usr/lib/python3/dist-packages/tornado/test/util_test.pyr   !   s   
zIRaiseExcInfoTest.test_two_arg_exception.<locals>.TwoArgException.__init__)Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__r   r   r   r   ÚTwoArgException    s    r   é   é   zdidn't get expected exception)Ú	ExceptionÚsysÚexc_infor   ÚfailÚassertIs)r   r   r$   Úer   r   r   Útest_two_arg_exception   s   
ÿ€ÿz'RaiseExcInfoTest.test_two_arg_exceptionN)r   r   r   r(   r   r   r   r   r      ó    r   c                   @   ó$   e Zd Zedd„ ƒZedd„ ƒZdS )ÚTestConfigurablec                 C   ó   t S r   )r+   ©Úclsr   r   r   Úconfigurable_base1   ó   z"TestConfigurable.configurable_basec                 C   r,   r   )ÚTestConfig1r-   r   r   r   Úconfigurable_default5   r0   z%TestConfigurable.configurable_defaultN©r   r   r   Úclassmethodr/   r2   r   r   r   r   r+   0   s
    
r+   c                   @   ó   e Zd Zddd„ZdS )r1   Nc                 C   ó   || _ || _d S r   )r   Úpos_arg)r   r7   r   r   r   r   Ú
initialize;   ó   
zTestConfig1.initialize©NN©r   r   r   r8   r   r   r   r   r1   :   ó    r1   c                   @   r5   )ÚTestConfig2Nc                 C   r6   r   )r   r7   )r   r7   r   r   r   r   r8   A   r9   zTestConfig2.initializer:   r;   r   r   r   r   r=   @   r<   r=   c                   @   r*   )ÚTestConfig3c                 C   r,   r   )r>   r-   r   r   r   r/   H   r0   zTestConfig3.configurable_basec                 C   r,   r   )ÚTestConfig3Ar-   r   r   r   r2   L   r0   z TestConfig3.configurable_defaultNr3   r   r   r   r   r>   F   s
    
r>   c                   @   r5   )r?   Nc                 C   ó
   || _ d S r   ©r   )r   r   r   r   r   r8   R   ó   
zTestConfig3A.initializer   r;   r   r   r   r   r?   Q   r<   r?   c                   @   r5   )ÚTestConfig3BNc                 C   r@   r   ©r   )r   r   r   r   r   r8   W   rB   zTestConfig3B.initializer   r;   r   r   r   r   rC   V   r<   rC   c                   @   s\   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S )ÚConfigurableTestc                 C   s   t  ¡ | _t ¡ | _d S r   )r+   Ú_save_configurationÚsavedr>   Úsaved3©r   r   r   r   ÚsetUp\   s   
zConfigurableTest.setUpc                 C   s   t  | j¡ t | j¡ d S r   )r+   Ú_restore_configurationrG   r>   rH   rI   r   r   r   ÚtearDown`   s   zConfigurableTest.tearDownc                 C   sP   |   tƒ t¡ |   tƒ t¡ tdd�}|  |jd¡ tdd�}|  |jd¡ d S ©Nr    rA   r!   rD   )ÚassertIsInstancer1   r=   ÚassertEqualr   r   ©r   ÚobjÚobj2r   r   r   ÚcheckSubclassesd   s   

z ConfigurableTest.checkSubclassesc                 C   s\   t ttƒ ƒ}|  |t¡ |  |jd ¡ t ttdd�ƒ}|  |t¡ |  |jd¡ |  ¡  d S )Nr    rA   )r   r1   r+   rN   r&   r   rO   rS   ©r   rQ   r   r   r   Útest_defaulto   s   zConfigurableTest.test_defaultc                 C   sf   t  t¡ ttt ƒ ƒ}|  |t¡ |  |jd ¡ ttt dd�ƒ}|  |t¡ |  |jd¡ |  ¡  d S )Nr!   rD   )	r+   Ú	configurer=   r   rN   r&   r   rO   rS   rT   r   r   r   Útest_config_class}   ó   
z"ConfigurableTest.test_config_classc                 C   sf   t  d¡ ttt ƒ ƒ}|  |t¡ |  |jd ¡ ttt dd�ƒ}|  |t¡ |  |jd¡ |  ¡  d S )Nz"tornado.test.util_test.TestConfig2r!   rD   )	r+   rV   r   r=   rN   r&   r   rO   rS   rT   r   r   r   Útest_config_str‰   rX   z ConfigurableTest.test_config_strc                 C   sŽ   t jd dd� ttt ƒ ƒ}|  |t¡ |  |jd¡ ttt ddd�ƒ}|  |t¡ |  |jd¡ |  |jd¡ |  ¡  tƒ }|  	|jd ¡ d S )Né   rA   é*   é   )
r+   rV   r   r1   rN   rO   r   r7   rS   r&   rT   r   r   r   Útest_config_args•   ó   z!ConfigurableTest.test_config_argsc                 C   sŽ   t jtdd� ttt ƒ ƒ}|  |t¡ |  |jd¡ ttt ddd�ƒ}|  |t¡ |  |jd¡ |  |jd¡ |  ¡  tƒ }|  	|jd ¡ d S )Né   rD   r[   é   )
r+   rV   r=   r   rN   rO   r   r7   rS   r&   rT   r   r   r   Útest_config_class_args¥   r^   z'ConfigurableTest.test_config_class_argsc                 C   sv   t jtdd� ttt ƒ ƒ}|  |t¡ |  |jd¡ t  t¡ tjtdd� ttt ƒ ƒ}|  |t¡ |  |j	d¡ d S rM   )
r+   rV   r>   r   r?   rN   rO   r   rC   r   rP   r   r   r   Útest_config_multi_levelµ   s   
z(ConfigurableTest.test_config_multi_levelc                 C   sr   t ƒ }|  |t¡ t  t¡ t ƒ }|  |t¡ tƒ }|  |t¡ t t¡ tƒ }|  |t¡ t ƒ }|  |t¡ d S r   )r>   rN   r?   rV   rC   r+   r1   r=   )r   rQ   rR   Úobj3r   r   r   Útest_config_inner_levelÁ   s   

z(ConfigurableTest.test_config_inner_levelN)r   r   r   rJ   rL   rS   rU   rW   rY   r]   ra   rb   rd   r   r   r   r   rE   [   s    rE   c                   @   r   )ÚUnicodeLiteralTestc                 C   s   |   tdƒd¡ d S )Nõ   Ã©s   Ã©)rO   r   rI   r   r   r   Útest_unicode_escapesØ   ó   z'UnicodeLiteralTest.test_unicode_escapesN)r   r   r   rg   r   r   r   r   re   ×   r)   re   c                   @   s   e Zd Ze d¡dd„ ƒZdS )Ú
ExecInTestzno testable future importsc                 C   s6   t ƒ }td|d� tdt|d�ƒ |  | ¡ d¡ d S )NÚhello)Úfilezprint >> f, "world")Úfzhello
world
)r   Úprintr   ÚdictrO   Úgetvalue)r   rl   r   r   r   Útest_no_inherit_futureß   s   z!ExecInTest.test_no_inherit_futureN)r   r   r   ÚunittestÚskiprp   r   r   r   r   ri   Ü   s    ri   c                   @   ó,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚArgReplacerTestc                 C   s   ddd„}t |dƒ| _d S )Nc                 S   s   d S r   r   )ÚxÚyÚcallbackÚzr   r   r   Úfunctionë   s   z'ArgReplacerTest.setUp.<locals>.functionrw   r:   )r   Úreplacer)r   ry   r   r   r   rJ   ê   s   
zArgReplacerTest.setUpc                 C   sH   d}t ƒ }|  | j ||¡d ¡ |  | j d||¡d dt dd�f¡ d S )N)r    r!   Únew)rw   )rn   r&   rz   Úget_old_valuerO   Úreplace©r   ÚargsÚkwargsr   r   r   Útest_omittedð   ó   þzArgReplacerTest.test_omittedc                 C   sH   d}t ƒ }|  | j ||¡d¡ |  | j d||¡dg d¢t ƒ f¡ d S )N)r    r!   ÚoldrZ   rƒ   r{   )r    r!   r{   rZ   ©rn   rO   rz   r|   r}   r~   r   r   r   Útest_positionù   r‚   zArgReplacerTest.test_positionc              
   C   sT   d}t dddd�}|  | j ||¡d¡ |  | j d||¡ddt dddd�f¡ d S )N)r    r!   rƒ   rZ   )rv   rw   rx   r{   r„   r~   r   r   r   Útest_keyword  s   þzArgReplacerTest.test_keywordN)r   r   r   rJ   r�   r…   r†   r   r   r   r   rt   é   s
    		rt   c                   @   r   )ÚTimedeltaToSecondsTestc                 C   s    t jdd�}|  t|ƒd¡ d S )Nr    )Úhoursg      ¬@)ÚdatetimeÚ	timedeltarO   r   )r   Ú
time_deltar   r   r   Útest_timedelta_to_seconds  s   z0TimedeltaToSecondsTest.test_timedelta_to_secondsN)r   r   r   rŒ   r   r   r   r   r‡     r)   r‡   c                   @   rs   )
ÚImportObjectTestc                 C   ó   |   tdƒt¡ d S ©Nztornado.escape.utf8©r&   r	   r   rI   r   r   r   Útest_import_member  rh   z#ImportObjectTest.test_import_memberc                 C   rŽ   r�   r�   rI   r   r   r   Útest_import_member_unicode  rh   z+ImportObjectTest.test_import_member_unicodec                 C   ó   |   tdƒtj¡ d S ©Nztornado.escape©r&   r	   ÚtornadoÚescaperI   r   r   r   Útest_import_module  s   z#ImportObjectTest.test_import_modulec                 C   r“   r”   r•   rI   r   r   r   Útest_import_module_unicode  s   z+ImportObjectTest.test_import_module_unicodeN)r   r   r   r‘   r’   r˜   r™   r   r   r   r   r�     s
    r�   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚReUnescapeTestc                 C   s(   d}|D ]}|   |tt |¡ƒ¡ qd S )N)z/favicon.icoz
index.htmlzHello, World!z!$@#%;)rO   r
   Úrer—   )r   Útest_stringsÚstringr   r   r   Útest_re_unescape$  s   ÿzReUnescapeTest.test_re_unescapec                 C   sœ   |   t¡� tdƒ W d   ƒ n1 sw   Y  |   t¡� tdƒ W d   ƒ n1 s-w   Y  |   t¡� tdƒ W d   ƒ d S 1 sGw   Y  d S )Nz\dz\bz\Z)ÚassertRaisesÚ
ValueErrorr
   rI   r   r   r   Ú.test_re_unescape_raises_error_on_invalid_input)  s   
ÿ
ÿ
"ÿz=ReUnescapeTest.test_re_unescape_raises_error_on_invalid_inputN)r   r   r   rž   r¡   r   r   r   r   rš   #  s    rš   c                   @   r   )ÚIsFinalizingTestc                 C   s   |   tƒ ¡ d S r   )ÚassertFalser   rI   r   r   r   Ú
test_basic3  s   zIsFinalizingTest.test_basicN)r   r   r   r¤   r   r   r   r   r¢   2  r)   r¢   )'Úior   r›   r#   r‰   rq   Útornado.escaper–   r   Útornado.utilr   r   r   r   r   r	   r
   r   Útypingr   ÚTYPE_CHECKINGr   r   ÚTestCaser   r+   r1   r=   r>   r?   rC   rE   re   ri   rt   r‡   r�   rš   r¢   r   r   r   r   Ú<module>   s6    (
|#