o […dº ã@sRddlZddlZddlmZe dddg¡ZGdd„dejƒZGd d „d eƒZdS) éNé)Ú_BaseTestCaseContextÚ_LoggingWatcherÚrecordsÚoutputc@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú_CapturingHandlerzM A logging handler capturing all (raw and formatted) logging output. cCstj |¡tggƒ|_dS©N)ÚloggingÚHandlerÚ__init__rÚwatcher©Úself©rú$/usr/lib/python3.10/unittest/_log.pyr s z_CapturingHandler.__init__cCsdSrrr rrrÚflushsz_CapturingHandler.flushcCs*|jj |¡| |¡}|jj |¡dSr)r rÚappendÚformatr)rÚrecordÚmsgrrrÚemits z_CapturingHandler.emitN)Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrrrrrr s  rc@s,eZdZdZdZdd„Zdd„Zdd„Zd S) Ú_AssertLogsContextz6A context manager for assertLogs() and assertNoLogs() z"%(levelname)s:%(name)s:%(message)scCs@t ||¡||_|rtj ||¡|_ntj|_d|_||_ dSr) rr Ú logger_namer Ú _nameToLevelÚgetÚlevelÚINFOrÚno_logs)rÚ test_caserrr!rrrr !s  z_AssertLogsContext.__init__cCs¨t|jtjƒr|j}|_n t |j¡}|_t |j¡}tƒ}|  |j ¡|  |¡|j |_ |j dd…|_|j |_|j|_|g|_ |  |j ¡d|_|jrQdS|j S)NF)Ú isinstancerr ÚLoggerÚloggerÚ getLoggerÚ FormatterÚLOGGING_FORMATrÚsetLevelrÚ setFormatterr ÚhandlersÚ old_handlersÚ old_levelÚ propagateÚ old_propagater!)rr%Ú formatterÚhandlerrrrÚ __enter__+s"    z_AssertLogsContext.__enter__cCs–|j|j_|j|j_|j |j¡|durdS|jr0t|j j ƒdkr.|  d  |j j ¡¡dSdSt|j j ƒdkrI|  d  t |j¡|jj¡¡dSdS)NFrzUnexpected logs found: {!r}z-no logs of level {} or higher triggered on {})r,r%r+r/r.r)r-r!Úlenr rÚ _raiseFailurerrr Ú getLevelNamerÚname)rÚexc_typeÚ exc_valueÚtbrrrÚ__exit__?s&  ÿÿÿ þÿz_AssertLogsContext.__exit__N)rrrrr(r r2r:rrrrrs  r) r Ú collectionsÚcaserÚ namedtuplerr rrrrrrÚs ÿ