{G_Tc@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlmZmZddlZddlZddlZddlmZmZmZddlZddlZddlZddlZddlZyddlZWnek r]eZnXdej fdYZ!de!fdYZ"d e!fd YZ#d Z$d Z%d Z&dZ'dZ(dZ)dZ*dZ+dZ,dZ-e.e-e$dZ/i de$6de%6de&6de'6de(6de)6de*6de+6de,6de-6Z0d ej1fd!YZ2d"ej1fd#YZ3d$e!fd%YZ4d&e!fd'YZ5d(ej6fd)YZ7d*e!fd+YZ8d,efd-YZ9d.efd/YZ:ej;ed0d1e!fd2YZ<d3e!fd4YZ=d5e!fd6YZ>d7e!fd8YZ?ed9Z@d:ZAd;ejBfd<YZCd=e!fd>YZDd?e!fd@YZEdAe!fdBYZFdCe!fdDYZGedEdFdGZHeIdHkreHndS(IsoTest harness for the logging module. Run all tests. Copyright (C) 2001-2013 Vinay Sajip. All Rights Reserved. iN(tThreadingTCPServertStreamRequestHandler(tcaptured_stdouttrun_with_localet run_unittesttBaseTestcBsGeZdZdZdZdZdZdZddZ dZ RS( sBase class for logging tests.s&%(name)s -> %(levelname)s: %(message)ss^([\w.]+) -> ([\w]+): ([\d]+)$icCs"tjjj}tjzDtjj|_tj|_ |j|_ tj j|_ Wdtj Xtjdtjdtjd|_|jj|_tj|_|jjtjtj|j|_tj|j|_|jj|j|jj|jdS(sxSetup the default logging stream to an internal StringIO instance, so that we can examine log output as we want.Ns׻uĿÖGt(tloggingt getLoggertmanagert loggerDictt _acquireLockt _handlerstcopytsaved_handlerst _handlerListtsaved_handler_listt saved_loggerst _levelNamestsaved_level_namest _releaseLockt root_loggertgetEffectiveLeveltoriginal_logging_levelt cStringIOtStringIOtstreamtsetLeveltDEBUGt StreamHandlert root_hdlrt Formattert log_formattroot_formattert setFormattert addHandler(tselft logger_dict((s-/usr/local/lib/python2.7/test/test_logging.pytsetUp;s$     cCs |jj|jj|jx:|jjr\|jjd}|jj||jq#W|jj|jtj z}tj j tj j |j tjj tjj |j|jtj(tjjj}|j |j |jWdtjXdS(sJRemove our logging stream, and restore the original logging level.iN(RtcloseRt removeHandlerRthandlersRRRR RtcleartupdateRR RRRRR R RR(R$thR ((s-/usr/local/lib/python2.7/test/test_logging.pyttearDownXs$      c Cs |p |j}tj|j}y|j|j}Wn#tk r`|jj}nX|j t |t |xbt ||D]Q\}}|j |}|s|j d|n|j t|j|qW|j}|r|j d|ndS(sMatch the collected log lines against the regular expression self.expected_log_pat, and compare the extracted group values to the expected_values list of tuples.s*Log line does not match expected pattern: s'Remaining output at end of log stream: N(Rtretcompiletexpected_log_pattresett readlinestAttributeErrortgetvaluet splitlinest assertEqualtlentziptsearchtfailttupletgroupstread( R$texpected_valuesRtpatt actual_linestactualtexpectedtmatchts((s-/usr/local/lib/python2.7/test/test_logging.pytassert_log_linesos"      cCs|jd7_d|jS(sMGenerate a message consisting solely of an auto-incrementing integer.is%d(t message_num(R$((s-/usr/local/lib/python2.7/test/test_logging.pyt next_messagesN( t__name__t __module__t__doc__R R0RFR&R-tNoneRERG(((s-/usr/local/lib/python2.7/test/test_logging.pyR3s   tBuiltinLevelsTestcBs;eZdZdZdZdZdZdZRS(s*Test builtin levels and their inheritance.cCs|j}tjd}|jtjtjd}|jtjtjd}|jtj|jtj||j ||jtj||j ||j ||j ||jtj||j ||j ||j ||j ||j ||j ||j ||j ||j dddddddddddg dS(NtERRtINFtDEBtCRITICALt1tERRORt2t3t4tWARNINGt5tINFOt6t7t8t9t10Rt11(sERRsCRITICALRQ(sERRsERRORRS(sINFsCRITICALRT(sINFsERRORRU(sINFsWARNINGRW(sINFsINFORY(sDEBsCRITICALRZ(sDEBsERRORR[(sDEBsWARNINGR\(sDEBsINFOR](sDEBsDEBUGR^(RGRRRRRRXRtlogRPterrortwarntinfotdebugRE(R$tmRMRNRO((s-/usr/local/lib/python2.7/test/test_logging.pyt test_flatsD cCs|j}tjd}|jtjtjd}|jtj|jtj||j||j ||j ||j ||j ddgdS( NRNsINF.ERRRPRQRRRS(sINF.ERRsCRITICALRQ(sINF.ERRsERRORRS( RGRRRRXRRR_RPR`RaRbRcRE(R$RdRNtINF_ERR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_nested_explicits c CsC|j}tjd}|jtjtjd}|jtjtjd}tjd}tjd}|jtj||j||j ||j ||jtj||j||j ||j ||j ||j ||j ddddddgdS(NRNsINF.ERRs INF.UNDEFs INF.ERR.UNDEFtUNDEFRPRQRRRSRVRTRXRURWRY(s INF.UNDEFsCRITICALRQ(s INF.UNDEFsERRORRS(s INF.UNDEFsWARNINGRT(s INF.UNDEFsINFORU(s INF.ERR.UNDEFsCRITICALRW(s INF.ERR.UNDEFsERRORRY( RGRRRRXRRR_RPR`RaRbRcRE(R$RdRNRft INF_UNDEFt INF_ERR_UNDEFRh((s-/usr/local/lib/python2.7/test/test_logging.pyttest_nested_inheriteds2 cCs|j}tjd}tjd}tjd}|jtj|jtj||j||jtj||j||j||j||j d d d d gdS(NRNsINF.BADPARENT.UNDEFs INF.BADPARENTRPRQRXRSRTRU(sINF.BADPARENT.UNDEFsCRITICALRQ(sINF.BADPARENT.UNDEFsINFORS(s INF.BADPARENTsCRITICALRT(s INF.BADPARENTsINFORU( RGRRRRXR_tFATALRbRcRE(R$RdRNt GRANDCHILDtCHILD((s-/usr/local/lib/python2.7/test/test_logging.pyttest_nested_with_virtual_parents  cCs|jttjtdS(N(t assertRaisest TypeErrorRRtany(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_invalid_names(RHRIRJReRgRkRoRs(((s-/usr/local/lib/python2.7/test/test_logging.pyRLs  /  # tBasicFilterTestcBseZdZdZRS(sTest the bundled Filter class.cCstjd}|jjd}z|j|tjd}tjd}tjd}tjd}|j|j|j|j|j|j|j|j|jd d gWd|j |XdS( Ns spam.eggsitspamsspam.eggs.fishsspam.bakedbeansRXRSRT(s spam.eggssINFORS(sspam.eggs.fishsINFORT( RtFilterRR)t addFilterRRbRGREt removeFilter(R$tfilter_thandlerRut spam_eggstspam_eggs_fishtspam_bakedbeans((s-/usr/local/lib/python2.7/test/test_logging.pyt test_filters  (RHRIRJR~(((s-/usr/local/lib/python2.7/test/test_logging.pyRtsixiwiviuitisiriqipioitSilenttTaciturntTersetEffusivetSociabletVerboset Talkativet Garruloust ChatterboxtBoringtGarrulousFiltercBseZdZdZRS(s)A filter which blocks garrulous messages.cCs |jtkS(N(tlevelnot GARRULOUS(R$trecord((s-/usr/local/lib/python2.7/test/test_logging.pytfilter]s(RHRIRJR(((s-/usr/local/lib/python2.7/test/test_logging.pyRYstVerySpecificFiltercBseZdZdZRS(s5A filter which blocks sociable and taciturn messages.cCs|jttgkS(N(RtSOCIABLEtTACITURN(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyRds(RHRIRJR(((s-/usr/local/lib/python2.7/test/test_logging.pyR`stCustomLevelsAndFiltersTestcBsAeZdZdZdZdZdZdZdZRS(s@Test various filtering possibilities with custom logging levels.s^[\w.]+ -> ([\w]+): ([\d]+)$cCs>tj|x*tjD]\}}tj||qWdS(N(RR&tmy_logging_levelstitemsRt addLevelName(R$tktv((s-/usr/local/lib/python2.7/test/test_logging.pyR&os cCs+x$tD]}|j||jqWdS(N(t LEVEL_RANGER_RG(R$tloggertlvl((s-/usr/local/lib/python2.7/test/test_logging.pytlog_at_all_levelsts cCsC|jjt|j|j|jd dddddgdS(NRRWRRYRRZRR[RR\RR](RRW(RRY(RRZ(RR[(RR\(Rs10(RRtVERBOSERRE(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_logger_filterxscCsi|jjdjtz0|j|j|jd d dddgWd|jjdjtjXdS(NiRRYRRZRR[RR\RR](sSociableRY(sEffusiveRZ(sTerseR[(sTaciturnR\(sSilents10(RR)RRRRERtNOTSET(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_handler_filtersc Cs|jjd}d}t}|j|z|j|jdddddd d!d"d#g }|j|t}|jj||j|j|j|d$d%d&d'd(d)d*gWd|r|jj|n|j|XdS(+NiRRQRRSRRURRWRRYRRZRR[RR\RR]R^t12t14t15t17t18t20(RRQ(RRS(RRU(sVerboseRW(sSociableRY(sEffusiveRZ(sTerseR[(sTaciturnR\(sSilents10(Rs11(RR(RR(sVerboseR(sEffusiveR(sTerseR(sSilentR( RR)RKRRwRRERRx(R$Rztspecific_filtertgarrt first_lines((s-/usr/local/lib/python2.7/test/test_logging.pyttest_specific_filterss<      ( RHRIRJR0R&RRRR(((s-/usr/local/lib/python2.7/test/test_logging.pyRhs    tMemoryHandlerTestcBs/eZdZdZdZdZdZRS(sTests for the MemoryHandler.s^[\w.]+ -> ([\w]+): ([\d]+)$cCsctj|tjjdtj|j|_tjd|_ d|j _ |j j |jdS(Ni tmemi( RR&RR)t MemoryHandlerRVRtmem_hdlrRt mem_loggert propagateR#(R$((s-/usr/local/lib/python2.7/test/test_logging.pyR&s   cCs|jjtj|dS(N(RR'RR-(R$((s-/usr/local/lib/python2.7/test/test_logging.pyR-s cCsC|jj|j|jg|jj|j|jg|jj|jd d d g}|j|xdD]}x*td D]}|jj|jqW|j||jj|j|gt||d D]}dt|f^q}|j|qW|jj|j|j|dS(NRRQRXRSRVRTiii i (sDEBUGRQ(sINFORS(sWARNINGRT(ii(RRcRGRERbRatrangetstr(R$tlinestnti((s-/usr/local/lib/python2.7/test/test_logging.pyt test_flushs$      6(RHRIRJR0R&R-R(((s-/usr/local/lib/python2.7/test/test_logging.pyRs   tExceptionFormattercBseZdZdZRS(sA special exception formatter.cCsd|djS(Ns Got a [%s]i(RH(R$tei((s-/usr/local/lib/python2.7/test/test_logging.pytformatExceptions(RHRIRJR(((s-/usr/local/lib/python2.7/test/test_logging.pyRstConfigFileTestcBseZdZdZdZdZdZejddZejddZ d ed Z ejd d Z d Z dZ dZdZdZedZdZdZdZdZdZdZdZRS(s5Reading logging config from a .ini-style config file.s^([\w]+) \+\+ ([\w]+)$sN [loggers] keys=root [handlers] keys=hand1 [formatters] keys=form1 [logger_root] level=WARNING handlers=hand1 [handler_hand1] class=StreamHandler level=NOTSET formatter=form1 args=(sys.stdout,) [formatter_form1] format=%(levelname)s ++ %(message)s datefmt= s [loggers] keys=root,parser [handlers] keys=hand1 [formatters] keys=form1 [logger_root] level=WARNING handlers= [logger_parser] level=DEBUG handlers=hand1 propagate=1 qualname=compiler.parser [handler_hand1] class=StreamHandler level=NOTSET formatter=form1 args=(sys.stdout,) [formatter_form1] format=%(levelname)s ++ %(message)s datefmt= s [loggers] keys=root,parser [handlers] keys=hand1 [formatters] keys=form1 [logger_root] level=WARNING handlers=hand1 [logger_parser] level=DEBUG handlers= propagate=1 qualname=compiler.parser [handler_hand1] class=StreamHandler level=NOTSET formatter=form1 args=(sys.stdout,) [formatter_form1] format=%(levelname)s ++ %(message)s datefmt= s sys.stdouts sys.stboutsformatter=form1sformatter=misspelled_names [loggers] keys=root [handlers] keys=hand1 [formatters] keys=form1 [logger_root] level=NOTSET handlers=hand1 [handler_hand1] class=StreamHandler level=NOTSET formatter=form1 args=(sys.stdout,) [formatter_form1] class=sS.ExceptionFormatter format=%(levelname)s:%(name)s:%(message)s datefmt= sclass=StreamHandlersclass=logging.StreamHandlersg [loggers] keys=root,parser [handlers] keys=hand1, hand2 [formatters] keys=form1, form2 [logger_root] level=WARNING handlers= [logger_parser] level=DEBUG handlers=hand1 propagate=1 qualname=compiler.parser [handler_hand1] class=StreamHandler level=NOTSET formatter=form1 args=(sys.stdout,) [handler_hand2] class=StreamHandler level=NOTSET formatter=form1 args=(sys.stderr,) [formatter_form1] format=%(levelname)s ++ %(message)s datefmt= [formatter_form2] format=%(message)s datefmt= s [loggers] keys=root,parser,compiler [handlers] keys=hand1 [formatters] keys=form1 [logger_root] level=WARNING handlers=hand1 [logger_compiler] level=DEBUG handlers= propagate=1 qualname=compiler [logger_parser] level=DEBUG handlers= propagate=1 qualname=compiler.parser [handler_hand1] class=StreamHandler level=NOTSET formatter=form1 args=(sys.stdout,) [formatter_form1] format=%(levelname)s ++ %(message)s datefmt= s [loggers] keys=root [handlers] keys=screen [formatters] keys= [logger_root] level=DEBUG handlers=screen [handler_screen] level=DEBUG class=StreamHandler args=(sys.stdout,) formatter= cKs/tjtj|}tjj||dS(N(RRttextwraptdedentRtconfigt fileConfig(R$tconftkwargstfile((s-/usr/local/lib/python2.7/test/test_logging.pyt apply_configscCs{tl}|j|jtj}|j|j|j|j|jdgd||jgWdQXdS(NRRRSR(sERRORRS( RRtconfig0RRRbRGR`RE(R$toutputR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config0_oks   cCs~to}|j|tjd}|j|j|j|j|jddgd||jgWdQXdS( Nscompiler.parserRXRQRRRSR(sINFORQ(sERRORRS(RRRRRbRGR`RE(R$RRR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config1_oks   cCs|jt|j|jdS(N(Rpt StandardErrorRtconfig2(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config2_failurescCs|jt|j|jdS(N(RpRRtconfig3(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config3_failuresc Cst}|j|jtj}y tWntk rUtjdnXtjj d|j |j d|j gWdQXdS(Ns just testingis-ERROR:root:just testing Got a [RuntimeError] ( RRtconfig4RRt RuntimeErrort exceptiontsyststdouttseekR6R4RE(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config4_ok s    cCs|jd|jdS(NR(Rtconfig5(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config5_okscCs|jd|jdS(NR(Rtconfig6(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config6_oksc Cst}|j|jtjd}tjd}|j|j|j|j|j|j|j dddgd ||j gWdQXt}|j|j tjd}|j |j |j|j|j|jtjd }|j|j|j|j|j|j|j ddddgd ||j gWdQXdS(Nscompiler.parserscompiler-hyphenatedRXRQRRRSRPRTRscompiler.lexerRURWRYRZ(sINFORQ(sERRORRS(sCRITICALRT(sINFORU(sERRORRW(sINFORY(sERRORRZ( RRtconfig1aRRRbRGR`tcriticalREtconfig7t assertFalsetdisabled(R$RRt hyphenated((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config7_oks<    cCsy|j|jtjd}|j|j|j|j|j|j|j|jdt|j|jdS(Ntfootdisable_existing_loggers(Rt disable_testRRRRt assertTruetFalse(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyttest_logger_disablingJs(RHRIRJR0Rtconfig1RtreplaceRRRRRRRRRRRRRRRRR(((s-/usr/local/lib/python2.7/test/test_logging.pyRs.  *&         +tLogRecordStreamHandlercBs/eZdZdZdZdZdZRS(sqHandler for a streaming logging request. It saves the log message in the TCP server's 'log_output' attribute.s !!!END!!!cCsxtr|jjd}t|dkr1Pntjd|d}|jj|}x6t||kr||jj|t|}q\W|j|}tj|}|j |qWdS(sHandle multiple requests - each expected to be of 4-byte length, followed by the LogRecord in pickle format. Logs the record according to whatever policy is configured locally.is>LiN( tTruet connectiontrecvR7tstructtunpacktunpickleRt makeLogRecordthandle_log_record(R$tchunktslentobjR((s-/usr/local/lib/python2.7/test/test_logging.pythandleZs $cCs tj|S(N(tcPickletloads(R$tdata((s-/usr/local/lib/python2.7/test/test_logging.pyRjscCs?|j|jkr"d|j_dS|jj|jd7_dS(Nis (t TCP_LOG_ENDtmsgtservertabortt log_output(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyRms (RHRIRJRRRR(((s-/usr/local/lib/python2.7/test/test_logging.pyRSs   tLogRecordSocketReceivercBs;eZdZdZdZdejjedZ dZ RS(sQA simple-minded TCP socket-based logging receiver suitable for test purposes.iRt localhostcCs>tj|||f|t|_d|_tj|_dS(Ng?(Rt__init__RRttimeoutt threadingtEventtfinished(R$thosttportRz((s-/usr/local/lib/python2.7/test/test_logging.pyR~s  cCsnxP|jsRtj|jjggg|j\}}}|r|jqqW|jj|jdS(N( RtselecttsockettfilenoRthandle_requestRtsett server_close(R$trdtwrtex((s-/usr/local/lib/python2.7/test/test_logging.pytserve_until_stoppeds  ( RHRIRJtallow_reuse_addressRRR)tDEFAULT_TCP_LOGGING_PORTRRR (((s-/usr/local/lib/python2.7/test/test_logging.pyRvs  s!Threading required for this test.tSocketHandlerTestcBs2eZdZdZdZdZdZRS(sTest for SocketHandler objects.cCstj|tdd|_|jjjd|_tjd|jj g|_ x|j D]}|j q`Wt j jd|j|_|jj|j|jj|jj d|jj|jdS(stSet up a TCP server to receive log messages, and a SocketHandler pointing to that server's address and port.RiittargetRN(RR&Rt tcpserverRt getsocknameRRtThreadR tthreadststartRR)t SocketHandlert sock_hdlrR"R!RR(R#(R$tthread((s-/usr/local/lib/python2.7/test/test_logging.pyR&s cCslzWt|j_|`|jj|j|jjx|jD]}|jdq?WWdt j |XdS(sShutdown the TCP server.g@N( RRRRR(RR'RtjoinRR-(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyR-s  cCs0|jjtj|jjjd|jjS(s1Get the log output as received by the TCP server.g@(RRRRRRtwaitR(R$((s-/usr/local/lib/python2.7/test/test_logging.pyt get_outputscCsCtjd}|jd|jd|j|jddS(NttcpRuteggss spam eggs (RRR`RcR6R(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyt test_outputs  (RHRIRJR&R-RR(((s-/usr/local/lib/python2.7/test/test_logging.pyRs   t MemoryTestcBs2eZdZdZdZdZdZRS(s*Test memory persistence of logger objects.cCstj|i|_dS(s8Create a dict to remember potentially destroyed objects.N(RR&t _survivors(R$((s-/usr/local/lib/python2.7/test/test_logging.pyR&s cGsCx<|D]4}t|t|f}tj||j|RGRI(((s-/usr/local/lib/python2.7/test/test_logging.pyR0s  t WarningsTestcBseZdZRS(c Cstj tjtztjddttj}tj |}tj d}|j |tj d|j ||j}|j|j|jddktj}tjdtdd |d |j}|j|j|d WdtjtXWdQXdS( Ntalwaystcategorys py.warningssI'm warning you...s UserWarning: I'm warning you... itExplicitsdummy.pyi*s Dummy lines0dummy.py:42: UserWarning: Explicit Dummy line (twarningstcatch_warningsRtcaptureWarningsRtfilterwarningst UserWarningRRRRR#RaR(R4R'Rtfindt showwarningR6R(R$RR,RRD((s-/usr/local/lib/python2.7/test/test_logging.pyt test_warnings:s*              (RHRIRU(((s-/usr/local/lib/python2.7/test/test_logging.pyRJ8scCstj||S(N(RR(tformattdatefmt((s-/usr/local/lib/python2.7/test/test_logging.pyt formatFuncUscCs tjS(N(RR(((s-/usr/local/lib/python2.7/test/test_logging.pyt handlerFuncXst CustomHandlercBseZRS((RHRI(((s-/usr/local/lib/python2.7/test/test_logging.pyRZ[stConfigDictTestcBs eZdZdZidd6iidd6d6d6iidd 6dd 6d d 6d d6d6d6idd 6dgd6d6Zidd6iidd6d6d6iidd 6dd 6d d 6d d6d6d6iidd 6dgd6d6d6idd 6d6Zidd6iidd6d6d6iidd 6dd 6d d 6dd6d6d6iidd 6dgd6d6d6idd 6d6Zidd6iidd6d6d6iidd 6dd 6dd 6d d6d6d6iidd 6dgd6d6d6idd 6d6Zidd6iidd6d6d6iidd 6dd 6d d 6d d6d6d6iidd 6dgd6d6d6idd 6d6Zidd6iidd6d6d6iidd 6dd 6d d 6d d6d6d6iidd 6dgd6d6d6idd 6d6Z idd6iiedd6dd6d6d6iidd 6dd 6d d 6d d6d6d6id d 6dgd6d6Z idd6iie d6dd6d6iedd6dd6d6ie d6dd6d6d6iidd 6dd 6d d 6d d6d6ie d6d 6d6id d 6dgd6d6Zidd6iidd6d6d6iied!d 6dd 6d d 6d d6d6d6iidd 6dgd6d6d6idd 6d6Zidd6iidd6d6d6iied!d 6dd 6d d 6d d6d"d#6d6d6iidd 6dgd6d6d6idd 6d6Zidd6iidd6d6d6iidd 6dd 6d d 6d d6d6d6iidd 6dgd6d$6d6idd 6d6Zidd6ed%6iidd6d6d6iidd 6dd 6d d 6d d6d6d6iidd 6dgd6d&6id$6d6idd 6d6Zidd6iidd6d6d6iidd 6dd 6dd 6d d6d6d6iidd 6dgd6d6d6id d 6d6Zidd6ed'6iidd 6d6d6iid(d 6d6d6Zidd6ed'6iid(d 6d6d6iid(d 6d6d6Zidd6iidd6d6d6iidd)6d*6d+6iidd 6dd 6d d 6d d6d*gd+6d6d6iidd 6d*gd+6d6d6idd 6dgd6d6Zidd6iidd6d6d,6iidd 6dd 6d d 6d d6d6d-6d.d6id/d6d6iidd 6dgd6d6d6idd 6d6Ziiidd6d6d,6iidd 6dd 6d d 6d d6d6d-6d.d6id/d6d6iidd 6dgd6d6d6idd 6d6Zid0d6iidd6d6d,6iidd 6dd 6d d 6d d6d6d-6d.d6id/d6d6iidd 6dgd6d6d6idd 6d6Zidd6iid1d6d26d6iidd 6dd 6d2d 6d36id4d 6d5d66d2d 6d3d76dd 6d86d6iidd 6d8gd6d9d:6d;6d6Zd<Zd=Zed>Zd?Z d@Z!dAZ"dBZ#dCZ$dDZ%dEZ&dFZ'dGZ(dHZ)dIZ*dJZ+dKZ,dLZ-dMZ.e/j0e1dNdOZ2dPZ3dQZ4dRZ5RS(Ss)Reading logging config from a dictionary.s^([\w]+) \+\+ ([\w]+)$itversions%(levelname)s ++ %(message)sRVtform1t formattersslogging.StreamHandlertclasst formatterRtlevelsext://sys.stdoutRthand1R)RVtrootRscompiler.parsertloggerssext://sys.stdbouttNTOSETtWRANINGtmisspelled_names.ExceptionFormatters()s"%(levelname)s:%(name)s:%(message)ss .formatFunctform2tform3thand2s.CustomHandlersinvalid parameter nameR\scompiler.lexerRtcompilert incrementalRXtnametfilt1tfiltersttrue_formattersthandler_configsscfg://true_formattersscfg://handler_configs[hand1]is1%(asctime)s (%(name)s) %(levelname)s: %(message)stmySimpleFormattert fileGlobalslogging.handlers.MemoryHandleritcapacityRt bufferGlobalttrueRtmymodulecCstjj|dS(N(RRt dictConfig(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyRscCs{tl}|j|jtj}|j|j|j|j|jdgd||jgWdQXdS(NRRRSR(sERRORRS( RRRRRRbRGR`RE(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyRs   cCs~to}|j|tjd}|j|j|j|j|jddgd||jgWdQXdS( Nscompiler.parserRXRQRRRSR(sINFORQ(sERRORRS(RRRRRbRGR`RE(R$RRR((s-/usr/local/lib/python2.7/test/test_logging.pyRs   cCs|jt|j|jdS(N(RpRRR(R$((s-/usr/local/lib/python2.7/test/test_logging.pyRscCs|jt|j|jdS(N(RpRRtconfig2a(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config2a_failurescCs|jt|j|jdS(N(RpRRtconfig2b(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config2b_failurescCs|jt|j|jdS(N(RpRRR(R$((s-/usr/local/lib/python2.7/test/test_logging.pyRsc Cstx}|j|jy tWntk rItjdnXtjjd|j |j d|j gWdQXdS(Ns just testingis-ERROR:root:just testing Got a [RuntimeError] ( RRRRRRRRRR6R4RE(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyRs   c Cstx}|j|jy tWntk rItjdnXtjjd|j |j d|j gWdQXdS(Ns just testingis-ERROR:root:just testing Got a [RuntimeError] ( RRtconfig4aRRRRRRR6R4RE(R$R((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config4a_oks   cCs|jd|jdS(NR(RR(R$((s-/usr/local/lib/python2.7/test/test_logging.pyRscCs|jt|j|jdS(N(RpRRR(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config6_failuresc Cstr}|j|jtjd}|j|j|j|j|jd d gd||jgWdQXt}|j|j tjd}|j |j tjd}|j|j|j|j|jd d gd||jgWdQXdS(Nscompiler.parserRXRQRRRSRscompiler.lexerRTRU(sINFORQ(sERRORRS(sINFORT(sERRORRU( RRRRRRbRGR`RERRR(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyRs,    c CsItr}|j|jtjd}|j|j|j|j|jd d gd||jgWdQXt}|j|j tjd}|j |j |j|j|j|jtjd}|j|j|j|j|jddddgd||jgWdQXdS(Nscompiler.parserRXRQRRRSRscompiler.lexerRTRURWRY(sINFORQ(sERRORRS(sINFORT(sERRORRU(sINFORW(sERRORRY( RRRRRRbRGR`REtconfig8RR(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config_8_oks4    cCst}|j|jtjd}|j|j|jgd||j|j|j|j|jgd||j|j |j|j|jdgd|WdQXdS(Nscompiler.parserRRXRT(sINFORT( RRtconfig9RRRbRGREtconfig9atconfig9b(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config_9_oks  cCst}|j|jtjd}|j|jtjd}|j|jtjd}|j|jtjd}|j|j|jd d gd |WdQXdS( Nscompiler.parserRkscompiler.lexerscompiler.parser.codegenRVRQRRRUR(sWARNINGRQ(sERRORRU( RRtconfig10RRR5RGR`RE(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config_10_ok%s  cCs|j|jdS(N(Rtconfig11(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config11_ok8scCs|jt|j|jdS(N(RpRRtconfig12(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config12_failure;scCs|jt|j|jdS(N(RpRRtconfig13(R$((s-/usr/local/lib/python2.7/test/test_logging.pyttest_config13_failure>ss listen() needs threading to workc Cs%tjjd}|j|jj|j}|jjztjtj tj }|j d|j d|ft jdt|}||}d}t|}x7|dkr|j||} || 7}|| 8}qW|jWd|jjdtjj|jdXdS(Nig@Rs>L(RRtlistenRtreadyRRR*RtAF_INETt SOCK_STREAMt settimeouttconnectRtpackR7tsendR't stopListeningR( R$ttextttRtsockRRDt sentsofartlefttsent((s-/usr/local/lib/python2.7/test/test_logging.pytsetup_via_listenerAs*         cCst}|jtj|jtjd}|j|jtjd}|j|jtjd}|j|jtjd}|j |j|j d d gd |WdQXdS( Nscompiler.parserRkscompiler.lexerscompiler.parser.codegenRVRQRRRUR(sWARNINGRQ(sERRORRU( RRtjsontdumpsRRRR5RGR`RE(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_listen_config_10_ok]s  cCst{}|jtjtjtjd}|j|j |j |j |j ddgd||j gWdQXdS( Nscompiler.parserRXRQRRRSR(sINFORQ(sERRORRS( RRRRRRRRRbRGR`RE(R$RR((s-/usr/local/lib/python2.7/test/test_logging.pyttest_listen_config_1_okps  cCs@|j|jtjdjd}|j|jtjdS(NRwi(Rt out_of_orderRRR)tassertIsInstanceRtHandler(R$Rz((s-/usr/local/lib/python2.7/test/test_logging.pyttest_out_of_order~s(6RHRIRJR0RRRRyR{RRRRXRYR}RRRRRRRRRRRRRRRRRRRzR|RRR~RRRRRRRRRtunittestt skipUnlessRRRRR(((s-/usr/local/lib/python2.7/test/test_logging.pyR[^s                          !       t ManagerTestcBseZdZRS(csgdtjffdY}tjd}|jt|jt|j||jd}|j dtj d|j dgdS(NtMyLoggercseZddfdZRS(csj|dS(N(R)(R$RaRR$texc_infotextra(tlogged(s-/usr/local/lib/python2.7/test/test_logging.pyt_logsN(RHRIRKR((R(s-/usr/local/lib/python2.7/test/test_logging.pyRsR1sshould appear in loggedsshould not appear in logged( RtLoggertManagerRKRpRqtsetLoggerClasstintRR5R6(R$RtmanR((Rs-/usr/local/lib/python2.7/test/test_logging.pyttest_manager_loggerclasss   (RHRIR(((s-/usr/local/lib/python2.7/test/test_logging.pyRstChildLoggerTestcBseZdZRS(cCstj}tjd}tjd}|jd}|jd}|j|tjdk|j|tjdk|jd}|jd}|jd}|j|tjdk|j|tjdk|j||kdS( Ntabcsdef.ghitxyzsuvw.xyztdeftghisabc.defs abc.def.ghi(RRtgetChildR(R$trtl1tl2tc1tc2tc3((s-/usr/local/lib/python2.7/test/test_logging.pyttest_child_loggerss (RHRIR(((s-/usr/local/lib/python2.7/test/test_logging.pyRst HandlerTestcBs>eZejejdkdejeddZRS(tnts/WatchedFileHandler not appropriate for Windows.s!Threading required for this test.c CsWd}d}d}x;ttfD]-}tjdd\}}tj|tjd|d||f}t|_|j t j j |d|}t j d} |j| zKxDt|D]6} tjd t jid d 6} |j| qWWd|jy|jWntk r+nXtjj|rNtj|nXq"WdS( NcSs]xVt|D]H}ytj|Wntk r7nXtjdtjddq WdS(NgMbp?ii(RR8tunlinktOSErrorttimetsleeptrandomtrandint(tfnamettriest_((s-/usr/local/lib/python2.7/test/test_logging.pyt remove_loops  is.logstest_logging-3-RR$tdelays'%(asctime)s: %(levelname)s: %(message)sg{Gzt?ttestingR(RRR2tmkstempR8R'RRtdaemonRRR)tWatchedFileHandlerRR"RRRRRRt ValueErrorR9texistsR( R$Rt del_countt log_countRtfdR<tremoverR,R=RR((s-/usr/local/lib/python2.7/test/test_logging.pyt test_races0        ( RHRIRtskipIfR8RmRRR(((s-/usr/local/lib/python2.7/test/test_logging.pyRstLC_ALLRcCs2tttttttttt t t t t dS(N(RRLRtRRRRRR0RJR[RRR(((s-/usr/local/lib/python2.7/test/test_logging.pyt test_mains    t__main__(JRJRtlogging.handlerstlogging.configRARRR'RR8RR.RRt SocketServerRRRRR2ttest.test_supportRRRRRRRNR"Rt ImportErrorRKtTestCaseRRLRttSILENTRtTERSEtEFFUSIVERRt TALKATIVERt CHATTERBOXtBORINGRRRRvRRRRRRRRRRRRR0RJRXRYRRZR[RRRRRH(((s-/usr/local/lib/python2.7/test/test_logging.pyts                       Z% Y0]#/4B  (,