
    ^h2                     v   S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
JrJrJrJrJr  S SKJrJrJr   " S S\R(                  5      r " S S\
5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\R(                  5      r " S S\R(                  5      r " S S\R(                  5      r " S S\R(                  5      r " S S\R(                  5      r  " S S\R(                  5      r! " S S \R(                  5      r" " S! S"\R(                  5      r#g)#    N)utf8)raise_exc_infoConfigurableexec_inArgReplacertimedelta_to_secondsimport_objectre_unescape)castDictAnyc                       \ rS rSrS rSrg)RaiseExcInfoTest   c                      " S S[         5      n U" SS5      e! U a    [        R                  " 5       n Of = f [        U5        U R	                  S5        g ! U a  nU R                  X2S   5         S nAg S nAff = f)Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )@RaiseExcInfoTest.test_two_arg_exception.<locals>.TwoArgException   c                 >   > [         TU ]  5         XsU l        U l        g N)super__init__ab)selfr   r   	__class__s      P/home/james-whalen/.local/lib/python3.13/site-packages/tornado/test/util_test.pyr   IRaiseExcInfoTest.test_two_arg_exception.<locals>.TwoArgException.__init__   s     "!"    )r   r   )__name__
__module____qualname____firstlineno__r   __static_attributes____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_exception'RaiseExcInfoTest.test_two_arg_exception   sw    	&i 	&
	&!!Q'' 	&||~H	&	*8$II56 	*MM!a[))	*s#   	 88A A=A88A= N)r    r!   r"   r#   r/   r$   r1   r   r   r   r      s    *r   r   c                   4    \ rS rSr\S 5       r\S 5       rSrg)TestConfigurable+   c                     [         $ r   )r3   clss    r   configurable_base"TestConfigurable.configurable_base,   s    r   c                     [         $ r   )TestConfig1r6   s    r   configurable_default%TestConfigurable.configurable_default0       r   r1   Nr    r!   r"   r#   classmethodr8   r<   r$   r1   r   r   r3   r3   +   s(         r   r3   c                       \ rS rSrSS jrSrg)r;   5   Nc                     X l         Xl        g r   r   pos_arg)r   rE   r   s      r   
initializeTestConfig1.initialize6       r   rD   NNr    r!   r"   r#   rF   r$   r1   r   r   r;   r;   5       r   r;   c                       \ rS rSrSS jrSrg)TestConfig2;   Nc                     X l         Xl        g r   r   rE   )r   rE   r   s      r   rF   TestConfig2.initialize<   rH   r   rP   rI   rJ   r1   r   r   rM   rM   ;   rK   r   rM   c                   4    \ rS rSr\S 5       r\S 5       rSrg)TestConfig3A   c                     [         $ r   )rS   r6   s    r   r8   TestConfig3.configurable_baseC   r>   r   c                     [         $ r   )TestConfig3Ar6   s    r   r<    TestConfig3.configurable_defaultG   s    r   r1   Nr?   r1   r   r   rS   rS   A   s(       r   rS   c                       \ rS rSrSS jrSrg)rX   L   Nc                     Xl         g r   r   )r   r   s     r   rF   TestConfig3A.initializeM       r   r]   r   rJ   r1   r   r   rX   rX   L       r   rX   c                       \ rS rSrSS jrSrg)TestConfig3BQ   Nc                     Xl         g r   r   )r   r   s     r   rF   TestConfig3B.initializeR   r_   r   re   r   rJ   r1   r   r   rb   rb   Q   r`   r   rb   c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)ConfigurableTestV   c                 h    [         R                  5       U l        [        R                  5       U l        g r   )r3   _save_configurationsavedrS   saved3r   s    r   setUpConfigurableTest.setUpW   s"    %99;
!557r   c                     [         R                  U R                  5        [        R                  U R                  5        g r   )r3   _restore_configurationrl   rS   rm   rn   s    r   tearDownConfigurableTest.tearDown[   s&    //

;**4;;7r   c                    U R                  [        5       [        5        U R                  [        5       [        5        [        SS9nU R                  UR                  S5        [        SS9nU R                  UR
                  S5        g Nr'   r]   r(   re   )assertIsInstancer;   rM   assertEqualr   r   r   objobj2s      r   checkSubclasses ConfigurableTest.checkSubclasses_   sd     	km[9km[9A"Q#r   c                 H   [        [        [        5       5      nU R                  U[        5        U R	                  UR
                  5        [        [        [        SS95      nU R                  U[        5        U R                  UR
                  S5        U R                  5         g )Nr'   r]   )r   r;   r3   rw   assertIsNoner   rx   r|   r   rz   s     r   test_defaultConfigurableTest.test_defaultj   sx     ; 0 23c;/#%% ; 01 56c;/"r   c                 z   [         R                  [        5        [        [        [        5       5      nU R	                  U[        5        U R                  UR                  5        [        [        [        SS95      nU R	                  U[        5        U R                  UR                  S5        U R                  5         g )Nr(   re   )	r3   	configurerM   r   rw   r   r   rx   r|   r   s     r   test_config_class"ConfigurableTest.test_config_classx   s    "";/; 0 23c;/#%% ; 01 56c;/"r   c                 r   [         R                  S5        [        [        [        5       5      nU R	                  U[        5        U R                  UR                  5        [        [        [        SS95      nU R	                  U[        5        U R                  UR                  S5        U R                  5         g )Nz"tornado.test.util_test.TestConfig2r(   re   )	r3   r   r   rM   rw   r   r   rx   r|   r   s     r   test_config_str ConfigurableTest.test_config_str   s    ""#GH; 0 23c;/#%% ; 01 56c;/"r   c                    [         R                  S SS9  [        [        [        5       5      nU R	                  U[        5        U R                  UR                  S5        [        [        [        SSS95      nU R	                  U[        5        U R                  UR                  S5        U R                  UR                  S5        U R                  5         [        5       nU R                  UR                  5        g )N   r]   *      )
r3   r   r   r;   rw   rx   r   rE   r|   r   r   s     r   test_config_args!ConfigurableTest.test_config_args   s    ""41"-; 0 23c;/"; 0q 9:c;/"b)m#%% r   c                    [         R                  [        SS9  [        [        [        5       5      nU R	                  U[        5        U R                  UR                  S5        [        [        [        SSS95      nU R	                  U[        5        U R                  UR                  S5        U R                  UR                  S5        U R                  5         [        5       nU R                  UR                  5        g )N   re   r      )
r3   r   rM   r   rw   rx   r   rE   r|   r   r   s     r   test_config_class_args'ConfigurableTest.test_config_class_args   s    "";!"4; 0 23c;/"; 0q 9:c;/"b)m#%% r   c                    [         R                  [        SS9  [        [        [        5       5      nU R                  U[        5        U R                  UR                  S5        [         R                  [        5        [        R                  [        SS9  [        [        [        5       5      nU R                  U[        5        U R                  UR                  S5        g rv   )
r3   r   rS   r   rX   rw   rx   r   rb   r   ry   s      r   test_config_multi_level(ConfigurableTest.test_config_multi_level   s    "";!"4<!1!34c<0""";/la0L"2"45dL1#r   c                    [        5       nU R                  U[        5        [         R                  [        5        [        5       nU R                  U[        5        [        5       nU R                  U[        5        [
        R                  [        5        [        5       nU R                  U[        5        [        5       nU R                  U[        5        g r   )rS   rw   rX   r   rb   r3   r;   rM   )r   rz   r{   obj3s       r   test_config_inner_level(ConfigurableTest.test_config_inner_level   s     mc<0l+mc<0  !dK0"";/!dK0mc<0r   )rl   rm   N)r    r!   r"   r#   ro   rs   r|   r   r   r   r   r   r   r   r$   r1   r   r   rh   rh   V   s4    88	$

! ! 
$1r   rh   c                       \ rS rSrS rSrg)UnicodeLiteralTest   c                 :    U R                  [        S5      S5        g )N   és   é)rx   r   rn   s    r   test_unicode_escapes'UnicodeLiteralTest.test_unicode_escapes   s    h5r   r1   N)r    r!   r"   r#   r   r$   r1   r   r   r   r      s    6r   r   c                       \ rS rSrS rSrg)
ExecInTest   c                     [         R                  " S5      n[         R                  " S5      nS /n[        U[        X#S95        U R	                  US   [
        [
        S.5        g )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   dictrx   int)r   code1r   r   s       r   test_no_inherit_future!ExecInTest.test_no_inherit_future   s_     
 
 t%78 	#$=>r   r1   N)r    r!   r"   r#   r   r$   r1   r   r   r   r      s    ?r   r   c                   ,    \ rS rSrS rS rS rS rSrg)ArgReplacerTest   c                 0    SS jn[        US5      U l        g )Nc                     g r   r1   )r   ycallbackzs       r   function'ArgReplacerTest.setUp.<locals>.function   s    r   r   rI   )r   replacer)r   r   s     r   ro   ArgReplacerTest.setUp   s    	 $Hj9r   c           	          Sn[        5       nU R                  U R                  R                  X5      5        U R	                  U R                  R                  SX5      S S[        SS945        g )N)r'   r(   new)r   )r   r   r   get_old_valuerx   replacer   argskwargss      r   test_omittedArgReplacerTest.test_omitted   s\    !%$--55dCDMM!!%664/0	
r   c                     Sn[        5       nU R                  U R                  R                  X5      S5        U R                  U R                  R	                  SX5      S/ SQ[        5       45        g )N)r'   r(   oldr   r   r   )r'   r(   r   r   r   rx   r   r   r   r   s      r   test_positionArgReplacerTest.test_position  s\    !%44TBEJMM!!%6$df-	
r   c                     Sn[        SSSS9nU R                  U R                  R                  X5      S5        U R                  U R                  R	                  SX5      SS[        SSSS945        g )N)r'   r(   r   r   )r   r   r   r   r   r   s      r   test_keywordArgReplacerTest.test_keyword  si    EQ/44TBEJMM!!%6D$Ua89	
r   )r   N)	r    r!   r"   r#   ro   r   r   r   r$   r1   r   r   r   r      s    :


r   r   c                       \ rS rSrS rSrg)TimedeltaToSecondsTesti  c                 b    [         R                  " SS9nU R                  [        U5      S5        g )Nr'   )hoursg      @)datetime	timedeltarx   r   )r   
time_deltas     r   test_timedelta_to_seconds0TimedeltaToSecondsTest.test_timedelta_to_seconds  s(    ''a0
-j96Br   r1   N)r    r!   r"   r#   r   r$   r1   r   r   r   r     s    Cr   r   c                   ,    \ rS rSrS rS rS rS rSrg)ImportObjectTesti   c                 B    U R                  [        S5      [        5        g Nztornado.escape.utf8r-   r	   r   rn   s    r   test_import_member#ImportObjectTest.test_import_member!      m$9:DAr   c                 B    U R                  [        S5      [        5        g r   r   rn   s    r   test_import_member_unicode+ImportObjectTest.test_import_member_unicode$  r   r   c                 V    U R                  [        S5      [        R                  5        g Nztornado.escaper-   r	   tornadoescapern   s    r   test_import_module#ImportObjectTest.test_import_module'  s    m$45w~~Fr   c                 V    U R                  [        S5      [        R                  5        g r   r   rn   s    r   test_import_module_unicode+ImportObjectTest.test_import_module_unicode*  s     	m$45w~~Fr   r1   N)	r    r!   r"   r#   r   r   r   r   r$   r1   r   r   r   r      s    BBGGr   r   c                        \ rS rSrS rS rSrg)ReUnescapeTesti1  c           	      x    SnU H2  nU R                  U[        [        R                  " U5      5      5        M4     g )N)z/favicon.icoz
index.htmlzHello, World!z!$@#%;)rx   r
   rer   )r   test_stringsstrings      r   test_re_unescapeReUnescapeTest.test_re_unescape2  s/    P"FV[61B%CD #r   c                 `   U R                  [        5         [        S5        S S S 5        U R                  [        5         [        S5        S S S 5        U R                  [        5         [        S5        S S S 5        g ! , (       d  f       Na= f! , (       d  f       NI= f! , (       d  f       g = f)Nz\dz\bz\Z)assertRaises
ValueErrorr
   rn   s    r   .test_re_unescape_raises_error_on_invalid_input=ReUnescapeTest.test_re_unescape_raises_error_on_invalid_input7  sm    z* +z* +z* +*	 +*****s"   A=B(B=
B
B
B-r1   N)r    r!   r"   r#   r   r   r$   r1   r   r   r   r   1  s    E
r   r   c                   &    \ rS rSrS rS rS rSrg)VersionInfoTesti@  c                    S=n=pESn[         R                  " SU5      =n(       a  UR                  5       u  p4nO[         R                  " SU5      =n(       a  UR                  5       u  p4O{[         R                  " SU5      =n(       a  UR                  5       u  p4nSnOG[         R                  " SU5      =n(       a  UR                  5       u  p4SnOU R                  SU 35        U R	                  US S	 [        U5      [        U5      [        U5      45        U(       a  U R                  [        US	   5      S
5        g U R	                  [        US	   5      S
5        g )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: r   r   )r   	fullmatchgroupsr,   rx   r   
assertLess)r   versionversion_infomajorminorpatchis_prems           r   assert_version_info_compatible.VersionInfoTest.assert_version_info_compatibleA  s(    !$##3W==1="#((*E%,,88Q888:LE5,,H'RRQR"#((*E%F,,A7KKQK88:LEFII5gY?@bq)CJE
CJ+OPOOCQ0!4Sa115r   c                    U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  S	S5        U R                  S
S5        U R                  [        U R                   SS5        U R                  [        U R                   SS5        U R                  [        U R                   SS5        g )Nz6.5.0)r   r   r   r   z6.5z6.5.1)r   r   r'   r   z6.6.dev1)r   r   r   iz6.6a1z6.6b1z6.6rc1)r   r   r   r'   )r   r   r   r   )r  r   AssertionErrorrn   s    r   test_version_info_compatible,VersionInfoTest.test_version_info_compatibleb  s    ++G\B++E<@++G\B++JH++G_E++G_E++HoFD??,	
 	D??,	
 	D??,	
r   c                 `    U R                  [        R                  [        R                  5        g r   )r  r   r  r  rn   s    r   test_current_version$VersionInfoTest.test_current_versiont  s    ++GOOW=Q=QRr   r1   N)r    r!   r"   r#   r  r  r  r$   r1   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   r3   r;   rM   rS   rX   rb   rh   r   r   r   r   r   r   r   r1   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   