+
     Bi
                         ^ RI t ^ RIt^RIHt ]P                  ! RRR.4      t ! R R] P                  4      t ! R R	]4      tR# )
    N)_BaseTestCaseContext_LoggingWatcherrecordsoutputc                   6   a  ] tR t^
t o RtR tR tR tRtV t	R# )_CapturingHandlerzE
A logging handler capturing all (raw and formatted) logging output.
c                f    \         P                  P                  V 4       \        . . 4      V n        R # N)loggingHandler__init__r   watcherselfs   &$/usr/lib/python3.14/unittest/_log.pyr   _CapturingHandler.__init__   s"      &&r2.    c                    R # r
    r   s   &r   flush_CapturingHandler.flush   s    r   c                    V P                   P                  P                  V4       V P                  V4      pV P                   P                  P                  V4       R # r
   )r   r   appendformatr   )r   recordmsgs   && r   emit_CapturingHandler.emit   s@    ##F+kk&!""3'r   )r   N)
__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r   
   s     /( (r   r   c                   :   a  ] tR t^t o RtRtR tR tR tRt	V t
R# )_AssertLogsContextz6A context manager for assertLogs() and assertNoLogs() z"%(levelname)s:%(name)s:%(message)sc                    \         P                  ! W4       W n        V'       d&   \        P                  P                  W34      V n        M\        P                  V n        R V n        W@n	        R # r
   )
r   r   logger_namer   _nameToLevelgetlevelINFOr   no_logs)r   	test_caser+   r.   r0   s   &&&&&r   r   _AssertLogsContext.__init__!   sH    %%d6& --11%?DJ DJr   c                   \        V P                  \        P                  4      '       d   V P                  ;qn        M&\        P
                  ! V P                  4      ;qn        \        P                  ! V P                  4      p\        4       pVP                  V P                  4       VP                  V4       VP                  V n        VP                  R ,          V n        VP                  V n        VP                   V n        V.Vn        VP                  V P                  4       RVn        V P$                  '       d   R# VP                  # ):NNNFN)
isinstancer+   r   Loggerlogger	getLogger	FormatterLOGGING_FORMATr   setLevelr.   setFormatterr   handlersold_handlers	old_level	propagateold_propagater0   )r   r6   	formatterhandlers   &   r   	__enter___AssertLogsContext.__enter__+   s    d&&77#'#3#33F[#*#4#4T5E5E#FFF[%%d&9&9:	#%$Y'"OOA.#--")

# <<<r   c                   V P                   V P                  n        V P                  V P                  n        V P                  P                  V P                  4       Ve   R# V P                  '       d]   \        V P                  P                  4      ^ 8  d7   V P                  RP                  V P                  P                  4      4       R # R # \        V P                  P                  4      ^ 8X  dV   V P                  RP                  \        P                  ! V P                   4      V P                  P"                  4      4       R # R # )NFzUnexpected logs found: {!r}z-no logs of level {} or higher triggered on {})r=   r6   r<   r@   r?   r:   r>   r0   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.   r6   r+   r   r0   r=   r>   r@   r   N)r   r    r!   r"   r#   r9   r   rC   rM   r$   r%   r&   s   @r   r)   r)      s#     @9N(Q Qr   r)   )	r   collectionscaser   
namedtupler   r   r   r)   r   r   r   <module>rR      sK      & (():*3X)>@( ($:Q- :Qr   