o
    h+&                     @   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__ J/var/www/vscode/kcb/lib/python3.10/site-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   r   tornado.escaper   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    (
|#