
    Mh2                     x   d dl 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 d dlmZmZmZ  G d dej                  Z G d de
          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z  G d dej                  Z! G d d ej                  Z" G d! d"ej                  Z#dS )#    N)utf8)raise_exc_infoConfigurableexec_inArgReplacertimedelta_to_secondsimport_objectre_unescape)castDictAnyc                       e Zd Zd ZdS )RaiseExcInfoTestc                 *    G d dt                     }	  |dd          # |$ r t          j                    }Y nw xY w	 t          |           |                     d           d S # |$ r'}|                     ||d                    Y d }~d S d }~ww xY w)Nc                        e Zd Z fdZ xZS )@RaiseExcInfoTest.test_two_arg_exception.<locals>.TwoArgExceptionc                 f    t                                                       ||c| _        | _        d S N)super__init__ab)selfr   r   	__class__s      V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tornado/test/util_test.pyr   zIRaiseExcInfoTest.test_two_arg_exception.<locals>.TwoArgException.__init__   s,      """!"A    )__name__
__module____qualname__r   __classcell__)r   s   @r   TwoArgExceptionr      s8        & & & & & & & & &r   r!         zdidn't get expected exception)	Exceptionsysexc_infor   failassertIs)r   r!   r&   es       r   test_two_arg_exceptionz'RaiseExcInfoTest.test_two_arg_exception   s    	& 	& 	& 	& 	&i 	& 	& 	&
	&!/!Q''' 	& 	& 	&|~~HHH	&	*8$$$II566666 	* 	* 	*MM!Xa[)))))))))	*s$   ! << $A& &B+BBN)r   r   r   r*    r   r   r   r      s#        * * * * *r   r   c                   :    e Zd Zed             Zed             ZdS )TestConfigurablec                     t           S r   )r-   clss    r   configurable_basez"TestConfigurable.configurable_base,   s    r   c                     t           S r   )TestConfig1r/   s    r   configurable_defaultz%TestConfigurable.configurable_default0       r   Nr   r   r   classmethodr1   r4   r+   r   r   r-   r-   +   sH            [    [  r   r-   c                       e Zd ZddZdS )r3   Nc                 "    || _         || _        d S r   )r   pos_arg)r   r:   r   s      r   
initializezTestConfig1.initialize6       r   NNr   r   r   r;   r+   r   r   r3   r3   5   (             r   r3   c                       e Zd ZddZdS )TestConfig2Nc                 "    || _         || _        d S r   )r   r:   )r   r:   r   s      r   r;   zTestConfig2.initialize<   r<   r   r=   r>   r+   r   r   rA   rA   ;   r?   r   rA   c                   :    e Zd Zed             Zed             ZdS )TestConfig3c                     t           S r   )rD   r/   s    r   r1   zTestConfig3.configurable_baseC   r5   r   c                     t           S r   )TestConfig3Ar/   s    r   r4   z TestConfig3.configurable_defaultG   s    r   Nr6   r+   r   r   rD   rD   A   sH          [   [  r   rD   c                       e Zd ZddZdS )rG   Nc                     || _         d S r   r   )r   r   s     r   r;   zTestConfig3A.initializeM       r   r   r>   r+   r   r   rG   rG   L   (             r   rG   c                       e Zd ZddZdS )TestConfig3BNc                     || _         d S r   r   )r   r   s     r   r;   zTestConfig3B.initializeR   rK   r   r   r>   r+   r   r   rN   rN   Q   rL   r   rN   c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )ConfigurableTestc                 ~    t                                           | _        t                                          | _        d S r   )r-   _save_configurationsavedrD   saved3r   s    r   setUpzConfigurableTest.setUpW   s,    %99;;
!5577r   c                     t                               | j                   t                              | j                   d S r   )r-   _restore_configurationrU   rD   rV   rW   s    r   tearDownzConfigurableTest.tearDown[   s4    //
;;;**4;77777r   c                 N   |                      t                      t                     |                      t                      t                     t          d          }|                     |j        d           t          d          }|                     |j        d           d S Nr"   rJ   r#   rP   )assertIsInstancer3   rA   assertEqualr   r   r   objobj2s      r   checkSubclassesz ConfigurableTest.checkSubclasses_   s     	kmm[999kmm[999A"""Q#####r   c                    t          t          t                                }|                     |t                     |                     |j                   t          t          t          d                    }|                     |t                     |                     |j        d           |                                  d S )Nr"   rJ   )r   r3   r-   r^   assertIsNoner   r_   rc   r   ra   s     r   test_defaultzConfigurableTest.test_defaultj   s     ; 0 2 233c;///#%   ; 01 5 5 566c;///"""r   c                    t                               t                     t          t          t                                }|                     |t                     |                     |j                   t          t          t          d                    }|                     |t                     |                     |j        d           |                                  d S )Nr#   rP   )	r-   	configurerA   r   r^   re   r   r_   rc   rf   s     r   test_config_classz"ConfigurableTest.test_config_classx   s    "";///; 0 2 233c;///#%   ; 01 5 5 566c;///"""r   c                    t                               d           t          t          t                                }|                     |t                     |                     |j                   t          t          t          d                    }|                     |t                     |                     |j        d           |                                  d S )Nz"tornado.test.util_test.TestConfig2r#   rP   )	r-   ri   r   rA   r^   re   r   r_   rc   rf   s     r   test_config_strz ConfigurableTest.test_config_str   s    ""#GHHH; 0 2 233c;///#%   ; 01 5 5 566c;///"""r   c                 N   t                               d d           t          t          t                                }|                     |t                     |                     |j        d           t          t          t          dd                    }|                     |t                     |                     |j        d           |                     |j        d           |                                  t                      }| 	                    |j                   d S )N   rJ   *      )
r-   ri   r   r3   r^   r_   r   r:   rc   re   rf   s     r   test_config_argsz!ConfigurableTest.test_config_args   s    ""41"---; 0 2 233c;///"""; 0q 9 9 9::c;///"""b)))mm#%     r   c                 X   t                               t          d           t          t          t                                }|                     |t                     |                     |j        d           t          t          t          dd                    }|                     |t                     |                     |j        d           |                     |j        d           |                                  t                      }| 	                    |j                   d S )N   rP   ro      )
r-   ri   rA   r   r^   r_   r   r:   rc   re   rf   s     r   test_config_class_argsz'ConfigurableTest.test_config_class_args   s    "";!"444; 0 2 233c;///"""; 0q 9 9 9::c;///"""b)))mm#%     r   c                 $   t                               t          d           t          t          t                                }|                     |t                     |                     |j        d           t                               t                     t                              t          d           t          t          t                                }|                     |t                     |                     |j	        d           d S r]   )
r-   ri   rD   r   rG   r^   r_   r   rN   r   r`   s      r   test_config_multi_levelz(ConfigurableTest.test_config_multi_level   s    "";!"444<!1!3!344c<000""""";///la000L"2"4"455dL111#####r   c                    t                      }|                     |t                     t                               t                     t                      }|                     |t                     t                      }|                     |t                     t
                              t                     t                      }|                     |t                     t                      }|                     |t                     d S r   )rD   r^   rG   ri   rN   r-   r3   rA   )r   ra   rb   obj3s       r   test_config_inner_levelz(ConfigurableTest.test_config_inner_level   s     mmc<000l+++mmc<000  !!dK000"";///!!dK000mmc<00000r   N)r   r   r   rX   r[   rc   rg   rj   rl   rq   ru   rw   rz   r+   r   r   rR   rR   V   s        8 8 88 8 8	$ 	$ 	$  
 
 

 
 
! ! ! ! ! ! 
$ 
$ 
$1 1 1 1 1r   rR   c                       e Zd Zd ZdS )UnicodeLiteralTestc                 L    |                      t          d          d           d S )N   és   é)r_   r   rW   s    r   test_unicode_escapesz'UnicodeLiteralTest.test_unicode_escapes   s$    h55555r   N)r   r   r   r   r+   r   r   r|   r|      s#        6 6 6 6 6r   r|   c                       e Zd Zd ZdS )
ExecInTestc                     t          j        d          }t          j        d          }d g}t          |t          ||                     |                     |d         t
          t
          d           d S )Nz
            from __future__ import annotations
            from tornado.util import exec_in

            exec_in(code2, globals())
            zv
            def f(x: int) -> int:
                return x + 1
            output[0] = f.__annotations__
            )code2outputr   )xreturn)textwrapdedentr   dictr_   int)r   code1r   r   s       r   test_no_inherit_futurez!ExecInTest.test_no_inherit_future   s     
 
 
 
 t%777888 	#$=$=>>>>>r   N)r   r   r   r   r+   r   r   r   r      s#        ? ? ? ? ?r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )ArgReplacerTestc                 8    dd}t          |d          | _        d S )Nc                     d S r   r+   )r   ycallbackzs       r   functionz'ArgReplacerTest.setUp.<locals>.function   s    Dr   r   r=   )r   replacer)r   r   s     r   rX   zArgReplacerTest.setUp   s-    	 	 	 	 $Hj99r   c                    d}t                      }|                     | j                            ||                     |                     | j                            d||          d dt          d          f           d S )N)r"   r#   new)r   )r   re   r   get_old_valuer_   replacer   argskwargss      r   test_omittedzArgReplacerTest.test_omitted   s    !%$-55dFCCDDDM!!%v6664///0	
 	
 	
 	
 	
r   c                    d}t                      }|                     | j                            ||          d           |                     | j                            d||          dg dt                      f           d S )N)r"   r#   oldrn   r   r   )r"   r#   r   rn   r   r_   r   r   r   r   s      r   test_positionzArgReplacerTest.test_position  s    !%44T6BBEJJJM!!%v66$$$dff-	
 	
 	
 	
 	
r   c           
         d}t          ddd          }|                     | j                            ||          d           |                     | j                            d||          ddt          ddd          f           d S )N)r"   r#   r   rn   )r   r   r   r   r   r   s      r   test_keywordzArgReplacerTest.test_keyword  s    EQ///44T6BBEJJJM!!%v66D$Ua8889	
 	
 	
 	
 	
r   N)r   r   r   rX   r   r   r   r+   r   r   r   r      sP        : : :
 
 

 
 

 
 
 
 
r   r   c                       e Zd Zd ZdS )TimedeltaToSecondsTestc                 v    t          j        d          }|                     t          |          d           d S )Nr"   )hoursg      @)datetime	timedeltar_   r   )r   
time_deltas     r   test_timedelta_to_secondsz0TimedeltaToSecondsTest.test_timedelta_to_seconds  s:    'a000
-j996BBBBBr   N)r   r   r   r   r+   r   r   r   r     s(        C C C C Cr   r   c                   &    e Zd Zd Zd Zd Zd ZdS )ImportObjectTestc                 V    |                      t          d          t                     d S Nztornado.escape.utf8r(   r	   r   rW   s    r   test_import_memberz#ImportObjectTest.test_import_member!  %    m$9::DAAAAAr   c                 V    |                      t          d          t                     d S r   r   rW   s    r   test_import_member_unicodez+ImportObjectTest.test_import_member_unicode$  r   r   c                 `    |                      t          d          t          j                   d S Nztornado.escaper(   r	   tornadoescaperW   s    r   test_import_modulez#ImportObjectTest.test_import_module'  s'    m$455w~FFFFFr   c                 `    |                      t          d          t          j                   d S r   r   rW   s    r   test_import_module_unicodez+ImportObjectTest.test_import_module_unicode*  s)     	m$455w~FFFFFr   N)r   r   r   r   r   r   r   r+   r   r   r   r      s^        B B BB B BG G GG G G G Gr   r   c                       e Zd Zd Zd ZdS )ReUnescapeTestc           	      ~    d}|D ]7}|                      |t          t          j        |                               8d S )N)z/favicon.icoz
index.htmlzHello, World!z!$@#%;)r_   r
   rer   )r   test_stringsstrings      r   test_re_unescapezReUnescapeTest.test_re_unescape2  sO    P" 	E 	EFV[61B1B%C%CDDDD	E 	Er   c                    |                      t                    5  t          d           d d d            n# 1 swxY w Y   |                      t                    5  t          d           d d d            n# 1 swxY w Y   |                      t                    5  t          d           d d d            d S # 1 swxY w Y   d S )Nz\dz\bz\Z)assertRaises
ValueErrorr
   rW   s    r   .test_re_unescape_raises_error_on_invalid_inputz=ReUnescapeTest.test_re_unescape_raises_error_on_invalid_input7  sv   z** 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	z** 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	z** 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s0   7;;A88A<?A<B::B>B>N)r   r   r   r   r   r+   r   r   r   r   1  s5        E E E
    r   r   c                        e Zd Zd Zd Zd ZdS )VersionInfoTestc                    dx}x}}d}t          j        d|          x}r|                                \  }}}nt          j        d|          x}r|                                \  }}n{t          j        d|          x}r|                                \  }}}d}nIt          j        d|          x}r|                                \  }}d}n|                     d|            |                     |d d	         t          |          t          |          t          |          f           |r+|                     t          |d	                   d
           d S |                     t          |d	                   d
           d S )N0Fz(\d+)\.(\d+)\.(\d+)z(\d+)\.(\d+)z&(\d+)\.(\d+)\.(\d+)(?:\.dev|a|b|rc)\d+Tz(\d+)\.(\d+)(?:\.dev|a|b|rc)\d+zUnrecognized version format: rn   r   )r   	fullmatchgroupsr'   r_   r   
assertLess)r   versionversion_infomajorminorpatchis_prems           r   assert_version_info_compatiblez.VersionInfoTest.assert_version_info_compatibleA  s    !$##3W===1 	A"#((**E5%%,888Q 	A88::LE55,H'RRRQ 		A"#((**E5%FF,A7KKKQ 	A88::LE5FFII?g??@@@bqb)CJJE

CJJ+OPPP 	6OOCQ00!44444Sa11155555r   c                    |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      d	d           |                      d
d           |                     t          | j         dd           |                     t          | j         dd           |                     t          | j         dd           d S )Nz6.5.0)rt   rs   r   r   z6.5z6.5.1)rt   rs   r"   r   z6.6.dev1)rt   rt   r   iz6.6a1z6.6b1z6.6rc1)rt   rs   r   r"   )rt   rp   r   r   )r   r   AssertionErrorrW   s    r   test_version_info_compatiblez,VersionInfoTest.test_version_info_compatibleb  s   ++G\BBB++E<@@@++G\BBB++JHHH++G_EEE++G_EEE++HoFFFD?,	
 	
 	
 	D?,	
 	
 	
 	D?,	
 	
 	
 	
 	
r   c                 Z    |                      t          j        t          j                   d S r   )r   r   r   r   rW   s    r   test_current_versionz$VersionInfoTest.test_current_versiont  s#    ++GOW=QRRRRRr   N)r   r   r   r   r   r   r+   r   r   r   r   @  sG        6 6 6B
 
 
$S S S S Sr   r   )$r   r%   r   r   unittestr   tornado.escaper   tornado.utilr   r   r   r   r   r	   r
   typingr   r   r   TestCaser   r-   r3   rA   rD   rG   rN   rR   r|   r   r   r   r   r   r   r+   r   r   <module>r      s   				 



                            # " " " " " " " " "* * * * *x( * * **    |       "       "       "       ;   
    ;   
y1 y1 y1 y1 y1x( y1 y1 y1x6 6 6 6 6* 6 6 6
? ? ? ? ?" ? ? ?@ 
  
  
  
  
h'  
  
  
FC C C C CX. C C CG G G G Gx( G G G"    X&   5S 5S 5S 5S 5Sh' 5S 5S 5S 5S 5Sr   