§
    ‹ŸjÐ"  ã                   ó   — 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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 d dlmZ d dlmZ e j        d„ ¦   «         Z G d„ dej        ¦  «        Z G d	„ d
ej        ¦  «        Z G d„ dej        ¦  «        ZdS )é    N)Úutf8)ÚLogFormatterÚdefine_logging_optionsÚenable_pretty_logging)ÚOptionParser)Úbasestring_typec               #   ó    K  — t          j        ¦   «         5  t          j        dt          ¬¦  «         d V — d d d ¦  «         d S # 1 swxY w Y   d S )NÚignore)Úcategory)ÚwarningsÚcatch_warningsÚsimplefilterÚBytesWarning© ó    úb/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/log_test.pyÚignore_bytes_warningr       s˜   è è € å	Ô	 Ñ	"Ô	"ð ð ÝÔ˜hµÐ>Ñ>Ô>Ð>Øˆˆˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   – AÁAÁ
Ac                   ód   — e Zd Z ej        d¦  «        Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ ZdS )ÚLogFormatterTestsD   (?s)\[E [0-9]{6} [0-9]{2}:[0-9]{2}:[0-9]{2} log_test:[0-9]+\] (.*)c                 ó   — t          d¬¦  «        | _        t          j        di| j        _        d| j        _        t          j        d¦  «        | _        d| j        _        t          j
        ¦   «         | _        t          j                             | j        d¦  «        | _        |                      | j        ¦  «        | _        | j                             | j        ¦  «         | j                             | j        ¦  «         d S )NF)Úcolorúúr   zlog.out)r   Ú	formatterÚloggingÚERRORÚ_colorsÚ_normalÚLoggerÚloggerÚ	propagateÚtempfileÚmkdtempÚtempdirÚosÚpathÚjoinÚfilenameÚmake_handlerÚhandlerÚsetFormatterÚ
addHandler©Úselfs    r   ÚsetUpzLogFormatterTest.setUp.   sÃ   € Ý%¨EÐ2Ñ2Ô2ˆŒõ
 #*¤-°Ð!:ˆŒÔØ!)ˆŒÔå”nÐ%7Ñ8Ô8ˆŒØ %ˆŒÔÝÔ'Ñ)Ô)ˆŒÝœŸš T¤\°9Ñ=Ô=ˆŒØ×(Ò(¨¬Ñ7Ô7ˆŒØŒ×!Ò! $¤.Ñ1Ô1Ð1ØŒ×Ò˜tœ|Ñ,Ô,Ð,Ð,Ð,r   c                 óœ   — | j                              ¦   «          t          j        | j        ¦  «         t          j        | j        ¦  «         d S ©N)r*   Úcloser%   Úunlinkr(   Úrmdirr$   r-   s    r   ÚtearDownzLogFormatterTest.tearDown?   s@   € ØŒ×ÒÑÔÐÝ
Œ	�$”-Ñ Ô Ð Ý
Œ�”ÑÔÐÐÐr   c                 ó.   — t          j        |d¬¦  «        S )Núutf-8©Úencoding)r   ÚFileHandler)r.   r(   s     r   r)   zLogFormatterTest.make_handlerD   s   € ÝÔ" 8°gÐ>Ñ>Ô>Ð>r   c                 ó<  — t          | j        d¦  «        5 }|                     ¦   «                              ¦   «         }t          j                             |¦  «        }|r!|                     d¦  «        cd d d ¦  «         S t          d|z  ¦  «        ‚# 1 swxY w Y   d S )NÚrbé   zoutput didn't match regex: %r)	Úopenr(   ÚreadÚstripr   ÚLINE_REÚmatchÚgroupÚ	Exception)r.   ÚfÚlineÚms       r   Ú
get_outputzLogFormatterTest.get_outputG   sá   € Ý�$”- Ñ&Ô&ð 	H¨!Ø—6’6‘8”8—>’>Ñ#Ô#ˆDÝ Ô(×.Ò.¨tÑ4Ô4ˆAØð HØ—w’w˜q‘z”zð		Hð 	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hõ  Ð ?À$Ñ FÑGÔGÐGð	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð 	Hð 	Hs   –ABÁ?BÂBÂBc                 óŠ   — | j                              d¦  «         |                      |                      ¦   «         d¦  «         d S )NÚfoos   foo)r    ÚerrorÚassertEqualrH   r-   s    r   Útest_basic_loggingz#LogFormatterTest.test_basic_loggingP   s>   € ØŒ×Ò˜%Ñ Ô Ð Ø×Ò˜ŸšÑ*Ô*¨FÑ3Ô3Ð3Ð3Ð3r   c           	      ó  — t          ¦   «         5  | j                             d¦  «         |                      |                      ¦   «         t          t          d¦  «        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nó   é)r   r    rK   rL   rH   r   Úreprr-   s    r   Útest_bytes_loggingz#LogFormatterTest.test_bytes_loggingT   sÊ   € Ý!Ñ#Ô#ð 	Eð 	EàŒK×Ò˜gÑ&Ô&Ð&Ø×Ò˜TŸ_š_Ñ.Ô.µµT¸'±]´]Ñ0CÔ0CÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð 	Eð 	Es   �AA9Á9A=Â A=c           
      óê  — t          ¦   «         5  | j                             d                     ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          t
          t          ¦  «        r7|                      |                      ¦   «         t          d¦  «        ¦  «         d S |                      |                      ¦   «         t          t          t          d¦  «        ¦  «        ¦  «        ¦  «         d S ©Nõ   Ã©)r   r    rK   ÚencodeÚ
issubclassÚbytesr   rL   rH   r   rP   r-   s    r   Útest_utf8_loggingz"LogFormatterTest.test_utf8_loggingZ   s  € Ý!Ñ#Ô#ð 	1ð 	1ØŒK×Ò˜hŸošoÑ/Ô/Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1å•e�_Ñ-Ô-ð 	Lð ×Ò˜TŸ_š_Ñ.Ô.µ°X±´Ñ?Ô?Ð?Ð?Ð?ð
 ×Ò˜TŸ_š_Ñ.Ô.µµT½$¸x¹.¼.Ñ5IÔ5IÑ0JÔ0JÑKÔKÐKÐKÐKs   �-AÁAÁAc                 óú   — 	 t          d¦  «        ‚# t           $ r | j                             d¦  «         Y nw xY w|                      ¦   «         }|                      |d¦  «         |                      d|¦  «         d S )NrO   zcaught exceptions   Exception.*\\xe9s   \n)rD   r    Ú	exceptionrH   ÚassertRegexÚassertNotIn)r.   Úoutputs     r   Útest_bytes_exception_loggingz-LogFormatterTest.test_bytes_exception_loggingg   s‘   € ð	6Ý˜GÑ$Ô$Ð$øÝð 	6ð 	6ð 	6ØŒK×!Ò!Ð"4Ñ5Ô5Ð5Ð5Ð5ð	6øøøð —’Ñ"Ô"ˆØ×Ò˜Ð!5Ñ6Ô6Ð6à×Ò˜ Ñ(Ô(Ð(Ð(Ð(s   ‚ ‘$8·8c                 ó¤   — | j                              d¦  «         |                      |                      ¦   «         t	          d¦  «        ¦  «         d S rS   )r    rK   rL   rH   r   r-   s    r   Útest_unicode_loggingz%LogFormatterTest.test_unicode_loggings   sD   € ØŒ×Ò˜(Ñ#Ô#Ð#Ø×Ò˜ŸšÑ*Ô*­D°©N¬NÑ;Ô;Ð;Ð;Ð;r   N)Ú__name__Ú
__module__Ú__qualname__ÚreÚcompilerA   r/   r5   r)   rH   rM   rQ   rX   r^   r`   r   r   r   r   r   '   s¼   € € € € € ð ˆbŒjØWñô €Gð-ð -ð -ð"ð ð ð
?ð ?ð ?ðHð Hð Hð4ð 4ð 4ðEð Eð EðLð Lð Lð
)ð 
)ð 
)ð<ð <ð <ð <ð <r   r   c                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚEnablePrettyLoggingTestc                 óà   •— t          ¦   «                              ¦   «          t          ¦   «         | _        t	          | j        ¦  «         t          j        d¦  «        | _        d| j        _        d S )Nz-tornado.test.log_test.EnablePrettyLoggingTestF)	Úsuperr/   r   Úoptionsr   r   r   r    r!   )r.   Ú	__class__s    €r   r/   zEnablePrettyLoggingTest.setUpy   sQ   ø€ Ý‰Œ�Š‰ŒˆÝ#‘~”~ˆŒÝ˜tœ|Ñ,Ô,Ð,Ý”nÐ%TÑUÔUˆŒØ %ˆŒÔÐÐr   c                 óh  — t          j        ¦   «         }	 |dz   | j        _        t	          | j        | j        ¬¦  «         |                      dt          | j        j        ¦  «        ¦  «         | j         	                    d¦  «         | j        j        d          
                    ¦   «          t          j        |dz   ¦  «        }|                      dt          |¦  «        ¦  «         t          |d         d¬¦  «        5 }|                      |                     ¦   «         d	¦  «         d d d ¦  «         n# 1 swxY w Y   | j        j        D ]*}| 
                    ¦   «          |                     ¦   «          Œ+t          j        |dz   ¦  «        D ]}t!          j        |¦  «         Œt!          j        |¦  «         d S # | j        j        D ]*}| 
                    ¦   «          |                     ¦   «          Œ+t          j        |dz   ¦  «        D ]}t!          j        |¦  «         Œt!          j        |¦  «         w xY w)
Nú	/test_log©rj   r    r=   Úhellor   ú
/test_log*r7   r8   ú^\[E [^]]*\] hello$)r"   r#   rj   Úlog_file_prefixr   r    rL   ÚlenÚhandlersrK   ÚflushÚglobr>   r[   r?   r2   r%   r3   r4   ©r.   ÚtmpdirÚ	filenamesrE   r*   r(   s         r   Útest_log_filez%EnablePrettyLoggingTest.test_log_file€   sK  € ÝÔ!Ñ#Ô#ˆð	Ø+1°KÑ+?ˆDŒLÔ(Ý!¨$¬,¸t¼{ÐKÑKÔKÐKØ×Ò˜Q¥ D¤KÔ$8Ñ 9Ô 9Ñ:Ô:Ð:ØŒK×Ò˜gÑ&Ô&Ð&ØŒKÔ  Ô#×)Ò)Ñ+Ô+Ð+Ýœ	 &¨<Ñ"7Ñ8Ô8ˆIØ×Ò˜Q¥ I¡¤Ñ/Ô/Ð/Ý�i ”l¨WÐ5Ñ5Ô5ð C¸Ø× Ò  §¢¡¤Ð+AÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð  œ;Ô/ð  ð  �Ø—’‘”�Ø—’‘”��Ý œI f¨|Ñ&;Ñ<Ô<ð $ð $�Ý”	˜(Ñ#Ô#Ð#Ð#ÝŒH�VÑÔÐÐÐøð  œ;Ô/ð  ð  �Ø—’‘”�Ø—’‘”��Ý œI f¨|Ñ&;Ñ<Ô<ð $ð $�Ý”	˜(Ñ#Ô#Ð#Ð#ÝŒH�VÑÔÐÐøøøs1   •C&F6 Ã;)D0Ä$F6 Ä0D4Ä4F6 Ä7D4Ä8F6 Æ6A;H1c                 ó&  — t          j        ¦   «         }	 |dz   | j        _        d| j        _        t          | j        | j        ¬¦  «         | j                             d¦  «         | j        j        d          	                    ¦   «          t          j
        |dz   ¦  «        }|                      dt          |¦  «        ¦  «         t          |d         d¬	¦  «        5 }|                      |                     ¦   «         d
¦  «         d d d ¦  «         n# 1 swxY w Y   | j        j        D ]*}| 	                    ¦   «          |                     ¦   «          Œ+t          j
        |dz   ¦  «        D ]}t#          j        |¦  «         Œt#          j        |¦  «         d S # | j        j        D ]*}| 	                    ¦   «          |                     ¦   «          Œ+t          j
        |dz   ¦  «        D ]}t#          j        |¦  «         Œt#          j        |¦  «         w xY w)Nrm   Útimern   ro   r   rp   r=   r7   r8   rq   )r"   r#   rj   rr   Úlog_rotate_moder   r    rK   rt   ru   rv   rL   rs   r>   r[   r?   r2   r%   r3   r4   rw   s         r   Ú!test_log_file_with_timed_rotatingz9EnablePrettyLoggingTest.test_log_file_with_timed_rotating”   s2  € ÝÔ!Ñ#Ô#ˆð	Ø+1°KÑ+?ˆDŒLÔ(Ø+1ˆDŒLÔ(Ý!¨$¬,¸t¼{ÐKÑKÔKÐKØŒK×Ò˜gÑ&Ô&Ð&ØŒKÔ  Ô#×)Ò)Ñ+Ô+Ð+Ýœ	 &¨<Ñ"7Ñ8Ô8ˆIØ×Ò˜Q¥ I¡¤Ñ/Ô/Ð/Ý�i ”l¨WÐ5Ñ5Ô5ð C¸Ø× Ò  §¢¡¤Ð+AÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð  œ;Ô/ð  ð  �Ø—’‘”�Ø—’‘”��Ý œI f¨|Ñ&;Ñ<Ô<ð $ð $�Ý”	˜(Ñ#Ô#Ð#Ð#ÝŒH�VÑÔÐÐÐøð  œ;Ô/ð  ð  �Ø—’‘”�Ø—’‘”��Ý œI f¨|Ñ&;Ñ<Ô<ð $ð $�Ý”	˜(Ñ#Ô#Ð#Ð#ÝŒH�VÑÔÐÐøøøs1   •CF Ã)DÄF ÄDÄF ÄDÄF ÆA;Hc                 óx  — 	 d| j         _        d| j         _        |                      t          t
          | j         | j        ¬¦  «         | j        j        D ]*}|                     ¦   «          | 	                    ¦   «          Œ+d S # | j        j        D ]*}|                     ¦   «          | 	                    ¦   «          Œ+w xY w)NÚ	some_pathÚ
wrong_modern   )
rj   rr   r}   ÚassertRaisesÚ
ValueErrorr   r    rt   ru   r2   )r.   r*   s     r   Útest_wrong_rotate_mode_valuez4EnablePrettyLoggingTest.test_wrong_rotate_mode_value¨   s¼   € ð	 Ø+6ˆDŒLÔ(Ø+7ˆDŒLÔ(Ø×ÒÝÝ%ØœØ”{ð	 ñ ô ð ð  œ;Ô/ð  ð  �Ø—’‘”�Ø—’‘”��ð ð  ø˜4œ;Ô/ð  ð  �Ø—’‘”�Ø—’‘”��ð øøøs   ‚AB  Â 9B9)ra   rb   rc   r/   rz   r~   r„   Ú__classcell__)rk   s   @r   rg   rg   x   se   ø€ € € € € ð&ð &ð &ð &ð &ðð ð ð(ð ð ð( ð  ð  ð  ð  ð  ð  r   rg   c                   óD   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ ZdS )ÚLoggingOptionTestz?Test the ability to enable and disable Tornado's logging hooks.Nc                 ó(  — d}d}d                      |||g¦  «        }t          j        t          j        d|g|pg z   t          j        t          j        ¬¦  «        }|                     ¦   «         \  }}|                      |j	        dd|z  ¦  «         d|v S )	Nz7from tornado.options import options, parse_command_linez%import logging; logging.info("hello")ú;z-c)ÚstdoutÚstderrr   zprocess failed: %rs   hello)
r'   Ú
subprocessÚPopenÚsysÚ
executableÚPIPEÚSTDOUTÚcommunicaterL   Ú
returncode)	r.   Ú	statementÚargsÚIMPORTÚLOG_INFOÚprogramÚprocrŠ   r‹   s	            r   Úlogs_presentzLoggingOptionTest.logs_present»   s    € ð KˆØ:ˆØ—(’(˜F I¨xÐ8Ñ9Ô9ˆÝÔÝŒ^˜T 7Ð+¨t¨z°rÑ:Ý”?ÝÔ$ð
ñ 
ô 
ˆð
 ×)Ò)Ñ+Ô+‰ˆ�Ø×Ò˜œ¨!Ð-AÀFÑ-JÑKÔKÐKØ˜6Ð!Ð!r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )NÚpass©ÚassertFalserš   r-   s    r   Útest_defaultzLoggingOptionTest.test_defaultÍ   s*   € Ø×Ò˜×*Ò*¨6Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Núparse_command_line()©Ú
assertTruerš   r-   s    r   Útest_tornado_defaultz&LoggingOptionTest.test_tornado_defaultÐ   s)   € Ø�Š˜×)Ò)Ð*@ÑAÔAÑBÔBÐBÐBÐBr   c                 óZ   — |                       |                      ddg¦  «        ¦  «         d S )Nr¡   z--logging=noner�   r-   s    r   Útest_disable_command_linez+LoggingOptionTest.test_disable_command_lineÓ   ó1   € Ø×Ò˜×*Ò*Ð+AÐDTÐCUÑVÔVÑWÔWÐWÐWÐWr   c                 óZ   — |                       |                      ddg¦  «        ¦  «         d S )Nr¡   z--logging=Noner�   r-   s    r   Ú*test_disable_command_line_case_insensitivez<LoggingOptionTest.test_disable_command_line_case_insensitiveÖ   r§   r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nz.options.logging = "none"; parse_command_line()r�   r-   s    r   Útest_disable_code_stringz*LoggingOptionTest.test_disable_code_stringÙ   s6   € Ø×ÒØ×ÒÐNÑOÔOñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óV   — |                       |                      d¦  «        ¦  «         d S )Nú,options.logging = None; parse_command_line()r�   r-   s    r   Útest_disable_code_nonez(LoggingOptionTest.test_disable_code_noneÞ   s6   € Ø×ÒØ×ÒÐLÑMÔMñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óZ   — |                       |                      ddg¦  «        ¦  «         d S )Nr­   z--logging=infor¢   r-   s    r   Útest_disable_overridez'LoggingOptionTest.test_disable_overrideã   s>   € à�ŠØ×ÒØ>ÐAQÐ@Rñô ñ	
ô 	
ð 	
ð 	
ð 	
r   r1   )ra   rb   rc   Ú__doc__rš   rŸ   r¤   r¦   r©   r«   r®   r°   r   r   r   r‡   r‡   ¸   s    € € € € € ØIÐIð"ð "ð "ð "ð$4ð 4ð 4ðCð Cð CðXð Xð XðXð Xð Xð
ð 
ð 
ð

ð 
ð 
ð

ð 
ð 
ð 
ð 
r   r‡   )Ú
contextlibrv   r   r%   rd   rŒ   rŽ   r"   Úunittestr   Útornado.escaper   Útornado.logr   r   r   Útornado.optionsr   Útornado.utilr   Úcontextmanagerr   ÚTestCaser   rg   r‡   r   r   r   ú<module>rº      su  ðð Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (ð Ôðð ñ ÔððN<ð N<ð N<ð N<ð N<�xÔ(ñ N<ô N<ð N<ðb= ð = ð = ð = ð = ˜hÔ/ñ = ô = ð = ð@1
ð 1
ð 1
ð 1
ð 1
˜Ô)ñ 1
ô 1
ð 1
ð 1
ð 1
r   