
    .hh
                         S SK r S SKrSSKJr  \R                  " SSS/5      r " S S\ R                  5      r " S	 S
\5      rg)    N   )_BaseTestCaseContext_LoggingWatcherrecordsoutputc                   &    \ rS rSrS rS rS rSrg)_CapturingHandler
   c                 d    [         R                  R                  U 5        [        / / 5      U l        g N)loggingHandler__init__r   watcherselfs    6/opt/python-3.13.8/usr/lib/python3.13/unittest/_log.pyr   _CapturingHandler.__init__   s"      &&r2.    c                     g r    r   s    r   flush_CapturingHandler.flush   s    r   c                     U R                   R                  R                  U5        U R                  U5      nU R                   R                  R                  U5        g r   )r   r   appendformatr   )r   recordmsgs      r   emit_CapturingHandler.emit   s@    ##F+kk&!""3'r   )r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r   r   r   r	   r	   
   s    
/(r   r	   c                   *    \ rS rSrSrS rS rS rSrg)_AssertLogsContext   z"%(levelname)s:%(name)s:%(message)sc                     [         R                  " X5        X l        U(       a%  [        R                  R                  X35      U l        O[        R                  U l        S U l        X@l	        g r   )
r   r   logger_namer   _nameToLevelgetlevelINFOr   no_logs)r   	test_caser*   r-   r/   s        r   r   _AssertLogsContext.__init__!   sH    %%d6& --11%?DJ DJr   c                    [        U R                  [        R                  5      (       a  U R                  =ol        O&[        R
                  " U R                  5      =ol        [        R                  " U R                  5      n[        5       nUR                  U R                  5        UR                  U5        UR                  U l        UR                  S S  U l        UR                  U l        UR                   U l        U/Ul        UR                  U R                  5        SUl        U R$                  (       a  g UR                  $ )NF)
isinstancer*   r   Loggerlogger	getLogger	FormatterLOGGING_FORMATr	   setLevelr-   setFormatterr   handlersold_handlers	old_level	propagateold_propagater/   )r   r5   	formatterhandlers       r   	__enter___AssertLogsContext.__enter__+   s    d&&77#'#3#33F[#*#4#4T5E5E#FFF[%%d&9&9:	#%$Y'"OOA.#--")

# <<r   c                    U R                   U R                  l        U R                  U R                  l        U R                  R                  U R                  5        Ub  gU R                  (       aY  [        U R                  R                  5      S:  a5  U R                  SR                  U R                  R                  5      5        g g [        U R                  R                  5      S:X  aT  U R                  SR                  [        R                  " U R                   5      U R                  R"                  5      5        g g )NFr   zUnexpected logs found: {!r}z-no logs of level {} or higher triggered on {})r<   r5   r;   r?   r>   r9   r=   r/   lenr   r   _raiseFailurer   r   r   getLevelNamer-   name)r   exc_type	exc_valuetbs       r   __exit___AssertLogsContext.__exit__?   s    #00 $ 2 2T^^,<<4<<''(1,""188++ - 4<<''(A-""CVG00<dkk>N>NOQ .r   )	r-   r5   r*   r   r/   r<   r=   r?   r   N)	r!   r"   r#   r$   r8   r   rB   rL   r%   r   r   r   r'   r'      s     :N(Qr   r'   )	r   collectionscaser   
namedtupler   r   r	   r'   r   r   r   <module>rQ      sK      & (():*3X)>@( ($:Q- :Qr   