U
    luf+&                     @   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rd 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                   @   s   e Zd Zdd ZdS )RaiseExcInfoTestc              
   C   s   G dd dt }z|ddW n |k
r:   t }Y nX zt| | d W n2 |k
r } z| ||d  W 5 d }~X Y nX d S )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__ :/tmp/pip-unpacked-wheel-bmg6zs32/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   Z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      s   r   c                   @   s$   e Zd Zedd Zedd ZdS )TestConfigurablec                 C   s   t S r   )r'   clsr   r   r   configurable_base1   s    z"TestConfigurable.configurable_basec                 C   s   t S r   )TestConfig1r(   r   r   r   configurable_default5   s    z%TestConfigurable.configurable_defaultNr   r   r   classmethodr*   r,   r   r   r   r   r'   0   s   
r'   c                   @   s   e Zd ZdddZdS )r+   Nc                 C   s   || _ || _d S r   )r   pos_arg)r   r/   r   r   r   r   
initialize;   s    zTestConfig1.initialize)NNr   r   r   r0   r   r   r   r   r+   :   s   r+   c                   @   s   e Zd ZdddZdS )TestConfig2Nc                 C   s   || _ || _d S r   )r   r/   )r   r/   r   r   r   r   r0   A   s    zTestConfig2.initialize)NNr1   r   r   r   r   r2   @   s   r2   c                   @   s$   e Zd Zedd Zedd ZdS )TestConfig3c                 C   s   t S r   )r3   r(   r   r   r   r*   H   s    zTestConfig3.configurable_basec                 C   s   t S r   )TestConfig3Ar(   r   r   r   r,   L   s    z TestConfig3.configurable_defaultNr-   r   r   r   r   r3   F   s   
r3   c                   @   s   e Zd ZdddZdS )r4   Nc                 C   s
   || _ d S r   r   )r   r   r   r   r   r0   R   s    zTestConfig3A.initialize)Nr1   r   r   r   r   r4   Q   s   r4   c                   @   s   e Zd ZdddZdS )TestConfig3BNc                 C   s
   || _ d S r   r   )r   r   r   r   r   r0   W   s    zTestConfig3B.initialize)Nr1   r   r   r   r   r6   V   s   r6   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'   Z_save_configurationsavedr3   saved3r   r   r   r   setUp\   s    
zConfigurableTest.setUpc                 C   s   t | j t| j d S r   )r'   Z_restore_configurationr9   r3   r:   r;   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   r5   r    r7   )assertIsInstancer+   r2   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   r5   )r   r+   r'   r?   r$   r   r@   rD   r   rB   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    r7   )	r'   	configurer2   r   r?   r$   r   r@   rD   rE   r   r   r   test_config_class}   s    
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    r7   )	r'   rG   r   r2   r?   r$   r   r@   rD   rE   r   r   r   test_config_str   s    
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   r5   *      )
r'   rG   r   r+   r?   r@   r   r/   rD   r$   rE   r   r   r   test_config_args   s    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   r7   rK      )
r'   rG   r2   r   r?   r@   r   r/   rD   r$   rE   r   r   r   test_config_class_args   s    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 r>   )
r'   rG   r3   r   r4   r?   r@   r   r6   r   rA   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   )r3   r?   r4   rG   r6   r'   r+   r2   )r   rB   rC   Zobj3r   r   r   test_config_inner_level   s    

z(ConfigurableTest.test_config_inner_levelN)r   r   r   r<   r=   rD   rF   rH   rI   rM   rP   rQ   rR   r   r   r   r   r8   [   s   r8   c                   @   s   e Zd Zdd ZdS )UnicodeLiteralTestc                 C   s   |  tdd d S )N   és   é)r@   r   r;   r   r   r   test_unicode_escapes   s    z'UnicodeLiteralTest.test_unicode_escapesN)r   r   r   rU   r   r   r   r   rS      s   rS   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 )NZhello)filezprint >> f, "world")fzhello
world
)r   printr   dictr@   getvalue)r   rX   r   r   r   test_no_inherit_future   s    z!ExecInTest.test_no_inherit_futureN)r   r   r   unittestskipr\   r   r   r   r   rV      s   rV   c                   @   s,   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>.functionrb   )NN)r   replacer)r   rd   r   r   r   r<      s    
zArgReplacerTest.setUpc                 C   sH   d}t  }| | j||d  | | jd||d dt ddf d S )N)r   r    new)rb   )rZ   r$   re   get_old_valuer@   replacer   argskwargsr   r   r   test_omitted   s    zArgReplacerTest.test_omittedc                 C   sL   d}t  }| | j||d | | jd||dddddgt  f d S )N)r   r    oldrJ   rm   rf   r   r    rJ   rZ   r@   re   rg   rh   ri   r   r   r   test_position   s    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    rm   rJ   )ra   rb   rc   rf   rn   ri   r   r   r   test_keyword  s    zArgReplacerTest.test_keywordN)r   r   r   r<   rl   ro   rp   r   r   r   r   r_      s   		r_   c                   @   s   e Zd Zdd ZdS )TimedeltaToSecondsTestc                 C   s    t jdd}| t|d d S )Nr   )hoursg      @)datetime	timedeltar@   r   )r   Z
time_deltar   r   r   test_timedelta_to_seconds  s    z0TimedeltaToSecondsTest.test_timedelta_to_secondsN)r   r   r   ru   r   r   r   r   rq     s   rq   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
ImportObjectTestc                 C   s   |  tdt d S Nztornado.escape.utf8r$   r	   r   r;   r   r   r   test_import_member  s    z#ImportObjectTest.test_import_memberc                 C   s   |  tdt d S rw   rx   r;   r   r   r   test_import_member_unicode  s    z+ImportObjectTest.test_import_member_unicodec                 C   s   |  tdtj d S Nztornado.escaper$   r	   tornadoescaper;   r   r   r   test_import_module  s    z#ImportObjectTest.test_import_modulec                 C   s   |  tdtj d S r{   r|   r;   r   r   r   test_import_module_unicode  s    z+ImportObjectTest.test_import_module_unicodeN)r   r   r   ry   rz   r   r   r   r   r   r   rv     s   rv   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!$@#%;)r@   r
   rer~   )r   Ztest_stringsstringr   r   r   test_re_unescape$  s    zReUnescapeTest.test_re_unescapec              	   C   s^   |  t td W 5 Q R X |  t td W 5 Q R X |  t td W 5 Q R X d S )Nz\dz\bz\Z)assertRaises
ValueErrorr
   r;   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                   @   s   e Zd Zdd ZdS )IsFinalizingTestc                 C   s   |  t  d S r   )ZassertFalser   r;   r   r   r   
test_basic3  s    zIsFinalizingTest.test_basicN)r   r   r   r   r   r   r   r   r   2  s   r   )'ior   r   r"   rs   r]   r}   Ztornado.escaper   Ztornado.utilr   r   r   r   r   r	   r
   r   typingr   TYPE_CHECKINGr   r   ZTestCaser   r'   r+   r2   r3   r4   r6   r8   rS   rV   r_   rq   rv   r   r   r   r   r   r   <module>   s4   (
|#