
    d
                         d dl Z d dlZddlmZ  ej        dddg          Z G d de j                  Z G d	 d
e          ZdS )    N   )_BaseTestCaseContext_LoggingWatcherrecordsoutputc                   $    e Zd ZdZd Zd Zd ZdS )_CapturingHandlerzM
    A logging handler capturing all (raw and formatted) logging output.
    c                 n    t           j                            |            t          g g           | _        d S N)loggingHandler__init__r   watcherselfs      /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/unittest/_log.pyr   z_CapturingHandler.__init__   s-      &&&&r2..    c                     d S r    r   s    r   flushz_CapturingHandler.flush   s    r   c                     | j         j                            |           |                     |          }| j         j                            |           d S r   )r   r   appendformatr   )r   recordmsgs      r   emitz_CapturingHandler.emit   sK    ##F+++kk&!!""3'''''r   N)__name__
__module____qualname____doc__r   r   r   r   r   r   r	   r	   
   sK         / / /  ( ( ( ( (r   r	   c                   (    e Zd ZdZdZd Zd Zd ZdS )_AssertLogsContextz6A context manager for assertLogs() and assertNoLogs() z"%(levelname)s:%(name)s:%(message)sc                     t          j        | |           || _        |r&t          j                            ||          | _        nt          j        | _        d | _        || _	        d S r   )
r   r   logger_namer   _nameToLevelgetlevelINFOr   no_logs)r   	test_caser$   r'   r)   s        r   r   z_AssertLogsContext.__init__!   s\    %dI666& 	& -11%??DJJ DJr   c                 ,   t          | j        t          j                  r| j        x}| _        n t          j        | j                  x}| _        t          j        | j                  }t                      }|	                    | j
                   |                    |           |j        | _        |j        d d          | _        |j
        | _        |j        | _        |g|_        |	                    | j
                   d|_        | j        rd S |j        S )NF)
isinstancer$   r   Loggerlogger	getLogger	FormatterLOGGING_FORMATr	   setLevelr'   setFormatterr   handlersold_handlers	old_level	propagateold_propagater)   )r   r.   	formatterhandlers       r   	__enter__z_AssertLogsContext.__enter__+   s    d&77 	G#'#33FT[[#*#4T5E#F#FFFT[%d&9::	#%%$$$Y'''"OAAA.#-")
### < 	Fr   c                    | j         | j        _        | j        | j        _        | j                            | j                   |dS | j        rSt          | j	        j
                  dk    r4|                     d                    | j	        j                             d S d S t          | j	        j
                  dk    rL|                     d                    t          j        | j                  | j        j                             d S d S )NFr   zUnexpected logs found: {!r}z-no logs of level {} or higher triggered on {})r5   r.   r4   r8   r7   r2   r6   r)   lenr   r   _raiseFailurer   r   r   getLevelNamer'   name)r   exc_type	exc_valuetbs       r   __exit__z_AssertLogsContext.__exit__?   s   #0 $ 2T^,,,5< 	Q4<'((1,,""188+      -, 4<'((A--""CVG0<<dk>NOOQ Q Q Q Q .-r   N)r   r   r   r    r1   r   r;   rD   r   r   r   r"   r"      sQ        @@9N    (Q Q Q Q Qr   r"   )	r   collectionscaser   
namedtupler   r   r	   r"   r   r   r   <module>rH      s         & & & & & & )+():*3X)>@ @( ( ( ( ( ( ( ($:Q :Q :Q :Q :Q- :Q :Q :Q :Q :Qr   