
    Xh2                     v   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#y)#    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y)RaiseExcInfoTestc                      G d dt               }	  |dd      # |$ r t        j                         }Y nw xY w	 t        |       | j	                  d       y # |$ r}| j                  ||d          Y d }~y d }~ww xY w)Nc                        e Zd Z fdZ xZS )@RaiseExcInfoTest.test_two_arg_exception.<locals>.TwoArgExceptionc                 @    t         |           ||c| _        | _        y N)super__init__ab)selfr   r   	__class__s      J/var/www/html/myenv/lib/python3.12/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      s    & &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   sy    	&i 	&
	&!!Q'' 	&||~H	&	*8$II56 	*MM!Xa[))	*s#   	 66A A;A66A;N)r   r   r   r*    r   r   r   r      s    *r   r   c                   ,    e Zd Zed        Zed        Zy)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-   +   s(         r   r-   c                       e Zd ZddZy)r3   Nc                      || _         || _        y 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y)TestConfig2Nc                      || _         || _        y 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y)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   s(       r   rD   c                       e Zd ZddZy)rG   Nc                     || _         y 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y)TestConfig3BNc                     || _         y r   r   )r   r   s     r   r;   zTestConfig3B.initializeR   rK   r   r   r>   r+   r   r   rN   rN   Q   rL   r   rN   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)ConfigurableTestc                 h    t         j                         | _        t        j                         | _        y r   )r-   _save_configurationsavedrD   saved3r   s    r   setUpzConfigurableTest.setUpW   s"    %99;
!557r   c                     t         j                  | j                         t        j                  | j                         y r   )r-   _restore_configurationrU   rD   rV   rW   s    r   tearDownzConfigurableTest.tearDown[   s&    //

;**4;;7r   c                    | j                  t               t               | j                  t               t               t        d      }| j                  |j                  d       t        d      }| j                  |j
                  d       y Nr"   rJ   r#   rP   )assertIsInstancer3   rA   assertEqualr   r   r   objobj2s      r   checkSubclassesz ConfigurableTest.checkSubclasses_   sd     	km[9km[9A"Q#r   c                 N   t        t        t                     }| j                  |t               | j	                  |j
                         t        t        t        d            }| j                  |t               | j                  |j
                  d       | j                          y )Nr"   rJ   )r   r3   r-   r^   assertIsNoner   r_   rc   r   ra   s     r   test_defaultzConfigurableTest.test_defaultj   sx     ; 0 23c;/#%% ; 01 56c;/"r   c                    t         j                  t               t        t        t                     }| j	                  |t               | j                  |j                         t        t        t        d            }| j	                  |t               | j                  |j                  d       | j                          y )Nr#   rP   )	r-   	configurerA   r   r^   re   r   r_   rc   rf   s     r   test_config_classz"ConfigurableTest.test_config_classx   s    "";/; 0 23c;/#%% ; 01 56c;/"r   c                 x   t         j                  d       t        t        t                     }| j	                  |t               | j                  |j                         t        t        t        d            }| j	                  |t               | j                  |j                  d       | j                          y )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; 0 23c;/#%% ; 01 56c;/"r   c                    t         j                  d d       t        t        t                     }| j	                  |t               | j                  |j                  d       t        t        t        dd            }| j	                  |t               | j                  |j                  d       | j                  |j                  d       | j                          t               }| j                  |j                         y )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3c;/"; 0q 9:c;/"b)m#%% r   c                 
   t         j                  t        d       t        t        t                     }| j	                  |t               | j                  |j                  d       t        t        t        dd            }| j	                  |t               | j                  |j                  d       | j                  |j                  d       | j                          t               }| j                  |j                         y )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; 0 23c;/"; 0q 9:c;/"b)m#%% r   c                    t         j                  t        d       t        t        t                     }| j                  |t               | j                  |j                  d       t         j                  t               t        j                  t        d       t        t        t                     }| j                  |t               | j                  |j                  d       y 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<!1!34c<0""";/la0L"2"45dL1#r   c                    t               }| j                  |t               t         j                  t               t               }| j                  |t               t               }| j                  |t               t
        j                  t               t               }| j                  |t               t               }| j                  |t               y r   )rD   r^   rG   ri   rN   r-   r3   rA   )r   ra   rb   obj3s       r   test_config_inner_levelz(ConfigurableTest.test_config_inner_level   s     mc<0l+mc<0  !dK0"";/!dK0mc<0r   N)r   r   r   rX   r[   rc   rg   rj   rl   rq   ru   rw   rz   r+   r   r   rR   rR   V   s4    88	$

! ! 
$1r   rR   c                       e Zd Zd Zy)UnicodeLiteralTestc                 :    | j                  t        d      d       y )N   és   é)r_   r   rW   s    r   test_unicode_escapesz'UnicodeLiteralTest.test_unicode_escapes   s    h5r   N)r   r   r   r   r+   r   r   r|   r|      s    6r   r|   c                       e Zd Zd Zy)
ExecInTestc                     t        j                  d      }t        j                  d      }d g}t        |t        ||             | j	                  |d   t
        t
        d       y )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   sa     
 
 t%7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y)ArgReplacerTestc                 .    dd}t        |d      | _        y )Nc                      y r   r+   )r   ycallbackzs       r   functionz'ArgReplacerTest.setUp.<locals>.function   s    r   r   r=   )r   replacer)r   r   s     r   rX   zArgReplacerTest.setUp   s    	 $Hj9r   c                     d}t               }| j                  | j                  j                  ||             | j	                  | j                  j                  d||      d dt        d      f       y )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DMM!!%v664/0	
r   c                     d}t               }| j                  | j                  j                  ||      d       | j                  | j                  j	                  d||      dg dt               f       y )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BEJMM!!%v6$df-	
r   c           
          d}t        ddd      }| j                  | j                  j                  ||      d       | j                  | j                  j	                  d||      ddt        ddd      f       y )N)r"   r#   r   rn   )r   r   r   r   r   r   s      r   test_keywordzArgReplacerTest.test_keyword  sm    EQ/44T6BEJMM!!%v6D$Ua89	
r   N)r   r   r   rX   r   r   r   r+   r   r   r   r      s    :


r   r   c                       e Zd Zd Zy)TimedeltaToSecondsTestc                 f    t        j                  d      }| j                  t        |      d       y )Nr"   )hoursg      @)datetime	timedeltar_   r   )r   
time_deltas     r   test_timedelta_to_secondsz0TimedeltaToSecondsTest.test_timedelta_to_seconds  s(    ''a0
-j96Br   N)r   r   r   r   r+   r   r   r   r     s    Cr   r   c                   $    e Zd Zd Zd Zd Zd Zy)ImportObjectTestc                 B    | j                  t        d      t               y Nztornado.escape.utf8r(   r	   r   rW   s    r   test_import_memberz#ImportObjectTest.test_import_member!      m$9:DAr   c                 B    | j                  t        d      t               y r   r   rW   s    r   test_import_member_unicodez+ImportObjectTest.test_import_member_unicode$  r   r   c                 V    | j                  t        d      t        j                         y Nztornado.escaper(   r	   tornadoescaperW   s    r   test_import_modulez#ImportObjectTest.test_import_module'  s    m$45w~~Fr   c                 V    | j                  t        d      t        j                         y r   r   rW   s    r   test_import_module_unicodez+ImportObjectTest.test_import_module_unicode*  s     	m$45w~~Fr   N)r   r   r   r   r   r   r   r+   r   r   r   r      s    BBGGr   r   c                       e Zd Zd Zd Zy)ReUnescapeTestc           	      r    d}|D ]0  }| j                  |t        t        j                  |                   2 y )N)z/favicon.icoz
index.htmlzHello, World!z!$@#%;)r_   r
   rer   )r   test_stringsstrings      r   test_re_unescapezReUnescapeTest.test_re_unescape2  s6    P" 	EFV[61B%CD	Er   c                 B   | j                  t              5  t        d       d d d        | j                  t              5  t        d       d d d        | j                  t              5  t        d       d d d        y # 1 sw Y   \xY w# 1 sw Y   ?xY w# 1 sw Y   y xY w)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  s    z* 		z* 		z* 		 			 		 		 	s"   A=B	(B=B	BBN)r   r   r   r   r   r+   r   r   r   r   1  s    E
r   r   c                       e Zd Zd Zd Zd Zy)VersionInfoTestc                    dx}x}}d}t        j                  d|      x}r|j                         \  }}}nt        j                  d|      x}r|j                         \  }}nqt        j                  d|      x}r|j                         \  }}}d}nBt        j                  d|      x}r|j                         \  }}d}n| j                  d|        | j	                  |d d	 t        |      t        |      t        |      f       |r| j                  t        |d	         d
       y | j	                  t        |d	         d
       y )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  s0    !$##3W==1="#((*E5%,,88Q888:LE5,,H'RRQR"#((*E5%F,,A7KKQK88:LE5FII5gY?@bq)CJE
CJ+OPOOCQ0!4Sa115r   c                    | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  d	d       | j                  d
d       | j                  t        | j                   dd       | j                  t        | j                   dd       | j                  t        | j                   dd       y )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++E<@++G\B++JH++G_E++G_E++HoFD??,	
 	D??,	
 	D??,	
r   c                 `    | j                  t        j                  t        j                         y r   )r   r   r   r   rW   s    r   test_current_versionz$VersionInfoTest.test_current_versiont  s    ++GOOW=Q=QRr   N)r   r   r   r   r   r   r+   r   r   r   r   @  s    6B
$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1x(( y1x6** 6
?"" ?@ 
h''  
FCX.. CGx(( G"X&& 5Sh'' 5Sr   