python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_logging.cpython-311.opt-2.pyc

eT)	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlmZmZddlmZddlmZddlmZddlmZddlmZddlm Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$ddl%Z%ddl&Z&dd	l'm(Z(m)Z)dd
l*m+Z+m,Z,ddl-m.Z.m/Z/m0Z0m1Z1ej2dZ3ej2d
Z4	ddl5Z5ddl6Z6ddl7Z7n#e8$r	dxZ5xZ6Z7YnwxYw	ddl9Z9n#e8$rYnwxYwe$j:ej;dZ<Gdde$j=Z>Gdde>Z?Gdde>Z@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJeKeJeAdzZLeAd eBd!eCd"eDd#eEd$eFd%eGd&eHd'eId(eJd)i
ZMGd*d+ejNZOGd,d-ejNZPGd.d/e>ZQGd0d1e>ZRGd2d3eSZTGd4d5ejUZVGd6d7eSZWGd8d9e>ZXGd:d;e4jYZZGd<d=eSZ[Gd>d?e[e(Z\Gd@dAe[e0Z]GdBdCe[e.Z^e_edDrGdEdFe]Z`GdGdHe^ZaejbejcGdIdJe>ZdGdKdLe>ZeGdMdNejfZgGdOdPe>ZhejbejcGdQdRe>ZidSZje$jke_edDdTGdUdVeiZlejbejcGdWdXe>Zme$jke_edDdTGdYdZemZnejbejcGd[d\e>Zoe$jke_edDdTGd]d^eoZpe$jkejqd_Gd`daeoZrejbejcGdbdce>ZsGdddee>ZtGdfdge>ZuGdhdie>ZvddjZwGdkdlZxdmZyGdndoejUZzGdpdqe>Z{Gdrdse>Z|Gdtdue>Z}Gdvdwej~ZGdxdye>ZejcGdzd{e>Ze_ejd|r-ddlZdd}lmZejcGd~de>ZejdZGddejZeZGddZGdde$j=eZGddejZGdde$j=ZGdde>ZGdde>ZGddZGddejZGdde>ZGdde>ZGdde>ZGdde$j=ZGdde$j=ZGdde>eZGdde>ZGddeZGddeZGddeZdZddddddeddffD]\ZZeefdZeedezee$jke5dGdde>ZGdde$j=ZdZedkre$jdSdS)N)assert_python_okassert_python_failure)support)	os_helper)
socket_helper)threading_helper)warnings_helper)TestHandler)
HTTPServerBaseHTTPRequestHandler)urlparseparse_qs)ThreadingUDPServerDatagramRequestHandlerThreadingTCPServerStreamRequestHandlerasyncoresmtpdz?libasan has a pthread_create() dead lock related to thread+forkc6eZdZ	dZdZdZdZdZd	dZdZ	dS)
BaseTestz&%(name)s -> %(levelname)s: %(message)sz^([\w.]+) -> (\w+): (\d+)$rc|	tj|_tjjj}tj	tj	|_
tjdd|_|	x|_
}tj	|_tj	|_ix|_}|D]}t'||dd||<	tjn#tjwxYwtjd|_tjd|_tjd|_|j|_t5j|_|jtjtj|j|_ tj!|j"|_#|j $|j#|j%r+|jj&|jj&z}tOd|z|j%r+|jj&|jj&z}tOd|z|j(|j |)|j%|)|j%dS)Ndisabledu«×»uĿÖGzUnexpected handlers: %s)*rthreading_setup_threading_keylogging	getLoggermanager
loggerDict_acquireLock	_handlerscopysaved_handlers_handlerListsaved_handler_list
saved_loggers_nameToLevelsaved_name_to_level_levelToNamesaved_level_to_name
logger_statesgetattr_releaseLocklogger1logger2root_loggergetEffectiveLeveloriginal_logging_levelioStringIOstreamsetLevelDEBUG
StreamHandler	root_hdlr	Formatter
log_formatroot_formattersetFormatterhasHandlershandlersAssertionError
addHandler
assertTrue)selflogger_dictr&r+namehlists      E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_logging.pysetUpzBaseTest.setUp^s	9.>@@'))1<	#")"3"8"8":":D&-&:111&=D#1<1A1A1C1CCD'.';'@'@'B'BD$'.';'@'@'B'BD$133D%
@
@&-mD.A.8$'@'@
d##
@
 """"G """"(88()=>>",R00&*&6&H&H&J&J#kmm!!'-000 .t{;;%/@@##D$7888<##%%	DL)D,<,EEE !:U!BCCC<##%%	DL)D,<,EEE !:U!BCCC##DN3330022333002233333s
CD%%D:c	|j|j|j|jjrL|jjd}|j|||jjL|j|jtj		tj
tj
|j
tjtj|jtjtj|j|jtjdd<tjj}d|_|j}|||j|j}|jD]"}|||||j|_#	tjn#tjwxYw|t;j|jdS)Nr) r5closer0
removeHandlerr9r?r6r2rr r)clearupdater*r'r(r!r#r%r$rrdisablerr&r+rr-
doCleanupsrthreading_cleanupr)rChrrr+rEs      rGtearDownzBaseTest.tearDowns3	&&t~666'	 )!,A**1---
GGIII'		
!!$"=>>>	# &&((( ''(@AAA &&((( ''(@AAA##%%%$$T%8999&*&=G #'))1GGO +Jd0111 .M*
L
L &28Ed8KD&t,5
L
 """"G """"*D,?@@@@s
E!H;;INcP	|p|j}tj|p|j}|}|t|t|t||D]i\}}|	|}|s|
d|z|t||j|
}|r|
d|zdSdS)Nz*Log line does not match expected pattern:
z'Remaining output at end of log stream:
)r5recompileexpected_log_patgetvalue
splitlinesassertEquallenzipsearchfailtuplegroupsread)	rCexpected_valuesr5patactual_linesactualexpectedmatchss	         rGassert_log_lineszBaseTest.assert_log_liness.	/&4;j5 566((3355\**C,@,@AAA #L/ B B	>	>FHJJv&&E
$		G"#$$$U5<<>>22H====KKMM	FII@1DEEEEE	F	Fc8	|xjdz
c_d|jzS)Nz%d)message_numrCs rGnext_messagezBaseTest.next_messages)	Ad&&&riNN)
__name__
__module____qualname__r;rVrlrHrRrhrnrirGrrVsq'9J4K(4(4(4T A A ADFFFF$'''''rirc:eZdZ	dZdZdZdZdZdZdZ	dS)	BuiltinLevelsTestcB|j}tjd}|tjtjtjdi}|tjtjd}|tj|tj	||
||tj	||
||||||tj	||
||||||
||||||
||
||gddS)NERRINFDEB))rwCRITICAL1)rwERROR2)rxrz3)rxr|4)rxWARNING5)rxINFO6)ryrz7)ryr|8)ryr9)ryr10)ryr711)rnrrr6r|
LoggerAdapterrr7logrzerrorwarninginfodebugrh)rCmrwrxrys     rG	test_flatzBuiltinLevelsTest.test_flats&&W]####G$5e$<$<bAAW\"""&&W]###	 !!##&&&		!!## !!##&&&		!!##AACC


 !!##&&&		!!##AACC


		!!##	AACC


		!!##		!!##


					ricF|j}tjd}|tjtjd}|tj|tj||||	||
||||ddgdS)NrxINF.ERR)rrzr{)rr|r}
rnrrr6rr|rrzrrrrrh)rCrrxINF_ERRs    rGtest_nested_explicitz&BuiltinLevelsTest.test_nested_explicits&&W\"""$Y//'''	G$aacc***

aacc	QQSS

aacc(%
					ric|j}tjd}|tjtjd}|tjtjd}tjd}tjd}|tj||||	||
||tj||||||	||
||||gddS)Nrxr	INF.UNDEF
INF.ERR.UNDEFUNDEF))rrzr{)rr|r})rrr~)rrr)rrzr)rr|rr)rCrrxr	INF_UNDEF
INF_ERR_UNDEFrs       rGtest_nested_inheritedz'BuiltinLevelsTest.test_nested_inheriteds&&W\"""$Y//'''%k22	)/::
!'**	

g&,,,!!##qqss'*AACC000AACC   	aacc"""1133AACC   


					ric|j}tjd}tjd}tjd}|tj|tj||||tj||||||||	gddS)NrxINF.BADPARENT.UNDEF
INF.BADPARENT))rrzr{)rrr})rrzr~)rrr)
rnrrr6rrFATALrrrh)rCrrx
GRANDCHILDCHILDs     rGtest_nested_with_virtual_parentz1BuiltinLevelsTest.test_nested_with_virtual_parent/s&&&'<==
!/22W\"""	w}aacc***
		'-%%%

1133	
AACC


					ric	|tjdtj|tjtjddS)Nr)rYrgetLevelNamerrms rGtest_regression_22386z'BuiltinLevelsTest.test_regression_22386IsQ4-f55w|DDD-gl;;VDDDDDricntjd}||tjdS)Nr)rrrYr)rCfatals  rGtest_issue27935z!BuiltinLevelsTest.test_issue27935Ns0$W--
.....ric	tjtjd|tjtjd|tjtjd|tjtjd|tjdtjdS)NrrNOTSET)raddLevelNamer
addCleanuprYrrrms rGtest_regression_29220z'BuiltinLevelsTest.test_regression_29220Rs4W\2...,glFCCC-gl;;R@@@-gn==xHHH-h77HHHHHriN)
rprqrrrrrrrrrrsrirGrurus4---^.!!!F4EEE
///IIIIIriruc"eZdZ	dZdZdZdS)BasicFilterTestctjd}|jjd}	||tjd}tjd}tjd}tjd}|||||||||ddg|	|dS#|	|wxYw)N	spam.eggsrspamspam.eggs.fishspam.bakedbeansrrr}rrr~)
rFilterr0r?	addFilterrrrnrhremoveFilter)rCfilter_handlerr	spam_eggsspam_eggs_fishspam_bakedbeanss       rGtest_filterzBasicFilterTest.test_filter^sS.--"+A.	*g&&&$V,,D)+66I$./?@@N%/0ABBOIId''))***NN4,,../// 1 1 3 3444  !2!2!4!4555!!*/#




  )))))G  ))))sDEE.cd}|jjd}	||tjd}tjd}tjd}tjd}|||||||||ddg||dS#||wxYw)	Nc||jd}d|dd}|dkS)N.r)rEsplitjoin)recordpartsprefixs   rG
filterfuncz8BasicFilterTest.test_callable_filter.<locals>.filterfunczs;K%%c**EXXeBQBi((F[((rirrrrrrr)	r0r?rrrrrnrhr)rCrrrrrrs       rGtest_callable_filterz$BasicFilterTest.test_callable_filtervsS	)	)	)
"+A.	-j)))$V,,D)+66I$./?@@N%/0ABBOIId''))***NN4,,../// 1 1 3 3444  !2!2!4!4555!!*/#




  ,,,,,G  ,,,,sDEEctj}tjddi}|||dS)NrEr)rr
makeLogRecordrBfilter)rCfrs   rGtest_empty_filterz!BasicFilterTest.test_empty_filtersFN!6;"788$$$$$riN)rprqrrrrrrsrirGrrZsD(***0---:%%%%%rirxwvutsrqporkSilentTaciturnTerseEffusiveSociableVerbose	Talkative	Garrulous
ChatterboxBoringceZdZ	dZdS)GarrulousFilterc"|jtkSN)levelno	GARRULOUSrCrs  rGrzGarrulousFilter.filters~**riNrprqrrrrsrirGrrs&3+++++rirceZdZ	dZdS)VerySpecificFilterc,|jttfvSr)rSOCIABLETACITURNrs  rGrzVerySpecificFilter.filters~h%999riNrrsrirGrrs&?:::::rirc2eZdZ	dZdZdZdZdZdZdS)CustomLevelsAndFiltersTest^[\w.]+ -> (\w+): (\d+)$ct|tD]\}}t	j||dSr)rrHmy_logging_levelsitemsrr)rCkvs   rGrHz CustomLevelsAndFiltersTest.setUpsSt%++--	'	'DAq A&&&&	'	'ricjtD]*}|||+dSr)LEVEL_RANGErrn)rCloggerlvls   rGlog_at_all_levelsz,CustomLevelsAndFiltersTest.log_at_all_levelss>	1	1CJJsD--//0000	1	1ric|jt||j|gddS)N)rrrrrrrrrrrr)r0r6VERBOSErrhrms rGtest_logger_filterz-CustomLevelsAndFiltersTest.test_logger_filtersa!!'***t/000


					ric|jjdt	||j|gd|jjdtjdS#|jjdtjwxYw)Nr)rrrrr)r0r?r6rrrhrrrms rGtest_handler_filterz.CustomLevelsAndFiltersTest.test_handler_filters!!$--h777	B""4#3444!!###



%a(11'.AAAAAD%a(11'.AAAAs1B1B?cb|jjd}d}t}||	||jgd}||t
}|j|||j||gdz|r|j|||dS#|r|j|||wxYw)Nr)	)rr{)rr})rrrrrrrr))rr)r12)r14)r15)r17)r18)r20)r0r?rrrrhrr)rCrspecific_filtergarrfirst_liness     rGtest_specific_filtersz0CustomLevelsAndFiltersTest.test_specific_filterssY"+A.  $!	'""4#3444K
!!+...022O&&777""4#3444!!+
1

1

1

#







? --o>>>  &&&&&
? --o>>>  &&&&sBC;;3D.N)	rprqrrrVrHrrr
rrsrirGrrsmJ3'''
111BBB ('('('('('rirc^eZdZdZdZdZejej	dkdeje
jdej
e
jddZe
jej
ed	Zd
S)HandlerTestctj}d|_||jdd|_||jd|t
|jddS)Ngenericanothergeneric)rHandlerrErYassertRaisesNotImplementedErroremitrCrQs  rG	test_namezHandlerTest.test_name'soO+++!!1222-qvt<<<<<ric8tjdvrRdD]}tj\}}t	j||st	j|tj	|dd}|r|j
|j}}||d||dtj
ddi}||t	j||tj||||tj|n6||j
d||jd||rt	j|tjd	krd
}nd}	tj|}||j|j||j|n#t.$rYnwxYwdD]k}	|	d
kr.|t2tjjdd|	6tjdd|	}|ltjd}tj
i}||||tjd}||||dS)Nlinuxdarwin)TFutf-8TencodingdelaymsgTestr$z/var/run/syslogz/dev/log)GETPOSTPUTr.	localhostz/logrrk)sysplatformtempfilemkstemposrJunlinkrr?WatchedFileHandlerdevinorYrhandleassertFalsepathexistsrB
SysLogHandlerfacilityLOG_USER
unixsocketOSErrorr
ValueErrorHTTPHandlerBufferingHandlershouldFlush)
rCexistingfdfnrQr7r8rsocknamemethods
          rGtest_builtin_handlersz!HandlerTest.test_builtin_handlers/s%<...)
"
"!)++B"IbMMM$77WTX7YY0 uaeC$$S"---$$S"----ufo>>AHHQKKKIbMMM$$RW^^B%7%7888HHQKKKOOBGNN2$6$67777$$QUB///$$QUB///			"IbMMM|x'',%
$228<<  QZ888---				



,		F!!*g.>.J"-vv????$00ffMM				--a00!"%%

a(()))				--a00q))***						s$A-I
IIc@	tj\}}tj|tj|tj|}tj|dfftj	j
|dfftj	j|dfff}tj
dvr|tj	j|dfffz
}|D]g\}}||ddi}|tj||tj|hdS)NwarQr"r'r%)r2r3r4rJr5pathlibPathrFileHandlerr?RotatingFileHandlerTimedRotatingFileHandlerr0r1r6rBr;r<)rCrGrHpfncasesclsargsrQs        rGtest_path_objectszHandlerTest.test_path_objectses	
!##B

	"


l2(3*5%9C:F%>c
K
<...w':S#JGIIE		ICT,G,,AOOBGNN2..///
GGIIIIbMMMM			rintz/WatchedFileHandler not appropriate for Windows.z'Emscripten cannot fstat unlinked files.walltimec	Dfd}d}d}d_d_dD]}tjdd\}}t	j|t
j|||f}d|_|	tj|d|	}tj
d
}	||		t|D]}
t!jdtjdd
i}	t!j_||[#t($r!t+djdjwxYw	||tj|rt	j|#||tj|rt	j|wwxYwdS)Nct|D]j}	tj|tj_n#t
$rYnwxYwtjdtjddzkdS)NgMbp?r)	ranger4r5time
deletion_timerAsleeprandomrandint)fnametries_rCs   rGremove_loopz*HandlerTest.test_race.<locals>.remove_loops5\\
9
9Ie$$$)-D&&D
56>!Q#7#778888

9
9s,A
A
AiFT.logztest_logging-3-targetrWTr%r&z'%(asctime)s: %(levelname)s: %(message)s{Gzt?r*testingzDeleted at z, opened at )handle_timer`r2r3r4rJ	threadingThreaddaemonstartrr?r6r:r=r^r_rarr9	Exceptionprintrr;r<r5)rCrg	del_count	log_countr(rGrHremoverrQrrfrs`           rG	test_racezHandlerTest.test_race|s)	9	9	9	9	9		!"	"	"E%f.?@@FBHRLLL&kYPPPG!GNMMOOO 33BPU3VVA!"KLLA
NN1
"y))

AJu%%%-ui.ABBA+/9;;($040B0B0B040@0@BCCC	
			7>>"%%"IbMMM			7>>"%%"IbMMMM"1	"	"s%	;F?-D32F?3+EF??AHc~	Gddtj}|ttjd||jjjd_	|
ttjd|
ttjdtjd}|
|tjt!jt!jfd}t!j|d	}|t+j}|dkrE	|d
t+jddS#t+jdwxYw|d|t7j|ddS)
Nc$eZdZfdZdZxZS)AHandlerTest.test_post_fork_child_no_deadlock.<locals>._OurHandlercttjt	ddd|_dS)Nz	/dev/nullwtr%r'r5)super__init__rr8opensub_handlerrC	__class__s rGrzJHandlerTest.test_post_fork_child_no_deadlock.<locals>._OurHandler.__init__sN  """#*#8TGDDD$F$F$F   ric|j	|j||jdS#|jwxYwr)racquirerreleasers  rGrzFHandlerTest.test_post_fork_child_no_deadlock.<locals>._OurHandler.emitsi ((***/$))&111$,,.....D$,,....sAA+rprqrrrr
__classcell__rs@rG_OurHandlerr{sL
F
F
F
F
F

/
/
/
/
/
/
/rirrz*because we need at least one for this testrk test_post_fork_child_no_deadlockc`tj		dn#wxYw	tjdS#tjwxYw)N?)rr rsetwaitrr-)+fork_happened__release_locks_and_end_threadlocks_held__ready_to_forkrefed_hsrGlock_holder_thread_fnzKHandlerTest.test_post_fork_child_no_deadlock.<locals>.lock_holder_thread_fns """
'!!!&-11333@DDSIIIOO%%%%GOO%%%%%$&&&&&$&&&&s"B)A)B)A??BB-z,test_post_fork_child_no_deadlock lock holder)rkrEz#Child process did not deadlock. \o/z&Parent process returned from fork. \o/)exitcode)rrrYrZr!rrr5rJrE
assertGreater_at_fork_reinit_lock_weaksetrrAr6r7roEventrprrrr4forkr_exitrrrwait_process)	rCrtest_loggerrlock_holder_threadpidrrrs	      @@@rGrz,HandlerTest.test_post_fork_child_no_deadlocks4	M	/	/	/	/	/'/	/	/	/	
W.//333+--+28999C3w01115553wCDDaHHH'(JKKw'''W]+++$-O$5$5!6?o6G6G3	'	'	'	'	'	'	'2'-,CEEE	  """!&&(((gii!88
  !GHHH
FGGG7;;===##%%% q111111s&GG'N)rprqrrr rKrXunittestskipIfr4rEr
is_emscriptenrrequires_working_threadingrequires_resourcerx
requires_forkskip_if_asan_forkrrsrirGrr&s===444l.X_RW_&WXXX_H1022Wz***"*"+*32YX*"`W0022H2H232H2H2H2rirceZdZdZdS)	BadStreamc td)Ndeliberate mistake)RuntimeError)rCdatas  rGwritezBadStream.writes/000riN)rprqrrrrsrirGrrs#11111rirceZdZdZdS)TestStreamHandlerc||_dSr)error_recordrs  rGhandleErrorzTestStreamHandler.handleErrors"riN)rprqrrrrsrirGrrs######rirc eZdZejZdZdS)StreamWithIntNamerN)rprqrrrrlevelrErsrirGrrsNEDDDrirc eZdZdZdZdZdS)StreamHandlerTestctt}tji}tj}	||||j|tjt}tj
5}||d}|||dddn#1swxYwYdt_tj
5}|||
d|dddn#1swxYwY|t_dS#|t_wxYw)Nz"
RuntimeError: deliberate mistake
Fr)rrrrraiseExceptionsr9assertIsrr8rcaptured_stderrassertInrWrY)rCrQr	old_raisestderrr*s      rGtest_error_handlingz%StreamHandlerTest.test_error_handling
sikk**!"%%+		0
HHQKKKMM!.!,,,%ikk22A(**
6f<

c6??#4#4555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
',G#(**
8f  V__%6%6777
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8'0G###iG#////sUA#E9 AC, E9,C00E93C04"E9>E E9 E$$E9'E$(E99Fch	tj}tj}||}||tj||}|||||}||dSr)	rr8r3r4	setStreamrr0rassertIsNone)rCrQr5oldrds     rGtest_stream_settingz%StreamHandlerTest.test_stream_setting#s	
!##kk&!!

c3:&&&S!!

ff%%%S!!&!!!!!rictjt}|t	|ddS)Nz<StreamHandler 2 (NOTSET)>)rr8rrYreprrs  rG'test_can_represent_stream_with_int_namez9StreamHandlerTest.test_can_represent_stream_with_int_name1s<!"3"5"566a">?????riN)rprqrrrrrrsrirGrrsF000,"""@@@@@rirc.eZdZ	dZdZdZdZdZdS)TestSMTPServerctj||d|d|jd|_||_d|_d|_||_	dS)NT)mapdecode_datarkF)
r
SMTPServerrsocketgetsocknameport_handler_thread_quit
poll_interval)rCaddrrrsockmaps     rGrzTestSMTPServer.__init__Msj
!!$d.2	"	4	4	4K++--a0	

*ric8	|||||dSr)r)rCpeermailfromrcpttosrs     rGprocess_messagezTestSMTPServer.process_messageVs'		


dHgt44444ric	tj|j|jfx|_}d|_|dSNrjTrorp
serve_foreverrrrqrrrCts  rGrrzTestSMTPServer.startbS	%+43E262D1FHHH	Hq						ricl	|js+t||jd|j)dSdS)Nrk)rcount)rrloop_map)rCrs  rGrzTestSMTPServer.serve_foreverksS	*	AMM-TYaM@@@*	A	A	A	A	Aric	d|_tj|jd|_|t
|jddS)NT)r
ignore_all)rrjoin_threadrrJr	close_allrrms rGstopzTestSMTPServer.stopvsX	
$T\222

tyT:::::riN)rprqrrrrrrrrrsrirGrr8sg(+++
5
5
5	A	A	A	;	;	;	;	;rirc2eZdZ	dZdZfdZdZxZS)ControlMixinc`d|_||_||_tj|_dSr)rrrrorready)rCrrs   rGrzControlMixin.__init__s+*
_&&


ric	tj|j|jfx|_}d|_|dSrrrs  rGrrzControlMixin.startrric	|jtt||dSr)rrrrr)rCrrs  rGrzControlMixin.serve_forevers@		

lD!!//
>>>>>ric	||j tj|jd|_||jdSr)shutdownrrrserver_closerrLrms rGrzControlMixin.stopsd		


<#(666DL
ri)rprqrrrrrrrrrs@rGrrsj'''?????							rirc"eZdZ			ddZdZdS)TestHTTPServerrFNcGfddttj||t|||||_dS)Nc2eZdZddZdZfdZxZS)=TestHTTPServer.__init__.<locals>.DelegatingHTTPRequestHandlerNcX|dr|jSt|)Ndo_)
startswithprocess_requestAttributeError)rCrEdefaults   rG__getattr__zITestHTTPServer.__init__.<locals>.DelegatingHTTPRequestHandler.__getattr__s-??5))0//$T***ric:|j|dSrserverrrms rGrzMTestHTTPServer.__init__.<locals>.DelegatingHTTPRequestHandler.process_request$$T*****ricHrt|j|g|RdSdSr)rlog_message)rCformatrWDelegatingHTTPRequestHandlerrrs   rGrzITestHTTPServer.__init__.<locals>.DelegatingHTTPRequestHandler.log_messagesW;,E6   +F;59;;;;;;;;rir)rprqrrrrrr)rrrs@rGrrsf
+
+
+
+

+
+
+
;
;
;
;
;
;
;
;
;
;
;rir)rrrrsslctx)rCrrrrr	rs    ` @rGrzTestHTTPServer.__init__sy	;	;	;	;	;	;	;	;+A	;	;	;	D$(DEEEdG];;;ric	|j\}}|jr|j|d}n5#t$r(}t
jd|zd}~wwxYw||fS)NT)server_sidezGot an error:
%s
)racceptr	wrap_socketrAr0rr)rCsockres    rGget_requestzTestHTTPServer.get_requests	++--JD${
G{..t.FF			J2Q6777	Tzs?A
A4#A//A4)rFN)rprqrrrrrsrirGrrsD	58#'&					rirc0eZdZ	dZ		ddZfdZxZS)
TestTCPServerTrcGddt}tj||||t|||dS)NceZdZdZdS);TestTCPServer.__init__.<locals>.DelegatingTCPRequestHandlerc:|j|dSrrrms rGr9zBTestTCPServer.__init__.<locals>.DelegatingTCPRequestHandler.handlerriN)rprqrrr9rsrirGDelegatingTCPRequestHandlerrs#
+
+
+
+
+rir)rrrr)rCrrrbind_and_activaters      rGrzTestTCPServer.__init__sl	+	+	+	+	+*>	+	+	+	#D$0K$5	7	7	7dG];;;;;rictt||jd|_dSNrk)rrserver_bindrrrrs rGrzTestTCPServer.server_bind=
mT""..000K++--a0			rirT)rprqrrallow_reuse_addressrrrrs@rGrrs_47#'<<<<111111111rirc6eZdZ			ddZfdZfdZxZS)
TestUDPServerrTcGfddttj|||t|||d|_dS)Nc(eZdZdZfdZxZS);TestUDPServer.__init__.<locals>.DelegatingUDPRequestHandlerc:|j|dSrrrms rGr9zBTestUDPServer.__init__.<locals>.DelegatingUDPRequestHandler.handlerric|j}|rC	t|dS#t$r|jjsYdSwxYwdSr)wfilerWrfinishrAr_closed)rCrDelegatingUDPRequestHandlerrs  rGr'zBTestUDPServer.__init__.<locals>.DelegatingUDPRequestHandler.finishsz**,,""94@@GGIIIII""""#{2"!""""""s"AAA)rprqrrr9r'r)rr)s@rGr)r#sM
+
+
+
"
"
"
"
"
"
"
"
"
"rir)F)rrrrr()rCrrrrr)s     @rGrzTestUDPServer.__init__
s~	"	"	"	"	"	"	"*@	"	"	"	#D$$?$5	7	7	7	dG];;;rictt||jd|_dSr)rr rrrrrs rGrzTestUDPServer.server_bind#rricdtt|d|_dS)NT)rr rr(rs rGrzTestUDPServer.server_close's*
mT""//111rir)rprqrrrrrrrs@rGr r sr 58#',11111rir AF_UNIXceZdZejZdS)TestUnixStreamServerNrprqrrrr,address_familyrsrirGr.r.,rir.ceZdZejZdS)TestUnixDatagramServerNr/rsrirGr3r3/r1rir3c(eZdZejZdZdZdS)SMTPHandlerTestci}ttjdf|jd|}|tj|jf}tj|ddd|j	}|
|jdgg|_t
j
ddi}tj|_|||j|j	|||j|
t-|jd	|jd\}}}}	|
|d|
|dg|d
|	||	d|dS)NrMbP?meyouLog)timeoutr*u	Hello ✓rkz
Subject: Log
u

Hello ✓)rrHOSTrrrrrr?SMTPHandlerTIMEOUTrYtoaddrsmessagesrrorhandledr9rrrBis_setrZrendswithrJ)
rCrrrrQrrrrrs
          rG
test_basiczSMTPHandlerTest.test_basic:s!3Q 79Mu '))"FK0((tUE15
)
?
?UG,,,
!5."9:: ((	$,'''


++--...T]++Q///(,
a(8%h4(((5'***

($///

&899:::						ricl|j||jdSr)r@appendrAr)rCrWs  rGrzSMTPHandlerTest.process_messageRs2
T"""riN)rprqrrrLONG_TIMEOUTr>rDrrsrirGr5r54s<"G0rir5c\eZdZ	dZdZdZdZdZej	dZ
dS)MemoryHandlerTestrc,t|tjdtj|j|_tjd|_	d|j	_
|j	|jdS)N
memr)rrHrr?
MemoryHandlerrr9mem_hdlrr
mem_logger	propagaterArms rGrHzMemoryHandlerTest.setUp]sut(66r7?7;~GG
!+E22$%!""4=11111ricl|jt|dSr)rNrJrrRrms rGrRzMemoryHandlerTest.tearDowne0
$ric|j||g|j||g|j|gd}||dD]}t
dD].}|j|/|||j||dt
||dzDz}|||j|||dS)N)r7r{rr})rr~)r]	c0g|]}dt|fS)r7)str).0is  rG
<listcomp>z0MemoryHandlerTest.test_flush.<locals>.<listcomp>s#III1gs1vv.IIIrirK)rOrrnrhrrr^)rClinesnr[s    rG
test_flushzMemoryHandlerTest.test_flushis	
d//11222b!!!T..00111b!!! 1 1 3 3444



	
e$$$	)	)A1XX
;
;%%d&7&7&9&9::::!!%(((
O!!$"3"3"5"5666IIaR8H8HIIIIE!!%((((d//11222e$$$$$ric	|j||g|j||g|j|j|jddg}||tj	
dtj|jd|_|j
|j|j||||j||||j|j|j||dS)NrTrUrKF)rOrrnrhrrKrNrJrr?rMrr9rA)rCr]s  rGtest_flush_on_closez%MemoryHandlerTest.test_flush_on_closes		
d//11222b!!!T..00111b!!!%%dm444

	
e$$$(66r7?7;~7<>>
	
""4=111d//11222e$$$T..00111e$$$%%dm444
e$$$$$ricGdd}||j}	|j|tdD]J}tjd|jd|jdK	|jD]}tj
|dS#|jD]}tj
|wxYw)Nc eZdZdZdZdZdS)ZMemoryHandlerTest.test_race_between_set_target_and_flush.<locals>.MockRaceConditionHandlerc"||_g|_dSr)rNthreads)rCrNs  rGrzcMemoryHandlerTest.test_race_between_set_target_and_flush.<locals>.MockRaceConditionHandler.__init__s (
!ric:|jddSr)rN	setTargetrms rGremoveTargetzgMemoryHandlerTest.test_race_between_set_target_and_flush.<locals>.MockRaceConditionHandler.removeTargets
''-----rictj|j}|j||dS)N)rk)rorprirfrFrr)rCr*threads   rGr9zaMemoryHandlerTest.test_race_between_set_target_and_flush.<locals>.MockRaceConditionHandler.handles?")1BCCC##F+++riN)rprqrrrrir9rsrirGMockRaceConditionHandlerrdsA
"
"
"
.
.
.




rirlrKrlznot flushedflushed)rNrhr^r_rarOrrrfrr)rCrlrkrfrks     rG&test_race_between_set_target_and_flushz8MemoryHandlerTest.test_race_between_set_target_and_flushs								*)$-88		5M##F+++2YY
3
3
5!!!$$]333''	2222
3
!.
5
5 ,V4444
5
5&.
5
5 ,V4444
5sA4B44 CN)rprqrrrVrHrRr_rarrrnrsrirGrIrIVs&3222   %%%8%%%<10225532555rirIceZdZ	dZdS)ExceptionFormatterc"d|djzS)Nz
Got a [%s]r)rp)rCeis  rGformatExceptionz"ExceptionFormatter.formatExceptionsben,,riN)rprqrrrsrsrirGrprps&(-----rirpc<eZdZ	ejZdZdZdZdZe	ddZ
e	ddZd	ezd
zZe	ddZ
d
ZdZdZdZdZdZdZefdZdZdZdZdZdZdZdZdZdZdZdZ d Z!d!Z"d"S)#ConfigFileTest^(\w+) \+\+ (\w+)$aN
    [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=
    a
    [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=
    a
    [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=
    z
sys.stdoutz
sys.stboutzformatter=form1zformatter=misspelled_namea
    [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=zS.ExceptionFormatter
    format=%(levelname)s:%(name)s:%(message)s
    datefmt=
    zclass=StreamHandlerzclass=logging.StreamHandlerag
    [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=
    a%
    [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
    kwargs={'stream': sys.stdout,}

    [formatter_form1]
    format=%(levelname)s ++ %(message)s
    datefmt=
    a
    [loggers]
    keys=root

    [handlers]
    keys=file

    [formatters]
    keys=

    [logger_root]
    level=DEBUG
    handlers=file

    [handler_file]
    class=FileHandler
    level=DEBUG
    args=("{tempfile}",)
    kwargs={{"encoding": "utf-8"}}
    z
    [loggers]
    keys=root

    [handlers]
    keys=screen

    [formatters]
    keys=

    [logger_root]
    level=DEBUG
    handlers=screen

    [handler_screen]
    level=DEBUG
    class=StreamHandler
    args=(sys.stdout,)
    formatter=
    ctjtj|}t	jj|fddi|dS)Nr'r%)r3r4textwrapdedentrconfig
fileConfig)rCconfkwargsfiles    rGapply_configzConfigFileTest.apply_configsA{8?40011!$CCCFCCCCCrictj5}||jt	j}|||||	dg||	gddddS#1swxYwYdSNr|r}r
rcaptured_stdoutrconfig0rrrrnrrhrCoutputrs   rGtest_config0_okzConfigFileTest.test_config0_ok

$
&
&	&&dl+++&((FKK))++,,,LL**,,---!!#
"



!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&B)C

CCc^tj5}tjt	j|j}tj}|	|tj|tj
}|||||dg||gddddS#1swxYwYdSr)rrr3r4rxryrconfigparserConfigParser	read_filerrzr{rrrnrrh)rCrr~cprs     rGtest_config0_using_cp_okz'ConfigFileTest.test_config0_using_cp_oksK

$
&
&	&&;xt|<<==D*,,BLLN%%b)))&((FKK))++,,,LL**,,---!!#
"



!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&sDD""D&)D&ctj5}||tjd}|||||ddg||gddddS#1swxYwYdSNcompiler.parserrr{rr	rrrrrrrnrrhrCrzrrs    rGtest_config1_okzConfigFileTest.test_config1_ok

$
&
&	&&f%%%&'899FKK))++,,,LL**,,---!!#
"




!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&B&CCCcR|t|j|jdSrrrsrconfig2rms rGtest_config2_failurez#ConfigFileTest.test_config2_failure%)T%6EEEEEricR|t|j|jdSrrrsrconfig3rms rGtest_config3_failurez#ConfigFileTest.test_config3_failurerrictj5}||jt	j}	t
#t$rt	jdYnwxYwtj	
d||d|
gddddS#1swxYwYdSNzjust testingrz-ERROR:root:just testing
Got a [RuntimeError]
)rrrconfig4rrr	exceptionr0stdoutseekrYrWrhrs   rGtest_config4_okzConfigFileTest.test_config4_oks+

$
&
&	&&dl+++&((F
2"nn$
2
2
2!.11111
2JOOAV__..A
C
C
C
!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&s0.CAA2/C1A22ACC"%C"c<||jdSN)rzrconfig5rms rGtest_config5_okzConfigFileTest.test_config5_ok!DL11111ric<||jdSr)rconfig6rms rGtest_config6_okzConfigFileTest.test_config6_okrrictj5}||jt	jd}t	jd}|||||	||
gd||
gdddn#1swxYwYtj5}||jt	jd}||j
||||t	jd}|||||	||
gd||
gddddS#1swxYwYdSNrzcompiler-hyphenated)rr)rzr~rcompiler.lexer))rr)r|r)rr)r|r)rrrconfig1arrrrnrcriticalrhconfig7r:rrCrr
hyphenateds    rGtest_config7_okzConfigFileTest.test_config7_oks

$
&
&	&&dm,,,&'899F!*+@AAJKK))++,,,LL**,,--- 1 1 3 3444!!###	
"



!!"%%%'	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&(
$
&
&	&&dl+++&'899FV_---KK))++,,,LL**,,---&'788FKK))++,,,LL**,,--- 1 1 3 3444!!###

"



!!"%%%)	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&%C&DD

D
$EI??JJcd}|5tjdd\}}tj|tjdkr|dd}|j|}|	||	|dddn#1swxYwYtjjd}|
|||dS)	NcV|tj|dSrrJr4removeh1rHs  rGcleanupz/ConfigFileTest.test_config8_ok.<locals>.cleanupC HHJJJIbMMMMMriritest_logging-X-rY\z\\)r2r)check_no_resource_warningr2r3r4rJrEreplaceconfig8rrrrootr?r)rCrrGrHrrs      rGtest_config8_okzConfigFileTest.test_config8_okAs+			
+
+
-
-	'	'%f.?@@FBHRLLLw$ZZf--l))2)66Gg&&&g&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	','*"-----sBB<<CCcj||jtjd}||j||j||j||jd||jdS)Nsome_pristine_loggerF)disable_existing_loggers)rdisable_testrrr:rrBrCrs  rGtest_logger_disablingz$ConfigFileTest.test_logger_disablingXs$+,,,"#9::)))$+,,,((($+eLLL)))))ricd}|||tjjdjddS)Naw
            [loggers]
            keys=root

            [handlers]
            keys=hand1

            [formatters]
            keys=form1

            [logger_root]
            handlers=hand1

            [handler_hand1]
            class=StreamHandler
            formatter=form1

            [formatter_form1]
            format=%(levelname)s ++ %(message)s
            rhand1)rrYrrr?rE)rCtest_configs  rGtest_config_set_handler_namesz,ConfigFileTest.test_config_set_handler_namesasO(	
+&&&*,,5a8=wGGGGGricd}tjtj|}|t
tjj|dS)Na
            [loggers]
            keys=root

            [handlers]
            keys=hand1

            [formatters]
            keys=form1

            [logger_root]
            handlers=hand1

            [handler_hand1]
            class=StreamHandler
            formatter=form1

            [formatter_form1]
            format=%(levelname)s ++ %(message)s

            prince
            )	r3r4rxryrrrrzr{)rCrr~s   rG'test_exception_if_confg_file_is_invalidz6ConfigFileTest.test_exception_if_confg_file_is_invalidysG.{8?;7788,(A4HHHHHrictjdd\}}tj||t
tjj|tj	|dS)Ntest_empty_.inirsuffix)
r2r3r4rJrrrrzr{r)rCrGrHs   rG%test_exception_if_confg_file_is_emptyz4ConfigFileTest.test_exception_if_confg_file_is_emptysV!vFFFB
,(A2FFF
	"




ric\|ttjjddS)Nfilenotfound)rFileNotFoundErrorrrzr{rms rG,test_exception_if_config_file_does_not_existz;ConfigFileTest.test_exception_if_config_file_does_not_exists&+W^-FWWWWWric
	tjd}tjdd\}}	tj||dtj|tj
|dtddd	d
ddd
itj
|dS#tj
|wxYw)Nat
            [formatters]
            keys=default

            [formatter_default]

            [handlers]
            keys=console

            [handler_console]
            class=logging.StreamHandler
            args=tuple()

            [loggers]
            keys=root

            [logger_root]
            formatter=default
            handlers=console
            
test_logging_rrasciir%rkFrz5%(asctime)s [%(process)d] [%(levelname)s] %(message)sz[%Y-%m-%d %H:%M:%S %z]zlogging.Formatter)rdatefmtclass)versionr
formatters)r'defaults)rxrystripr2r3r4rencoderJrrzr{dictr5)rCinirGrHs    rG!test_defaults_do_no_interpolationz0ConfigFileTest.test_defaults_do_no_interpolations<o&'	(!HHHB	HRG,,---HRLLLN%% -2!&]'?%8$$ 



&


 
IbMMMMMBIbMMMMs
A4CC"N)#rprqrrr	rrVrconfig1rrrrrrrrrrrrrrrrrrrrrrrrrrrrsrirGrurus? / I,G4G@H@oolL99Goo/1LMMG*+*+G6oo35RSSG'GT#GLG*L*DDD
&
&
&&&&$&-
&
&
&
&FFFFFF
&
&
&222222)&)&)&V....***HHH0III6XXX*****riruc6eZdZ	eZdZdZdZdZdZ	dZ
dS)SocketHandlerTestr/rc	t|dx|_x|_|_	||j|jdx|_}|n#t$r}||_Yd}~dSd}~wwxYw|j
tj
j}t|jt"r|d|j|_n||jd|_d|_|j|jj
d|j|jt/jd|_dSN{Gz?r/rr)rrHr	sock_hdlrserver_exceptionserver_classaddress
handle_socketrrrArrrr?
SocketHandler
isinstanceserver_addressr^r
log_outputr0rKrAro	SemaphorerArCrrhclss    rGrHzSocketHandlerTest.setUpsa	7t?CCCdnt'<	#'#4#4T\595G$O$O
ODK&LLNNNN			$%D!FFFFF		-f+U33	?!T+v{;;DNN!T&"7>>DN&&t'7'@'CDDD##DN333 *1--<A//
B9BBc:		|jr8|j|j|j|jr|jt|dS#t|wxYwr)rr0rKrJrrrrRrms rGrRzSocketHandlerTest.tearDowns&	$~
' ..t~>>>$$&&&{
#  """d#####Hd####AA>>Bc|j}	|d}t|dkrdStjd|d}||}t||kr;|||t|z
z}t||k;tj|}tj|}|xj	|j
dzz
c_	|j)NTr]>Lr
)
connectionrecvrZstructunpackpickleloadsrrrr*rAr)rCrequestconnchunkslenobjrs       rGrzSocketHandlerTest.handle_sockets!	#IIaLLE5zzA~~=u--a0DIIdOOEe**t##		$U*; < <<e**t##,u%%C*3//FOOvzD00OOL  """	#ric^|jr||jtjd}|d|j|d|j||j	ddS)Ntcpreggs
spam
eggs
)
rskipTestrrrrArrrYrrs  rGtest_outputzSocketHandlerTest.test_outputs 	1MM$/000"5))VV.99999ric|jr||jd|j_|j	t
d#t$r|jdYnwxYw|j	dtj
}||jj|tj
|jj|z
dz|j	ddS)Ng@zDeliberate mistakez
Never sentzNever sent, eitherr7zNor this)rrr
retryStartrrrr0rrr_r	retryTimera)rCnows  rG
test_noserverzSocketHandlerTest.test_noservers 	1MM$/000%(!	53444	5	5	5&&|44444	53444ikk4>3S999
4>+c1E9:::z*****sA$A>=A>N)rprqrrrrrrHrRrrrrsrirGrrsn* LG...4	$	$	$
#
#
#	:	:	:+++++rirctjdd\}}tj|tj||S)Nrz.sockr)r2r3r4rJr)rGrHs  rG_get_temp_domain_socketr%s<

_W
E
E
EFBHRLLLIbMMM
IrizUnix sockets requiredc8eZdZ	eedreZdZdZdS)UnixSocketHandlerTestr,c`t|_t|dSr)rrrrHrms rGrHzUnixSocketHandlerTest.setUp5).00%%%%%riclt|tj|jdSr)rrRrr5rrms rGrRzUnixSocketHandlerTest.tearDown:/""4(((&&&&&riN)	rprqrrhasattrrr.rrHrRrsrirGr!r!-sP4wvy!!,+&&&
'''''rir!c0eZdZ	eZdZdZdZdZdZ	dS)DatagramHandlerTestrc	t|dx|_x|_|_	||j|jdx|_}|n#t$r}||_Yd}~dSd}~wwxYw|j
tj
j}t|jt"r|d|j|_n||jd|_d|_|j|jj
d|j|jt/j|_dSr)rrHrrrrrhandle_datagramrrrArrrr?DatagramHandlerrrr^rrr0rKrArorrArs    rGrHzDatagramHandlerTest.setUpGs^	7t?CCCdnt'<	#'#4#4T\595I4$Q$Q
QDK&LLNNNN			$%D!FFFFF		/f+U33	?!T+v{;;DNN!T&"7>>DN&&t'7'@'CDDD##DN333 ((rc:		|jr|j|jr8|j|j|jt|dS#t|wxYwr)rrrr0rKrJrrRrms rGrRzDatagramHandlerTest.tearDownas&	${
#  """~
' ..t~>>>$$&&&d#####Hd####rctjdd}|jt|d}t	j|}t
j|}|xj|j	dzz
c_|j
dS)Nrrr)r
packpacketrZrr
rrrr*rAr)rCrrr/rrs      rGr*z#DatagramHandlerTest.handle_datagramlsy{4##D		

+l6""&s++6:,,ric|jr||jtjd}|d|j|j|d|j||j	ddS)Nudprrr)
rrrrrrArrLrYrrs  rGrzDatagramHandlerTest.test_outputts 	1MM$/000"5))VV.99999riN)
rprqrrr rrrHrRr*rrsrirGr(r(>s_$ LG)))4	$	$	$
:
:
:
:
:rir(c8eZdZ	eedreZdZdZdS)UnixDatagramHandlerTestr,c`t|_t|dSr)rrr(rHrms rGrHzUnixDatagramHandlerTest.setUps).00!!$'''''riclt|tj|jdSr)r(rRrr5rrms rGrRz UnixDatagramHandlerTest.tearDowns/$$T***&&&&&riN	rprqrrr&rr3rrHrRrsrirGr3r3sP7wvy!!.-(((
'''''rir3c6eZdZ	eZdZdZdZdZdZ	dZ
dS)SysLogHandlerTestrc	t|dx|_x|_|_	||j|jdx|_}|n#t$r}||_Yd}~dSd}~wwxYw|j
tj
j}t|jt"r#||jd|jf|_n||j|_d|_|j|jj
d|j|jt/j|_dS)Nrrri)rrHrsl_hdlrrrrr*rrrArrrr?r=rrr^rrr0rKrArorrArs    rGrHzSysLogHandlerTest.setUpsg	7t=AAAdlT%:	#'#4#4T\595I4$Q$Q
QDK&LLNNNN			$%D!FFFFF		-f+U33	74!6q!96; GHHDLL4 566DL&&t'7'@'CDDD##DL111 ((rc:		|jr|j|jr8|j|j|jt|dS#t|wxYwr)rrr:r0rKrJrrRrms rGrRzSysLogHandlerTest.tearDowns"	${
#  """|
% ..t|<<<""$$$d#####Hd####rcP|j|_|jdSr)r/rrAr)rCrs  rGr*z!SysLogHandlerTest.handle_datagrams%!.ric|jr||jtjd}|d|jtj|	|j
d|jd|j_
|d|jtj|	|j
d|jd|j_|d|jtj|	|j
ddS)Nslhspäm
<11>spämFs	<11>spämuhäm-s<11>häm-späm)rrrrrrArrrGrYrrLr:
append_nulidentrs  rGrzSysLogHandlerTest.test_outputs@ 	1MM$/000"5))Y'.///*@AAA"'Y'.///*<===&Y'.///*GHHHHHric:tjd}|j|j|d|jtj	|
|jddS)Nr>r?r@)rrr:rJrArLrrrrGrYrrs  rGtest_udp_reconnectionz'SysLogHandlerTest.test_udp_reconnections"5))Y'.///*@AAAAAriN)rprqrrr rrrHrRr*rrDrsrirGr8r8sv, LG)))4	$	$	$III&BBBBBrir8c8eZdZ	eedreZdZdZdS)UnixSysLogHandlerTestr,c`t|_t|dSr)rrr8rHrms rGrHzUnixSysLogHandlerTest.setUpr#riclt|tj|jdSr)r8rRrr5rrms rGrRzUnixSysLogHandlerTest.tearDownr%riNr6rsrirGrFrFsP4wvy!!.-&&&
'''''rirFz$IPv6 support required for this test.c2eZdZ	eZdZfdZfdZxZS)IPv6SysLogHandlerTest)z::1rctj|j_t	t
|dSr)rAF_INET6rr0rrJrHrs rGrHzIPv6SysLogHandlerTest.setUps3+1?(
#T**0022222rictj|j_t	t
|dSr)rAF_INETrr0rrJrRrs rGrRzIPv6SysLogHandlerTest.tearDowns3+1>(
#T**3355555ri)	rprqrrr rrrHrRrrs@rGrJrJs`1 LG33333666666666rirJc"eZdZ	dZdZdZdS)HTTPHandlerTestcl	t|tj|_dSr)rrHrorrArms rGrHzHTTPHandlerTest.setUps,	7t ((ric||j|_t|j|_|jdkrI	t	|jd}|j||_n#d|_YnxYw|	d|
|jdS)Nr-zContent-Length)
commandr
r;log_dataintheadersrfiler`	post_data
send_responseend_headersrAr)rCrrlens   rGhandle_requestzHTTPHandlerTest.handle_requests ..
<6!!
&7?+;<==!(!3!3D!9!9
&!%c"""s9A,,	A7c<tjd}|j}||jjddD]}d}|r	ddl}tjt}tj
|dd}||j}|
|||}	n#t$rd}YnwxYwd}d}	t!||jd|	x|_}
|
|
jd
|
jz}|o|}tj|d||	d
|_d|_||jdD]1}
|
|j_|jd}|||j||jjd||j |
|
dkrtC|jj"}n'tC|j#$d}||ddg||ddg||d|g3|j%|j|j|j&dS)Nhttprrhrcertdatazkeycert.pem)cafiler)r	zlocalhost:%dz/frob)foobar)securecontextcredentials)r,r-r?r,r%rEfuncNamerr*)'rrr0rKr?sslr4r;dirname__file__r
SSLContextPROTOCOL_TLS_SERVERload_cert_chaincreate_default_contextImportErrorrr]rrrrrserver_portrCh_hdlrrUrArJrArLrrYrTrqueryrYdecoderrJ)rCrr0rdrrhherelocalhost_certr	rerhost
secure_clientrJr*ds                rGrzHTTPHandlerTest.test_outputs"6**&!!$"2";A">???#0	 0	 F#D

PJJJ7??844D%'W\\$
M%R%RN ^^C,CDDF**>:::!888OOGG#"""!FFF"#1$8K48$I$I$I
IDK&LLNNNL!F$66D"-vM!*66tW>K?FCQ7SSDK!DM""4;///)
2
2%+"""$$$S!!!!!###  !3W===  v666U?? !455AA !6!6w!?!?@@A  6VH555  :@@@  5C51111K**4;777Ka0	 0	 sCC)(C)N)rprqrrrHr]rrsrirGrPrPsF )))5 5 5 5 5 rirPc(eZdZ	dZdZdZdZdS)
MemoryTestcJ	t|i|_dSr)rrH
_survivorsrms rGrHzMemoryTest.setUpSs"Ftric	|D]<}t|t|f}tj||j|<=dSr)idrweakrefrefr|)rCrWrkeys    rG_watch_for_survivalzMemoryTest._watch_for_survivalXsO		4	4CS''499$C#*;s#3#3DOC  	4	4ric0	tjg}|jD]'\\}}}|||(|r<|dt
|d|fzdSdS)Nz;%d objects should have survived but have been destroyed: %sz, )gccollectr|rrFr]rZr)rCdeadid_repr_rs     rG_assertTruesurvivalzMemoryTest._assertTruesurvival_sI

!%!6!6!8!8	#	#LS%#suu}E"""	NII.14TDIIdOO0LM
N
N
N
N
N	N	Nric~|jtjtjd}|||tj|j||||	dg~|
tjd}|||	ddgdS)Nrb)rbr7r})rbr7r~)r0r6rrrrr7rrnrhr)rCrbrcs   rGtest_persistent_loggersz"MemoryTest.test_persistent_loggersks(	
!!',///&&  %%%W]###t0022333		$##%%&&&!
			
  """&&		$##%%&&&!!
					riN)rprqrrrHrrrrsrirGrzrzOsV4
444
N
N
NrirzceZdZdZdZdS)EncodingTestctjd}tjdd\}}t	j|d}	tj|d}||	|||	||n.#|	||wxYwt|d}	||
||n#|wxYw	tj|rt	j|dSdS#tj|rt	j|wwxYw)Ntestriztest_logging-1-ufoo€r%r~)rrr2r3r4rJrQrArrKrrYr`rstripr;isfiler)rCrrGrHrrrs       rGtest_encoding_plain_filez%EncodingTest.test_encoding_plain_files''!&*;<<B
	)"w???GNN7###
 D!!!!!'***

!!'***

R'***A
  !2!2D999									w~~b!!
	"






rw~~b!!
	"




s<+F0B/*F/+CF/:D>)F>EF6Gc(tjd}d}tjd}d|_tj}||d}tj|}||	|	||
||n.#|
||wxYw|}|
|ddS)Nruдо свиданияcp1251stricts 
)rrcodecs	getwriterr'r3BytesIOr8rArrKrJrWrY)rCrmessagewriter_classr5writerrrgs        rGtest_encoding_cyrillic_unicodez+EncodingTest.test_encoding_cyrillic_unicodes''Q'11 (fh//'//w	KK   g&&&MMOOOO
g&&&MMOOOOOOJKKKKKs;B::+C%N)rprqrrrrrsrirGrrs74LLLLLrirceZdZdZdZdS)WarningsTestc	ntj5tjd|tjdtjdttj}tj	|}tj
d}||tjd|
||}|||ddtj}tjd	td
d|d|}|||d
ddddS#1swxYwYdS)NTFalways)categorypy.warningszI'm warning you...z UserWarning: I'm warning you...
rExplicitdummy.py*z
Dummy linez0dummy.py:42: UserWarning: Explicit
  Dummy line
)warningscatch_warningsrcaptureWarningsrfilterwarningsUserWarningr3r4r8rrAwarnrKrWrJrfindshowwarningrY)rCr5rQrrga_files      rG
test_warningszWarningsTest.test_warningss

$
&
&	F	F#D)))OOG3U;;;#H{CCCC[]]F%f--A&}55Fa   M.///  ###!!A
GGIIIqvv&IJJANNN[]]F [*b!'
7
7
7!!ALLNNNQD
F
F
F)	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	FsF	F**F.1F.ctj5tjd|tjdtjd}||jgtjdtdd|t|jd||jdtjddddS#1swxYwYdS)	NTFrrrrrkr)
rrrrrrrYr?rrrZassertIsInstanceNullHandlerrs  rGtest_warnings_no_handlersz&WarningsTest.test_warnings_no_handlerss2

$
&
&
	K
	K#D)))OOG3U;;;&}55FV_b111 [*bIIIS111555!!&/!"4g6IJJJ
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	K
	KsCC44C8;C8N)rprqrrrrrsrirGrrs:FFF0KKKKKrirc,tj||Sr)rr:)rrs  rG
formatFuncrsVW---riceZdZddZdS)myCustomFormatterNcdSrrs)rCfmtrs   rGrzmyCustomFormatter.__init__srir)rprqrrrrsrirGrrs(





rirc(tjSr)rr8rsrirGhandlerFuncrs """riceZdZdS)
CustomHandlerNrprqrrrsrirGrrDrirc
eZdZ	ejZdZddddiiddddd	d
iddgdd
Zddddiiddddd	d
idddgdiddidZddddiiddddd	d
idddiiddgddZddddiidddddd
idddgdiddidZ	ddddiiddddd	d
idddgdiddidZ
ddddiiddddd	d
idddgdiddidZddddiiddddd	d
idddgdiddidZddedzddiddddd	d
iddgdd
Z
deddedzddeddddddd	d
deidddgdd
Zddddiidedzddd	d
idddgdiddidZddddiidedzddd	ddidddgdiddidZddddiiddddd	d
id ddgdiddidZdd!dddiiddddd	d
iddgdid"ddid#Zdd$dddiiddddd	d
iddgdid"ddid#Zddddiiddddd	d
idddgdiddidZdd$dddiiddd%iid&Zdd$ddd%iiddd%iid&Zddddiid'd(diiddddd	d'gd)iddd'gd*iddgdd+Zddddiiddddd	d
id,dd-idddgdiddid.Zdddiiddddd	d
id,dd-idddgdiddid/Zd0dddiiddddd	d
id,dd-idddgdiddid.Zddddiiddddd	d1d2d3d4iddgdd
ZGd5d6ej Z!dd7e!d8d9d:d;d<id=iddd7dd	d
iddgdd
Z"dd>d?d@dAiddd>dBdCdDd>dEddFdGdHddIgdJdKidLZ#ddedzdd!dMiddddd	d
idNddgdJdKidLZ$ddedzdd!dOiddddd	d
idNddgdJdKidLZ%ddedPzdd!dOiddddd	d
idNddgdJdKidLZ&ddedd!dMiddddd	d
idNddgdJdKidLZ'dQZ(dRZ)efdSZ*dTZ+dUZ,dVZ-dWZ.dXZ/dYZ0dZZ1d[Z2d\Z3d]Z4d^Z5d_Z6d`Z7daZ8dbZ9dcZ:ddZ;deZ<dfZ=dzdhZ>e?j@diZAe?j@djZBe?j@dkZCdlZDdmZEdnZFdoZGdpZHdqZIdrZJdsZKdtZLduZMdvZNdwZOdxZPdyZQdgS){ConfigDictTestrvrkform1rz%(levelname)s ++ %(message)srlogging.StreamHandlerrzext://sys.stdout)r	formatterrr5rrr?)rrr?rrr7r)rrr?loggersrzext://sys.stdboutNTOSETWRANINGmisspelled_namez.ExceptionFormatterz"%(levelname)s:%(name)s:%(message)s)()rz.formatFunc)rform2form3r)rhand2z.CustomHandlerzinvalid parameter name)rrrr5rrF)compilerr)rrrr?rrTr)rincrementalr?rfilt1rE)rrrr5filtersrr)rrrr?rrzcfg://true_formatterszcfg://handler_configs[hand1])rtrue_formattershandler_configsrr?rr)rrrr?rrrrc!
)rb
terminator)rrrr5rc"eZdZdZfdZxZS)ConfigDictTest.CustomFormatterrcFt|Sr)rrrCrrs  rGrz%ConfigDictTest.CustomFormatter.formatGs77>>&)))ri)rprqrrcustom_propertyrrrs@rGCustomFormatterrDs=	*	*	*	*	*	*	*	*	*rircustom{%Y-%m-%d %H:%M:%S	{message}rvalue)rstylerrrmySimpleFormatterz1%(asctime)s (%(name)s) %(levelname)s: %(message)s$)rr)rrrzlogging.handlers.MemoryHandler
fileGlobal)rcapacityrrkr)rbufferGlobalmymodulertrue)rr?rP)rrr?r)rrvalidatemy_test_logger_custom_formatter)rrrz.myCustomFormattercDtj|dSr)rrz
dictConfig)rCr|s  rGrzConfigDictTest.apply_configs!!$'''''rictj5}||jt	j}|||||	dg||	gddddS#1swxYwYdSrrrs   rGrzConfigDictTest.test_config0_okrrctj5}||tjd}|||||ddg||gddddS#1swxYwYdSrrrs    rGrzConfigDictTest.test_config1_okrrcR|t|j|jdSrrrms rGrz#ConfigDictTest.test_config2_failurerricR|t|j|jdSr)rrsrconfig2arms rGtest_config2a_failurez$ConfigDictTest.test_config2a_failure%)T%6
FFFFFricR|t|j|jdSr)rrsrconfig2brms rGtest_config2b_failurez$ConfigDictTest.test_config2b_failurerricR|t|j|jdSrrrms rGrz#ConfigDictTest.test_config3_failurerrictj5}||j	t	#t$rtjdYnwxYwtj	d|
|d|gddddS#1swxYwYdSr)
rrrrrrrr0rrrYrWrhrCrs  rGrzConfigDictTest.test_config4_ok!s

$
&
&	&&dl+++
2"nn$
2
2
2!.11111
2JOOAV__..A
C
C
C
!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&-C>ACAACCCctj5}||j	t	#t$rtjdYnwxYwtj	d|
|d|gddddS#1swxYwYdSr)
rrrconfig4arrrr0rrrYrWrhrs  rGtest_config4a_okzConfigDictTest.test_config4a_ok0s

$
&
&	&&dm,,,
2"nn$
2
2
2!.11111
2JOOAV__..A
C
C
C
!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&rc<||jdSrrrms rGrzConfigDictTest.test_config5_ok?rricR|t|j|jdSr)rrsrrrms rGtest_config6_failurez#ConfigDictTest.test_config6_failureBs%)T%6EEEEErictj5}||jt	jd}|||||	ddg||	gdddn#1swxYwYtj5}||j
t	jd}||jt	jd}|||||	ddg||	gddddS#1swxYwYdS)Nrrrrrrr~r|r)
rrrrrrrrnrrhrrBrrs   rGrzConfigDictTest.test_config7_okEsF

$
&
&	&&dl+++&'899FKK))++,,,LL**,,---!!#
"




!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&
$
&
&
	&&dl+++&'899FOOFO,,,&'788FKK))++,,,LL**,,---!!#
"




!!"%%%
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&
	&s%B+CCC)CGGGcTtj5}||jt	jd}|||||	ddg||	gdddn#1swxYwYtj5}||j
t	jd}||j||||t	jd}|||||	gd||	gddddS#1swxYwYdS)Nrrrrr)rrrrr|r)
rrrrrrrrnrrhrr:rrs   rGtest_config_8_okzConfigDictTest.test_config_8_okbs

$
&
&	&&dl+++&'899FKK))++,,,LL**,,---!!#
"




!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&
$
&
&	&&dl+++&'899FV_---KK))++,,,LL**,,---&'788FKK))++,,,LL**,,---!!###

"



!!"%%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&s%B+CCC)D'HH!$H!ctj5}||jt	jd}t	jd}|||||	||
gd||
gdddn#1swxYwYtj5}||jt	jd}||j
||||t	jd}|||||	||
gd||
gddddS#1swxYwYdSr)rrrrrrrrnrrrhconfig8ar:rrs    rGtest_config_8a_okz ConfigDictTest.test_config_8a_oks

$
&
&	&&dm,,,&'899F!*+@AAJKK))++,,,LL**,,--- 1 1 3 3444!!###	
"



!!"%%%'	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&(
$
&
&	&&dm,,,&'899FV_---KK))++,,,LL**,,---&'788FKK))++,,,LL**,,--- 1 1 3 3444!!###

"



!!"%%%)	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&rctj5}||jt	jd}|||g|||j	|||g|||j
|||dg|ddddS#1swxYwYdS)Nrrr)rrrconfig9rrrrnrhconfig9aconfig9brs   rGtest_config_9_okzConfigDictTest.test_config_9_oksy

$
&
&	&dl+++&'899FKK))++,,,!!"V!444dm,,,KK))++,,,!!"V!444dm,,,KK))++,,,!!#
"


																		sDD??EEctj5}||jt	jd}||t	jd}||t	jd}||t	jd}|||	ddg|ddddS#1swxYwYdSNrrrzcompiler.parser.codegen)rr{rr)
rrrconfig10rrrrnrrhrs   rGtest_config_10_okz ConfigDictTest.test_config_10_oksp

$
&
&	&dm,,,&'899FNN4,,..///&z22FNN4,,..///&'788FNN4,,..///&'@AAFLL**,,---!! #
"


																		sD EEEc:||jdSr)rconfig11rms rGtest_config11_okzConfigDictTest.test_config11_oksT]+++++ricR|t|j|jdSr)rrsrconfig12rms rGtest_config12_failurez$ConfigDictTest.test_config12_failure%)T%6
FFFFFricR|t|j|jdSr)rrsrconfig13rms rGtest_config13_failurez$ConfigDictTest.test_config13_failurerrictj5}||jtjd}||jd||jdt	j	d|
|dddddS#1swxYwYdS)NrrcrExclamationz
Exclamation!
)
rrrconfig14rr!rYrbrrrBrWrC)rCrrQs   rGtest_config14_okzConfigDictTest.test_config14_oks

$
&
&	J&dm,,,!'*AQUE***Q\5111OM***OOFOO--667GHHIII
	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	JsB1CCCcd}|5tjdd\}}tj|ddd|ddid	dgid
}||||dddn#1swxYwYtjjd}|	|||dS)NcV|tj|dSrrrs  rGrz0ConfigDictTest.test_config15_ok.<locals>.cleanuprririrrkr~zlogging.FileHandlerr%)rfilenamer'r?rr?rr)
rr2r3r4rJrrrr?r)rCrrGrHrzrs      rGtest_config15_okzConfigDictTest.test_config15_oks/			
+
+
-
-	&	&%f.?@@FBHRLLL!6$&$+F
f%%%f%%%'	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&*,'*"-----sA&B

BBc||jtjd}||jjddS)Nrr)rconfig17rr!rYrrrs  rGtest_config17_okzConfigDictTest.test_config17_ok
sF$-(((g&4g>>>>>riNc|d}tjd|}||j|j}|j	tj	tj
tj}|d|
d|ftjdt!|}||z}d}t!|}	|	dkr-|||d}
||
z
}|	|
z}	|	dk-||jdtjt)j|dS#|jdtjt)j|wxYw)Nr%rg@r/r)rrrzlistenrrrrrrLrrNSOCK_STREAM
settimeoutconnectr
r.rZsendrJ
stopListeningrr)rCtextverifyrrrrrg	sentsofarleftsents           rGsetup_via_listenerz!ConfigDictTest.setup_via_listener
s{{7##N!!!V,,					v	

	,=1CDDDOOC   LL+t,---;tSYY//DtAIq66D((yy9:://T!	((
JJLLL
GLLN((***(+++++
GLLN((***(++++sCF&&AG4ctj5}|tj|jt
jd}||	t
jd}||	t
jd}||	t
jd}|
|	|ddg|ddddS#1swxYwYdSr)rrr8jsondumpsrrrrrnrrhrs   rGtest_listen_config_10_okz'ConfigDictTest.test_listen_config_10_ok$
sz

$
&
&	&##DJt}$=$=>>>&'899FNN4,,..///&z22FNN4,,..///&'788FNN4,,..///&'@AAFLL**,,---!! #
"


																		sD2EEEctj5}|tjt
jtjd}|	|
||
|ddg||gddddS#1swxYwYdSr)
rrr8rxryrurrrrrnrrhrs   rGtest_listen_config_1_okz&ConfigDictTest.test_listen_config_1_ok8
s#

$
&
&	&&##HON4J$K$KLLL&'899FKK))++,,,LL**,,---!!#
"




!!"%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&sCC##C'*C'cXd}d}tjd}tjtj}t
j5}||||	|
||
dddn#1swxYwY|g||ddgdt
j5}||tjd}|	|
||
dddn#1swxYwY|d	d
g||ddgdt
j5}||ddd|tjd}|	|
||
dddn#1swxYwY|dd
g||ddgddS)NcdSrrsstuffs rGverify_failz6ConfigDictTest.test_listen_verify.<locals>.verify_failJ
s4ric|dddS)Nr)rsrAs rGverify_reversez9ConfigDictTest.test_listen_verify.<locals>.verify_reverseM
s2;rirrrrr)rbrrr)rr)
rrrxryrurrrr8rrnrrh)rCrCrErto_sendrs      rGtest_listen_verifyz!ConfigDictTest.test_listen_verifyG
s						"#455/."899
$
&
&	.&##G[999KK))++,,,LL**,,---		.	.	.	.	.	.	.	.	.	.	.	.	.	.	.
	
b000
+		,	,	,
$
&
&	.&##G,,,&'899FKK))++,,,LL**,,---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	

				
	

+		,	,	,
$
&
&	.&##GDDbDM>BBB&'899FKK))++,,,LL**,,---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	

				
	

+		,	,	,	,	,s9A%B==CCA8FFFBI--I14I1cR|t|j|jdSr)rrBrout_of_orderrms rGtest_out_of_orderz ConfigDictTest.test_out_of_order
s&*d&79JKKKKKric`tj|j}d|ddd<||t	jdjd}||jtj	||j
jtjdS)Nz-${asctime} (${name}) ${levelname}: ${message}rrrrr)
r"deepcopyrIrrrr?rrkrr_styleStringTemplateStylerCrzrs   rG#test_out_of_order_with_dollar_stylez2ConfigDictTest.test_out_of_order_with_dollar_style
st011>m|01(;&!!!#J//8;gngo>>>g/6%9	;	;	;	;	;ric||jtjdjd}||jtdSNrr)rcustom_formatter_class_validaterrr?rrrprCrs  rG)test_custom_formatter_class_with_validatez8ConfigDictTest.test_custom_formatter_class_with_validate
sS$>???#$EFFOPQRg/1CDDDDDric||jtjdjd}||jtdSrR)r custom_formatter_class_validate2rrr?rrrprTs  rG*test_custom_formatter_class_with_validate2z9ConfigDictTest.test_custom_formatter_class_with_validate2
sS$?@@@#$EFFOPQRg/1CDDDDDric|j}d|ddd<||tjdjd}||jtdS)Nrrrrrr)	rSr"rrrr?rrrprOs   rG9test_custom_formatter_class_with_validate2_with_wrong_fmtzHConfigDictTest.test_custom_formatter_class_with_validate2_with_wrong_fmt
sz5::<<14|W%g.	
&!!!#$EFFOPQRg/1CDDDDDricR|t|j|jdSr)rrBr custom_formatter_class_validate3rms rG*test_custom_formatter_class_with_validate3z9ConfigDictTest.test_custom_formatter_class_with_validate3
s&*d&79^_____ricR|t|j|jdSr)rrBrcustom_formatter_with_functionrms rG,test_custom_formatter_function_with_validatez;ConfigDictTest.test_custom_formatter_function_with_validate
s&*d&79\]]]]]ricdgdddddddd	gd
ggdd}tj|}||d
d||dd||dd||dd	||dd||dd|d}||dgd|t|jd|t|jd|t|jddS)N)rkr)rNbcrrb)rxr)g)rQr[jrlrr^)ozcfg://alistp)atuplealistadictnest1nest2nest3zcfg://atuple[1]rzcfg://alist[1]rczcfg://nest1[1][0]rQzcfg://nest2[1][1]z
cfg://adict.dzcfg://adict[f]zcfg://nest3rkzcfg://nosuchzcfg://!zcfg://adict[2])	rrzBaseConfiguratorrYconvertpoprKeyErrorrB)rCrxbcrs    rGtest_baseconfigzConfigDictTest.test_baseconfig
s$__Q((+C:s+...


^
,
,Q
/
/$566:::$455s;;;$788#>>>$788#>>>O44c:::$455q999JJ}%%q???333(BJ???*bj)<<<(BJ0@AAAAAricddlmGfddtj}dddg}|dd	g
}dd||d
iddgdd}t	j5}||tjddddn#1swxYwY||	ddS)Nr)
namedtuplec,eZdZfdZfdZxZS)1ConfigDictTest.test_namedtuple.<locals>.MyHandlercHtj|i|||_dSr)rrresource)rCr{rWr}rrws    rGrz:ConfigDictTest.test_namedtuple.<locals>.MyHandler.__init__
s*  $1&111,4


ric|xjd|jjz
c_t|SN )r*r{typerrrs  rGrz6ConfigDictTest.test_namedtuple.<locals>.MyHandler.emit
s7

6$-"4666

ww||F+++rir)rrws@rG	MyHandlerry
sW
5
5
5
5
5
5
,
,
,
,
,
,
,
,
,rirResourcerlabelsmy_typerN)rrrk	myhandler)rr{rrr'zsome logzsome log my_type
)
collectionsrwrr8rrrrrYrW)rCrrr{rzrrws      @rGtest_namedtuplezConfigDictTest.test_namedtuple
sb******	,	,	,	,	,	,	,-	,	,	,:j68*<==8C5999# ( &K=AA	
	

$
&
&	%&f%%%L$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	
**,@AAAAAs *BBBctd}|dd|gddgtj_dS)NcdSrrs)rfs rGrzAConfigDictTest.test_config_callable_filter_works.<locals>.filter_
s1rirkr7rrrrrrrrCrs  rG!test_config_callable_filter_worksz0ConfigDictTest.test_config_callable_filter_works
s[			G	"J"J

			')###rictjd}|dd|gddgtj_dS)Nrrkr7rr)rrrrrrs  rGtest_config_filter_worksz'ConfigDictTest.test_config_filter_works
s[.--G	"J"J

			')###ricGdd}|}|dd|gddgtj_dS)NceZdZdZdS)BConfigDictTest.test_config_filter_method_works.<locals>.FakeFiltercdSrrs)rCrfs  rGrzIConfigDictTest.test_config_filter_method_works.<locals>.FakeFilter.filter
sqriNrrsrirG
FakeFilterr
s#




rirrkr7rrr)rCrrs   rGtest_config_filter_method_worksz.ConfigDictTest.test_config_filter_method_works
s								*,,G	"J"J

			')###ric	Gdd}dd|fD]*}|t|jdd|gdd+dS)NceZdZdS);ConfigDictTest.test_invalid_type_raises.<locals>.NotAFilterNrrsrirG
NotAFilterr
srirrkr7rr)rrBr)rCrrs   rGtest_invalid_type_raisesz'ConfigDictTest.test_invalid_type_raises
s{a.		G!gY'O'OPP



		ricddddddidddgdid	}tjd}||j||||j|d
di||j|d=||||jdS)NrkFconsoler7r)rrrNr)rrr?rrr)rrr:rrrB)rCrzrs   rG
test_90195zConfigDictTest.test_90195s(-$4$!*

 "3'')))&!!!)))9a.)))(((-.&!!!)))))rir)Rrprqrrr	rrVrrrrrrrrrprrrrrrrrrrrrrrrr"rr:rr*rIrSrWr\r_rrrrrrrrrrrrr	rrrrrrr#r(r+r8rrequires_working_socketr<r>rGrJrPrUrXrZr]r`rurrrrrrrsrirGrrsM3 / I,9

1%".	
 !

G.9

1%".	

!%Y!!

i
+G89

1%".	

'!
 !

)H89

1%"/	

!%Y!!

i
+G89

1%".	

!%Y!!

i
+H:9

1%".	

!%Y!!

i
+H89

1/".	

!%Y!!

i
+G8"77?

1%".	
%Y

!G0*?
 -/?
"?



 2%".	{



%Y

7HF9

"%55%".	

!%Y!!

i
+G:9

"%55%"..

!%Y!!

i
-G<9

1%".	

!%Y  

i
+G<%*9

1%".	
"%Y 


i
1G>%)9

1%".	
"%Y 


i
1H<9

1%#.	

#%Y!!

h
+G6)

&!


H &

&!


H"9

*

1%".$I

!$I!!
 !

7HF9

1%".	
/4

!%Y!!

i
3HB
9

1%".	
/4

!%Y!!

i
1H>9

1%".	
/4

!%Y!!

i
3H@9

1%". "'		
 !

'H2*****'+***%.%%w


1&".	
 !

+H8M""
1 0:0& 





 +,#
-LB!66>!

0$!,	

. $I#00
#''#8!$99>!

0$!,	

. $I#00
#(($8!$88>!

0$!,	

. $I#00
#(($8 >!

0$!,	

. $I#00
#&&"4(((
&
&
&&-
&
&
&
&FFFGGGGGGFFF
&
&
&
&
&
&222FFF&&&:&&&B)&)&)&V$&,,,GGGGGGJJJ...<???
,,,,8%W$&&'&&%W$&&&&'&&%W$&&<,<,'&<,|LLL;;;EEE
EEE
EEE```^^^BBB,BBB>))))))	)	)	)*****rirceZdZdZdZdS)ManagerTestcgGfddtj}tjd}|t|jt|||d}|dtjd|	dgdS)NceZdZdfd	ZdS)6ManagerTest.test_manager_loggerclass.<locals>.MyLoggerNc2|dSrrF)rCrr*rWexc_infoextraloggeds      rG_logz;ManagerTest.test_manager_loggerclass.<locals>.MyLogger._log)s

c"""""riro)rprqrrr)rsrGMyLoggerr(s3
#
#
#
#
#
#
#
#rirrzshould appear in loggedzshould not appear in logged)
rLoggerManagerr	TypeErrorsetLoggerClassrVrrrY)rCrmanrrs    @rGtest_manager_loggerclassz$ManagerTest.test_manager_loggerclass%s	#	#	#	#	#	#	#w~	#	#	#od##)S%7===8$$$v&&01115666";!<=====rictjd}t}||||j|dSr)rrobjectsetLogRecordFactoryrYlogRecordFactory)rCrres   rGtest_set_log_record_factoryz'ManagerTest.test_set_log_record_factory5sMod##88)))-x88888riN)rprqrrrrrsrirGrr$s2>>> 99999rirceZdZdZdS)ChildLoggerTestctj}tjd}tjd}|d}|d}||tjd||tjd|d}|d}|d}||tjd||tjd|||dS)	Nabczdef.ghixyzzuvw.xyzdefghiabc.defzabc.def.ghi)rrgetChildr)rCrl1l2c1c2c3s       rGtest_child_loggersz"ChildLoggerTest.test_child_loggers<s

u
%
%

y
)
)
ZZ


ZZ	
"
"

b'+E22333

b'+I66777
[[


[[


[[
#
#

b'+I66777

b'+M::;;;

b"riN)rprqrrrrsrirGrr;s#




rirceZdZdS)DerivedLogRecordNrrsrirGrrLrrirc eZdZdZdZdZdS)LogRecordFactoryTestcGddtj}t||t|_|j|jtj|_	dS)NceZdZdZdZdS)2LogRecordFactoryTest.setUp.<locals>.CheckingFilterc||_dSr)rV)rCrVs  rGrz;LogRecordFactoryTest.setUp.<locals>.CheckingFilter.__init__Ss
ricnt|}||jurd|d|j}t|dS)NzUnexpected LogRecord type z, expected T)rrVr)rCrrr*s    rGrz9LogRecordFactoryTest.setUp.<locals>.CheckingFilter.filterVsCLLDH$$$IJ HH&C#C..(triN)rprqrrrrrsrirGCheckingFilterrRs2







rir)
rrrrHrrr0rgetLogRecordFactoryorig_factory)rCrs  rGrHzLogRecordFactoryTest.setUpQs
	
	
	
	
	W^
	
	
		t$n%566""4;///#799ric|j|jt|tj|jdSr)r0rrrrRrrrrms rGrRzLogRecordFactoryTest.tearDowncsI%%dk222$#D$566666ric,|t|jj|tjt|j||	dgdS)N)rr|r})
rrr0rrnrrrrrhrms rGtest_logrecord_classz)LogRecordFactoryTest.test_logrecord_classhs)T%5%=++--	/	/	/#$4555t0022333!
					riN)rprqrrrHrRrrsrirGrrOsA:::$777
rirc eZdZdZdZdZdZdZej	e
ejdddZ
ej	e
ejddd	Zej	e
ejddd
ZdS)QueueHandlerTestrct|tjd|_tj|j|_d|_t	j	d|_
d|j
_|j
tj
|j
|jdS)Nr)queF)rrHqueueQueuerr?QueueHandlerque_hdlrrEr
que_loggerrPr6rrArms rGrHzQueueHandlerTest.setUpwst[__
(55djAA
	!+E22$)!  111""4=11111ricl|jt|dSr)rrJrrRrms rGrRzQueueHandlerTest.tearDownrRric|j||tj|jj|j||tj|jj|}|j||j}|	t|tj|
|j|jj|
|j|jf|dfdSr)rrrnrrEmpty
get_nowaitrrrBrr	LogRecordrYrEr*rW)rCr*rs   rGtest_queue_handlerz#QueueHandlerTest.test_queue_handlersd//11222%+tz'<===T..00111%+tz'<===!!$$$z$$&&
4):;;<<<DO$8999$(DI.d<<<<<ric|}tjtj}d}||j||}tj|j}|j	||j
||j
}|||j|||jdS)Nz {name} -> {levelname}: {message})rE	levelnamer)rnrrrrrEr:r;rr=rrrrrYr*r)rCr*rlog_format_str
formatted_msgr
log_records       rGtest_formattingz QueueHandlerTest.test_formattings!!(99	;&--498A3.PP
%do66	
""9---$$$Z**,,

777
(:;;;;;ri
QueueListenerz5logging.handlers.QueueListener required for this testc8ttj}tj|j|}|	|j	|
|j|
|j|
|
n#|
wxYw||tjd||tjd||tjd|ttj}|tjtj|j|d}|	|j	|
|j|
|j|
|
n#|
wxYw||tjd||tjd||tjd	|dS)
Nr{)rrr}r~T)respect_handler_levelrrr)r
rMatcherrr?rrrrrrrnrrrrBmatchesrr|rzrJr6r:)rCrlisteners   rGtest_queue_listenerz$QueueHandlerTest.test_queue_listenersgo//00#11$*gFF	O##D$5$5$7$7888O!!$"3"3"5"5666O$$T%6%6%8%8999MMOOOOHMMOOOOMMNNN
sKKLLL0@#NNOOO

go//00)***#11$*gHL2NN	O##D$5$5$7$7888O!!$"3"3"5"5666O$$T%6%6%8%8999MMOOOOHMMOOOO#NNOOOLLMMM0@#NNOOO

sBC44D
8BKK'ctj|j|j}|	ddznG#t$r:}|}|j|	|Yd}~nd}~wwxYw|j
|	d|||j
dd||j
dddS)NrkrrT
stack_info	TracebackStack)rr?rrr9rrZeroDivisionErrorrrrnrrrYr5rWrr)rCrrexcs    rG&test_queue_listener_with_StreamHandlerz7QueueHandlerTest.test_queue_listener_with_StreamHandlersW#11$*dnMM	I
EEE 	I	I	ICO%%d&7&7&9&9C%HHHHHHHH	I	
d//11dCCC

--//5577==kJJANNN--//5577==gFFJJJJJsA
B
0BB
c|j|j|j|jtj|j	|j}|
|jd||
|jddS)Nrzque -> ERROR: error)rr=r<rrAr9rr?rrrrrrrYr5rWr)rCrs  rG*test_queue_listener_with_multiple_handlersz;QueueHandlerTest.test_queue_listener_with_multiple_handlerss	

""4#6777""4>222#11$*dmLLg&&&

--//55779NOOOOOriN)rprqrrrVrHrRrrr
skipUnlessr&rr?rrrrsrirGrrrs03222   
=
=
=<<<X!1?CCPRRRRBX!1?CCPRRKKRRKX!1?CCPRR	P	PRR	P	P	Prirr)patchceZdZ	dZedZejej	j
ddZejej	j
ddZedZ
dZdZd	S)
QueueListenerTestc	tjd|z}|tjtj|}||tj|}||	d|	d|	d|	d|	d|
|||dS)Nztest_logger_with_id_%sonetwothreefourfive)
rrr6r7r?rrArrrrrrKrJ)	log_queuerBrrrs     rG
setup_and_logzQueueListenerTest.setup_and_logs

&'?%'GHHFOOGM***&33I>>Gg&&&'55i@@HNNKKKKKK   KKKKMMOOO  )))MMOOOOOrir9ct|jD]B}tj}|||d|C||jd|jzddSNrfrz&correct number of handled log messages)r^repeatrrrr~rY
call_countrCmock_handler[rs    rG#test_handle_called_with_queue_queuez5QueueListenerTest.test_handle_called_with_queue_queues4;''
H
H!KMM	""9AA.FGGGG[3Q_E
G
G
G
G
Gricrtjt|jD]j}t	j}|||d|||	k|
|jd|jzddSr)r*skip_if_broken_multiprocessing_synchronizer^r	multiprocessingrrr~rJrrYr
rs    rG test_handle_called_with_mp_queuez2QueueListenerTest.test_handle_called_with_mp_queues
>@@@4;''
(
(+133	""9AA.FGGG!!!%%''''[3Q_E
G
G
G
G
Gric#fK		|V#tj$rgcYSwxYwr)rrr)rs rGget_all_from_queuez$QueueListenerTest.get_all_from_queuesS
1#..000001;


			
s00c	tjt|jD]}t	j}|||d|t|	|}|j
|jgtj
jjgg}|||dd|DzdS)Nrfz&Found unexpected messages in queue: %scTg|]%}t|tjr|jn|&Srs)rrrr*)rZrs  rGr\zJQueueListenerTest.test_no_messages_in_queue_after_stop.<locals>.<listcomp>5sC%<%<%<01/9G<M.N.N&,QUU*+%<%<%<ri)rrr^r	rrrr~listrrJrrr?r	_sentinelr)rCr[rrres     rG$test_no_messages_in_queue_after_stopz6QueueListenerTest.test_no_messages_in_queue_after_stop s

>@@@4;''
>
>'-//""5DGGIIIIqq*ABBBT44U;;<<


!!###!1!?!I JK

eXF%<%<5:%<%<%<=>>>>
>
>ricHtj}tj|}|||t5|	ddddS#1swxYwYdSr)
rrrr?rrrrrrB	task_done)rCrrs   rGtest_calls_task_done_after_stopz1QueueListenerTest.test_calls_task_done_after_stop8s

I'55i@@HNNMMOOO"":..
&
&##%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&s5BBBN)rprqrrr	staticmethodrrrrr?rr
rrrrrsrirGrrs	
			
	.
g&4h	?	?	G	G
@	?	G
g&4h	?	?
	G
	G
@	?
	G
		
		>	>	>0	&	&	&	&	&rirceZdZdZeZdZdS)UTCctSr)ZEROrCdts  rG	utcoffsetz
UTC.utcoffsetFsricdS)Nrrsr!s  rGtznamez
UTC.tznameKsuriN)rprqrrr#dstr%rsrirGrrEs9CrirceZdZdZdS)AssertErrorMessagec	|jdg|Ri|dS#|$r.}||t|Yd}~dSd}~wwxYw)Nrs)rrYrY)rCrrrWr}rs      rGassert_error_messagez'AssertErrorMessage.assert_error_messageRs}	.Db24222622222	.	.	.Wc!ff---------	.sA#AAN)rprqrrr*rsrirGr(r(Ps#.....rir(cReZdZdZd
dZdZdZdZdZdZ	d	Z
d
ZdZdZ
dS)
FormatterTestc	dtjtjddddddddd|_d	d	d
ii|_dS)Nzformatter.testr;toz	dummy.extrzMessage with %d %s)rplaceholders)rErpathnamelinenorfuncr*rWri)rr7r4r;rcommonvariantsrms rGrHzFormatterTest.setUpYsX$]VT;??''	
	

$



riNct|j}| ||j|t	j|Sr)rr3rMr4rr)rCrEresults   rG
get_recordzFormatterTest.get_recordjsAdk""MM$--...$V,,,ric|}tjd}|||dtjd}|t|j|||tjd}|	|tjd}|	|tjd}|	|dS)Nz${%(message)s}z${Message with 2 placeholders}z
%(random)s%(asctime)sz%(asctime)-15sz%(asctime)#15s
r7rr:rYrrrBr:usesTimerBrCrrs   rGtest_percentzFormatterTest.test_percentpsOO.//!&FGGGl++*ah222&&&m,,

%%%.//

%%%.//

%%%%%ric|}tjdd}|||dtjdd}|t|j|tjdd}||tjdd}|	|tjdd}|	|tjd	d}|	|dS)
Nz
$%{message}%$rr$%Message with 2 placeholders%$z{random}r	{asctime}z{asctime!s:15}z{asctime:15}r:r<s   rGtest_braceszFormatterTest.test_bracess;OOoS999!&GHHHj444*ah222k555&&&k555

%%%.c:::

%%%nC888

%%%%%ricL|}tjdd}|||dtjdd}|||dtjdd}|||dtjdd}|t|j|||tjd	d}|	|tjd
d}|	|tjdd}||tjdd}|	|dS)N
${message}rr?zMessage with 2 placeholdersz$messagez$$%${message}%$$r@z	${random}z
${asctime}z$asctimez${asctime}--r:r<s   rGtest_dollarszFormatterTest.test_dollarssOOl#666!&CDDDj444!&CDDD0<<<!&GHHHk555*ah222&&&l#666

%%%j444

%%%l#666&&&nC888

%%%%%richtjd}||jdtjd}||jdtjd}||jdtjd}||jdtjdd}||jdtjdd}||jdtjd	d}||jd	tjd
d}||jd
tjdd}||jdtjdd}||jdtjd
d}||jd
tjdd}||jdtjdd}||jdtjdd}||jdtjdd}||jdtjdd}||jdtjdd}||jdtjdd}||jdtjdd}||jdtjdd}||jdtjdd}||jd|t
tjd|t
tjd|t
tjd|t
tjd|t
tjd|t
tjd|t
tjd|t
tjd |t
tjd!|t
d"tjd#d|t
d$tjd%d|t
d&|t
tjd'd|t
d(tjd)d|t
d*tjd+d|t
tjd,d|t
tjd-d|t
tjd.d|t
tjd/d|t
d0tjd1d|t
d2tjd3d|t
tjd4d|t
tjd5d|t
tjd6d|t
tjd7d|t
tjd8d|t
tjd9d|t
tjd:d|t
tjd;d|t
tjd<d|t
d=tjd>d|t
d=tjd?d|t
d=tjd@d|t
d$tjdd|t
tjd%d|t
d$tjdAd|t
tjdBddS)CNzM%(levelname)-15s - %(message) 5s - %(process)03d - %(module) - %(asctime)*.3sz1%(asctime)*s - %(asctime)*.3s - %(process)-34.33oz%(process)#+027.23Xz
%(foo)#.*gz5$%{message}%$ - {asctime!a:15} - {customfield['key']}rr?z{process:.2f} - {custom.f:.4f}z{customfield!s:#<30}z{message!r}z{message!s}z{message!a}z{process!r:4.2}z8{process!s:<#30,.12f}- {custom:=+#30,.1d} - {module:^30}z{process!s:{w},.{p}}z{foo:12.{p}}z{foo:{w}.6}z{foo[0].bar[1].baz}z{foo[k1].bar[k2].baz}z{12[k1].bar[k2].baz}z${asctime} - $messagerz$bar $$z	$bar $$$$z%(asctime)Zz%(asctime)bz%(asctime)*z
%(asctime)*3sz%(asctime)_rArDz
%(foo)#12.3*fz%(foo)0*.8*fz;invalid format: invalid field name/expression: 'name-thing'z{name-thing}zinvalid format: no fieldsr9zinvalid conversion: 'Z'z{asctime!s:#30,15f}z7invalid format: expected ':' after conversion specifierz{asctime!aa:15}z%invalid format: bad specifier: '.2ff'z{process:.2ff}z
{process:.2Z}z{process!s:<##30,12g}z{process!s:<#30#,12g}z{process!s:{{w}},{{p}}}z1invalid format: expected '}' before end of stringz{processz7invalid format: Single '}' encountered in format stringzprocess}z{{foo!r:4.2}z
{{foo!r:4.2}}z	{foo/bar}z{foo:{{w}}.{{p}}}}z{foo!X:{{w}}.{{p}}}z{foo!a:random}z{foo!a:ran{dom}z{foo!a:ran{d}om}z
{foo.!a:d}z$invalid format: bare '$' not allowedz$bar $$$zbar $zfoo $.rbz	${asctime)rr:rY_fmtrrBr*rCrs  rGtest_format_validatez"FormatterTest.test_format_validates
mnn!pqqqQRR!TUUU344!6777l++...
U]`aaa!XYYY>cJJJ!ABBB4C@@@!7888m3777///m3777///m3777////s;;;!2333X`cddd![\\\4C@@@!7888nC888000m3777///33???!67775SAAA!89994C@@@!7888
5SAAA!8999is333+++k555---	
*g&7GGG*g&7GGG*g&7GGG*g&7III*g&7GGG*g&7EEE*g&7FFF*g&7III*g&7HHH	
!!I~S	"	
	
	
	
!!'}C	"	
	
	
	
!!%	
	
	
	
*g&79NVYZZZ!!E0	"	
	
	
	
!!3/s	"	
	
	

	
*g&7PSTTT*g&79PX[\\\*g&79PX[\\\*g&79RZ]^^^!!?z	"	
	
	

	
!!Ez	"	
	
	

	
*g&7sSSS*g&7PSTTT*g&7CPPP*g&79MUXYYY*g&79NVYZZZ*g&79IQTUUU*g&79JRUVVV*g&79KSVWWW*g&7SQQQ	
!!4z	"	
	
	

	
!!4wc	"	
	
	

	
!!4xs	"	
	
	
	
!!'{#	"	
	
	

	
*g&7cRRR	
!!'uC	"	
	
	

	
*g&7CPPPPPricgd}gd}t||D]<\}}tj||ddi}|}|||d|d}|||dtj||}|}|t|j|tj||d	di}|d}|||d>dS)
N)z%(custom)s %(message)sz{custom} {message}z$custom $message)%rrrDefault)rrz#Default Message with 2 placeholdersz 1234 Message with 2 placeholdersr?zNon-existing)r[rr:r7rYrrrB)rCfmtsstylesrrrrs       rGtest_defaults_parameterz%FormatterTest.test_defaults_parameter:sRSSS dF++	N	NJC!#Uh	=RSSSA!!AQXXa[[*OPPP))AQXXa[[*LMMM!#U333A!!Aj!(A666!#Uni=XYYYA))AQXXa[[*LMMMM	N	NricV|ttjddddS)Nx)rrBrr:rms rGtest_invalid_stylez FormatterTest.test_invalid_styleNs'*g&7tSIIIIIric
H|}tjdddddddt}tj|d|_d|_tj
d}tj|_|
||d	|
||d
d|||
|jd	dS)Nr]rbr{%(asctime)s %(message)sz1993-04-21 08:03:00,123z%Y:%dz1993:21)r7datetimeutcr_mktime
astimezone	timetuplecreatedmsecsrr:gmtime	converterrY
formatTimerasctime)rCrr"rs    rG	test_timezFormatterTest.test_timeQsOO

tQAq!Q
<
<K

d 3 3 = = ? ?@@	788ka*CDDDa119===	$=>>>>>ric
Gddtj}|}tjddddddd	t}tj|d|_	|}t
j
|_||
|d
dS)NceZdZdZdZdS)DFormatterTest.test_default_msec_format_none.<locals>.NoMsecFormatterNz%d/%m/%Y %H:%M:%S)rprqrrdefault_msec_formatdefault_time_formatrsrirGNoMsecFormatterrg`s"&"5rirjrTr]rUrVrbrrWz21/04/1993 08:03:00)rr:r7rYrZr_r[r\r]r^r`rarYrb)rCrjrr"rs     rGtest_default_msec_format_nonez+FormatterTest.test_default_msec_format_none_s	6	6	6	6	6g/	6	6	6
OO

tQAq!S#
>
>K

d 3 3 = = ? ?@@	Oka*?@@@@@rictjddd}tdD]]}tjdtjdd|d	zzi}||}|d
|^dS)Nz!{asctime}.{msecs:03.0f} {message}rr)rrri	g-C6:?r*z
Message %drkz.1000)rr:r^r_rarrassertNotIn)rCrr[rrgs     rGtest_issue_89047zFormatterTest.test_issue_89047ks"ESZmnnnt	)	)AJv%ula!e.D&EFFAAWa((((		)	)rir)rprqrrrHr7r=rBrErIrOrRrdrkrnrsrirGr,r,Xs


"----
&
&
&&&& &&&*TQTQTQlNNN(JJJ???
A
A
A)))))rir,ceZdZdZdZdS)TestBufferingFormatterc&dt|zS)Nz[(%d)rZrCrecordss  rGformatHeaderz#TestBufferingFormatter.formatHeaderuW%%ric&dt|zS)Nz(%d)]rrrss  rGformatFooterz#TestBufferingFormatter.formatFooterxrvriN)rprqrrrurxrsrirGrprpts2&&&&&&&&rirpc eZdZdZdZdZdS)BufferingFormatterTestchtjdditjddig|_dS)Nr*rr)rrrtrms rGrHzBufferingFormatterTest.setUp|s3!5%.11!5%.11
rictj}|d|g|d||jdS)Nronetwo)rBufferingFormatterrYrrtrHs  rGtest_defaultz#BufferingFormatterTest.test_defaultsZ&((QXXb\\***188DL#9#9:::::ric t}|d||jt	jd}t|}|d||jdS)Nz[(2)onetwo(2)]z
<%(message)s>z[(2)<one><two>(2)])rprYrrtrr:)rCrlfs   rGtest_customz"BufferingFormatterTest.test_customsz"$$)188DL+A+ABBB


/
/"2&&-qxx/E/EFFFFFriN)rprqrrrHrrrsrirGrzrz{sF


;;;
GGGGGrirzceZdZdZdS)
ExceptionTestc|j}t}||	td#t	jddYnxYw||||jd}|	|j
d|	|j
d|	|j
d|	|j
d	dS)
NrfailedTrrz#Traceback (most recent call last):
z!
RuntimeError: deliberate mistakeStack (most recent call last):
z,logging.exception('failed', stack_info=True))r0RecordingHandlerrArrrrKrJrtrBexc_textrrCr)rCrrQs   rGrzExceptionTest.test_formattings`	Q	93444	9h4888888					
IaL
--/>??	@	@	@
++-ABB	C	C	C//1>??	@	@	@--/?@@	A	A	A	A	As	;AN)rprqrrrrsrirGrrs(AAAAArirceZdZdZdS)LastResortTestcR|j}||jtj}tj}	t
j5}|d|	|
d|d|	|
ddddn#1swxYwYdt_t
j5}|dd}|	|
|dddn#1swxYwYt
j5}|d|	|
ddddn#1swxYwYd|j_
dt_t
j5}|d|	|
ddddn#1swxYwY||j|t_|t_dS#||j|t_|t_wxYw)NzThis should not appearrz
Final chance!zFinal chance!
z-No handlers could be found for logger "root"
F)r0rKr9r
lastResortrrrrrYrWrremittedNoHandlerWarningrA)rCrold_lastresortold_raise_exceptionsrr*s      rGtest_last_resortzLastResortTest.test_last_resortsJ4>*** +&6	;(**
Gf

3444  !2!2B777_---  !2!24EFFF	
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G"&G(**
9f_---F  !2!2C888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9(**
8f_---  !2!2B777
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
49DL0&+G#(**
8f_---  !2!2B777
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
OODN+++!/G&:G###
OODN+++!/G&:G#::::sI2A;C	I2CI2C"I2?AE?I2EI2EI2)>F3'I23F77I2:F7;.I2)>H3'I23H77I2:H7;I224J&N)rprqrrrrsrirGrrs##;#;#;#;#;rirceZdZdZdZdS)FakeHandlerc
\dD](}t||||||)dS)N)rflushrJr)setattrrecord_call)rC
identifiercalledrJs    rGrzFakeHandler.__init__sF>	P	PFD&$"2"2:vv"N"NOOOO	P	Pricfd}|S)NcZddS)Nz{} - {})rFr)rrmethod_namesrGinnerz&FakeHandler.record_call.<locals>.inners+MM)**:{CCDDDDDrirs)rCrrrrs ``` rGrzFakeHandler.record_calls4	E	E	E	E	E	E	EriN)rprqrrrrrsrirGrrs5PPPrirc$eZdZfdZdZxZS)rcVtt|j|i|g|_dSr)rrrrt)rCrWr}rs   rGrzRecordingHandler.__init__s1.%%.????ric<	|j|dSr)rtrFrs  rGr9zRecordingHandler.handles!4F#####ri)rprqrrrr9rrs@rGrrsG$$$$$$$rirczeZdZ	fdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZxZS)ShutdownTestctt|g|_tj}|ttd|dS)Nr)rrrHrrrrr)rCraise_exceptionsrs  rGrHzShutdownTest.setUpsO
lD!!'')))"2*;=MNNNNNricfd}|S)Ncrrs)rsrGrz'ShutdownTest.raise_error.<locals>.inners%''Mrirs)rCrrs ` rGraise_errorzShutdownTest.raise_errors!					ricJtd|j}td|j}td|j}ttjj|||g}tjt|gd}|||jdS)NrrkrhandlerList)z2 - acquirez	2 - flushz	2 - closez2 - releasez1 - acquirez	1 - flushz	1 - closez1 - releasez0 - acquirez	0 - flushz	0 - close0 - release)	rrrrrrrrrY)rChandler0handler1handler2r?res      rGtest_no_failurezShutdownTest.test_no_failuresq$+..q$+..q$+..w*Xx,JKKT(^^4444LLL	
4;/////ric>td|j}t||||tj|g}t	jt||	d|jddS)Nrrrr))
rrrrrrrrrrY)rCrJrrr?s     rG_test_with_failure_in_methodz)ShutdownTest._test_with_failure_in_methodsa--!1!1%!8!8999O''001T(^^4444B88888ric<|dtdSNrrrArms rGtest_with_ioerror_in_acquirez)ShutdownTest.test_with_ioerror_in_acquires)))W=====ric<|dtdSNrrrms rGtest_with_ioerror_in_flushz'ShutdownTest.test_with_ioerror_in_flush))'7;;;;;ric<|dtdSNrJrrms rGtest_with_ioerror_in_closez'ShutdownTest.test_with_ioerror_in_closerric<|dtdSrrrBrms rGtest_with_valueerror_in_acquirez,ShutdownTest.test_with_valueerror_in_acquires)))Z@@@@@ric<|dtdSrrrms rGtest_with_valueerror_in_flushz*ShutdownTest.test_with_valueerror_in_flush))':>>>>>ric<|dtdSrrrms rGtest_with_valueerror_in_closez*ShutdownTest.test_with_valueerror_in_closerricTdt_|dtdS)NFrrrr
IndexErrorrms rG.test_with_other_error_in_acquire_without_raisez;ShutdownTest.test_with_other_error_in_acquire_without_raises&"')))Z@@@@@ricTdt_|dtdS)NFrrrms rG,test_with_other_error_in_flush_without_raisez9ShutdownTest.test_with_other_error_in_flush_without_raise!&"'))':>>>>>ricTdt_|dtdS)NFrJrrms rG,test_with_other_error_in_close_without_raisez9ShutdownTest.test_with_other_error_in_close_without_raise%rricldt_|t|jdtdS)NTrrrrrrrms rG+test_with_other_error_in_acquire_with_raisez8ShutdownTest.test_with_other_error_in_acquire_with_raise)s8"&*d&G#Z	1	1	1	1	1ricldt_|t|jdtdS)NTrrrms rG)test_with_other_error_in_flush_with_raisez6ShutdownTest.test_with_other_error_in_flush_with_raise.8"&*d&G!:	/	/	/	/	/ricldt_|t|jdtdS)NTrJrrms rG)test_with_other_error_in_close_with_raisez6ShutdownTest.test_with_other_error_in_close_with_raise3rri)rprqrrrHrrrrrrrrrrrrrrrrrs@rGrrs'-OOOOO
000 999>>><<<<<<AAA??????AAA??????111
///
///////rircfeZdZ	dZddZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdS)ModuleLevelMiscTestctjjj}||d|tj|tjd|tjjjd|ttjdGdd}|ttj|tjdtj|tjjjtj	dS)NrS
doesnotexistsceZdZdS);ModuleLevelMiscTest.test_disable.<locals>._NotAnIntOrStringNrrsrirG_NotAnIntOrStringrHDrirWARN)
rrrrNrYrrrBrrz)rCold_disablers   rGtest_disablez ModuleLevelMiscTest.test_disable=sl*2a(((555-5r:::*goGGG									
)W_6G6G6I6IJJJ	-5w7GHHHHHriNc~gtj|tdfdt}tj|t
t|}|||d|n|d||t|j	d|j	d}||
d|z||n&t
t|}||j||gdS)NbasicConfigc2||fSrr)rNkwrs  rG<lambda>z/ModuleLevelMiscTest._test_log.<locals>.<lambda>Wsv}}aW'='=riztest me: %rrkr)
rrrrrrAr,rYrZrt
getMessageupperr)rCrJr	recording
log_methodrexpected_levelrs       @rG	_test_logzModuleLevelMiscTest._test_logTs:
dG]====	?	?	?%&&		***Wf--
JumY7777J}i000Y.//333"1%**,,mi.GHHH"'"3&,,..9Y9Y888	
$$$$$ricF|dtjdSNr)rrr|rms rGtest_logzModuleLevelMiscTest.test_loglsugm,,,,,ric0|ddSNrrrms rG
test_debugzModuleLevelMiscTest.test_debugowric0|ddSNrrrms rG	test_infozModuleLevelMiscTest.test_inforvric0|ddSNrrrms rGtest_warningz ModuleLevelMiscTest.test_warninguy!!!!!ric0|ddSNrrrms rG
test_errorzModuleLevelMiscTest.test_errorxrric0|ddSNrrrms rG
test_criticalz!ModuleLevelMiscTest.test_critical{z"""""ric|ttjtGddtj}tj||tj|tjtj|tjtjdS)NceZdZdS);ModuleLevelMiscTest.test_set_logger_class.<locals>.MyLoggerNrrsrirGrrrrir)rrrrrrrYgetLoggerClass)rCrs  rGtest_set_logger_classz)ModuleLevelMiscTest.test_set_logger_class~s)W%;VDDD					w~				x(((/118<<<w~.../117>BBBBBricTgGfddtj}tj|tjd}|dgtj}tj|}||	|	tj
|d||
d|d|d|	tj|d||d|||tjtjdS#|||tjtjwxYw)Nc2eZdZdejffd	ZxZS)@ModuleLevelMiscTest.test_subclass_logger_cache.<locals>.MyLoggerrcvt||ddS)Ninitialized)rrrF)rCrErrrs   rGrzIModuleLevelMiscTest.test_subclass_logger_cache.<locals>.MyLogger.__init__s5  u---}-----ri)rprqrrrrrr)rrs@rGrrsJ$.gn
.
.
.
.
.
.
.
.
.
.
.rirjust_some_loggerr
hellorr)rrrrrYr3r4r8rAr6r7rrWrtruncaterrrKrJr)rCrrr5rQrs     @rGtest_subclass_logger_cachez.ModuleLevelMiscTest.test_subclass_logger_caches	.	.	.	.	.	.	.w-//	.	.	.
	x((("#566=/222!&))!	3OOGM***LL!!!V__..4466@@@OOAKKNNNOOGL)))LL!!!V__..333  ###
GGIII"7>22222
  ###
GGIII"7>2222s!C4GA	H'ctjd}td|\}}}|}|d||d|dS)Na*
            import logging

            class A:
                def __del__(self):
                    try:
                        raise ValueError("some error")
                    except Exception:
                        logging.exception("exception in __del__")

            a = A()
        -czexception in __del__zValueError: some error)rxryrrsrrCcodercouterrs     rGtest_logging_at_shutdownz,ModuleLevelMiscTest.test_logging_at_shutdownsl 

(d33Cjjll

,c222

.44444ricvtj}|tj|t	jd|d}t
d|t|d5}||	
dddddS#1swxYwYdS)Na
            import builtins
            import logging

            class A:
                def __del__(self):
                    logging.error("log in __del__")

            # basicConfig() opens the file, but logging.shutdown() closes
            # it at Python exit. When A.__del__() is called,
            # FileHandler._open() must be called again to re-open the file.
            logging.basicConfig(filename=z, encoding="utf-8")

            a = A()

            # Simulate the Python finalization which removes the builtin
            # open() function.
            del builtins.open
        rr%r~zERROR:root:log in __del__)rTESTFNrr5rxryrrrYr`r)rCr&rfps    rGtest_logging_at_shutdown_openz1ModuleLevelMiscTest.test_logging_at_shutdown_opens#	((333 +3   

&	t$$$
(W
-
-
-	NRWWYY--//1LMMM	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	Ns&;B..B25B2ctjd}td|\}}}|}|d|||ddS)Nz
            import logging

            def rec():
                logging.error("foo")
                rec()

            rec()
        rz#Cannot recover from stack overflow.rk)rxryrrsrmrYrs     rGtest_recursion_errorz(ModuleLevelMiscTest.test_recursion_errorso 

-T488Cjjll>DDDQric*tj}|tj||tj|tj}||||||dSr)rgetLevelNamesMappingrYr'assertIsNot)rCmappingnew_mappings   rGtest_get_level_names_mappingz0ModuleLevelMiscTest.test_get_level_names_mappings.00-w777-w777244+...+.....rir)rprqrrrrrrrrrrrrrrrr%rsrirGrr9s3III.%%%%0---   """   ###
C
C
C333>555&NNN>    /////rirc>eZdZdZdZeddZdZdZdS)
LogRecordTestctji}t|}||d||ddS)Nz<LogRecord: >)rrrYrBrrC)rCrrgs   rGtest_str_repzLogRecordTest.test_str_reps]!"%%FF^44555

3(((((rict}tj}||ddi}tjd|||jdj|||jdj	d|
||dS)Nlessmorezless is %(less)srzless is more)rrrrArrrtrWrYrrKrJ)rCrQrrxs    rG
test_dict_argzLogRecordTest.test_dict_args	Q
f*A...

ail'+++1-~>>>							riNctj}|t_	ddl}|j}tjdd|i}t
jtj	dd5tjdd|i}dddn#1swxYwY||j
|j
d}|t_n#|t_wxYw|r||dS|S)Nrr*msg1_rmsg2_)processNamer1.processNamer2.processName)rlogMultiprocessingrcurrent_processrErr	swap_itemr0modulesr2r1)	rr5rprev_logMultiprocessingmprEr1r2resultss	         rG_extract_logrecord_process_namez-LogRecordTest._extract_logrecord_process_namesR")"<%7"	A((((%%'',D&}s}}'=>>B"3;0A4HH
C
C*E=3==+ABB
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C)-)+)+G
*AG&&)@G&@@@@	IIgNs0AB>0B
B>BB>BB>>Ccrtjdtjv}	|t
jdd}tji}||jd|	d|}|d|d|d|d|d|dddl
}|j\}}|j|j	d	||f
}|
|}|d|d||d|d|d|d||rddl
}dSdS#|rddl
}wxYw)NrTMainProcessrkr2r3r4rrrj)rrr0r8rYrr5rr2r>rPipeProcessrrr	assertNotEqualr)	rCmultiprocessing_importedLOG_MULTI_PROCESSINGrr=rparent_conn
child_connris	         rGtest_multiprocessingz"LogRecordTest.test_multiprocessings:<<<#4#C  	'W7>>>#' %b))AQ]M:::::1>RSSG]GM,BCCC]G4D,EFFF]G4D,EFFF
#"""&:o&:&<&<#K'';-z;A
GGIII!&&((G
w}/EFFFW]3W=M5NOOO]G4D,EFFF
FFHHH(
'&&&&&&
'
''
'&&&&&&&&sFF..F6ctji}|j}||j||j||j||jtj}tj}tj	}	dt_dt_dt_	tji}|j
}||j||j||j||j|t_|t_|t_	dS#|t_|t_|t_	wxYw)NF)rrassertIsNotNonerk
threadNameprocessr2
logThreadslogProcessesr5r)rCrNOT_NONElog_threads
log_processeslog_multiprocessingNONEs       rG
test_optionalzLogRecordTest.test_optionalDs7!"%%'(,
%8
	=!&G#(G ).G&%b))A$DDNNNDDOOOD!,G#0G )<G&&&"-G#0G )<G&<<<<s
A?D&&&Er)	rprqrrr*r.rr>rHrTrsrirGr'r'sq)))			\0#'#'#'J=====rir'ceZdZ	fdZfdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZddZdZdZdZdZdZdZxZS)BasicConfigTestc|tt|tjj|_tj|_tj	dd|_
tjj|_|
|jgtj_dSr)rrVrHrrr?r!r"r#r$r%rr2rrrs rGrHzBasicConfigTest.setUpas
ot$$**,,,-
%/4466")"6qqq"9&-l&8#%%% "rictjjddD]5}tj||6tt|dSr)rrr?rKrJrrVrR)rCrQrs  rGrRzBasicConfigTest.tearDownjsg&qqq)		AL&&q)))
GGIIII
ot$$--/////ric>ttjd|jtjtj|j|jtj	dd<tj
|jdS)Nr?)rrrr?r!rLrMr#r%r$r6r2rms rGrzBasicConfigTest.cleanuppszj$-888!!!  !4555"&"9QQQd9:::::ric|tj|ttjjdtjjd}||tj||jtj
|j}||jj
tj||j||jtj|tjj|jdS)Nrkr)rrrYrZrr?rr8r5r0rrrMrGBASIC_FORMATrrPercentStylerr2)rCrrs   rGtest_no_kwargszBasicConfigTest.test_no_kwargsws	
W\233Q777,'*gw'<===444%	).0DEEE)+,,,i.0DEEE	
+T-HIIIIIricxtj5}tjtjdtjdtjd||	
dddddS#1swxYwYdS)Nrr5rLog an errorrERROR:root:Log an errorrrrrr0rrrrYrWrrs  rGtest_strformatstylez#BasicConfigTest.test_strformatstyle

$
&
&	+&sz====M.)))JOOAV__..4466)
+
+
+		+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+BB//B36B3cxtj5}tjtjdtjdtjd||	
dddddS#1swxYwYdS)Nrr_r`rrarbrs  rGtest_stringtemplatestylez(BasicConfigTest.test_stringtemplatestylerdrecd}tjdd|ttjjdtjjd}||tjtjddd}||jj	|jj	||jj
|jj
||||ddS)	Nc~||tj|dSrrrh2rHs   rGrz.BasicConfigTest.test_filename.<locals>.cleanup-HHJJJHHJJJIbMMMMMritest.logr%)r&r'rkrrNr~)rrrYrZrr?rrQr5moderErrCrrres    rG
test_filenamezBasicConfigTest.test_filenames			
	Z'BBBBW\233Q777,'*gw':;;;&z3III,ho.BCCC,ho.BCCC(J?????ricd}tjddtjjd}tjdd}||jj|jj||||ddS)Nc~||tj|dSrrrjs   rGrz.BasicConfigTest.test_filemode.<locals>.cleanuprlrirmwbr&filemoder)	rrrr?rQrYr5rnrros    rG
test_filemodezBasicConfigTest.test_filemodes			
	Z$????,'*&z488,ho.BCCC(J?????rictj}||jt	j||ttjj	dtjj	d}|
|tj||j|dS)Nrrkr)
r3r4rrJrrrYrZrr?rr8r5)rCr5rs   rGtest_streamzBasicConfigTest.test_streams%%%6****W\233Q777,'*gw'<===00000rictjdtjjdj}||jjddS)Nz%(asctime)s - %(message)s)rr)rrrr?rrYrMrGrCrs  rGtest_formatzBasicConfigTest.test_formatsL#>????L)!,6	).0KLLLLLrictjdtjjdj}||jddS)Nrc)rr)rrrr?rrYrrzs  rGtest_datefmtzBasicConfigTest.test_datefmtsGE****L)!,6	*E22222rictjdtjjdj}||jtjdS)Nrr?r)rrrr?rrrMrNrzs  rG
test_stylezBasicConfigTest.test_stylesJ#&&&&L)!,6	i.0KLLLLLricZtjj}|tjj|tjd|tjjdtjd|tjjddS)N9)r:)rrrrr6rrY)rC	old_levels  rG
test_levelzBasicConfigTest.test_levelsL&	-y999"%%%%+R000"%%%%+R00000ric|j}tjg}tj}|t
tjd||t
tjd||t
tj|||t
tjtjtjdddS)Nrm)r&r5)r&r?)r5r?)loglevelrNrt)rrr8r0rrBrr)rCrr?r5s    rGtest_incompatiblez!BasicConfigTest.test_incompatibles()++,Z!4z=C	E	E	E	EZ!4z?G	I	I	I	IZ!4V?G	I	I	I	I	Z!4w|LLLLTC888888ricRtjtjtjtjg}tj}|d|tj|||dtjj	d||dtjj	d||dtjj	d|
|dj|
|dj||dj|||dj|djdS)Nr)r?rrk)rr8r0rr:r=rrrr?rJr)rCr?rs   rG
test_handlerszBasicConfigTest.test_handlerssL!##!#*--!##


  ###X....

hqk7<#8#;<<<

hqk7<#8#;<<<

hqk7<#8#;<<<Xa[2333Xa[2333

hqk+Q///

hqk+Xa[-BCCCCCrictj}tj}tj|g}tj|g}tjtj|tjdtjdtjd|	ttjjdtjtj
|dtjdtjdtjd|	ttjjd|	|d|	|d	dS)
NrrrrrkT)rr?forcezWARNING:root:warnz WARNING:root:warn
INFO:root:info)r3r4rr8rrrrrrYrZrr?rrWr)rC
old_string_io
new_string_ioold_handlersnew_handlerss     rG
test_forcezBasicConfigTest.test_forces





-m<<=-m<<='/LIIIIV
gW\233Q777',"&	(	(	(	(V
gW\233Q777//117799,	.	.	.//117799<	>	>	>	>	>ric	d}tjd|ddtj|t	tjjdtjjd}||tj||j	|tj
d|tdd	5}|
}dddn#1swxYwYtjd||ddS#|tdd	5}|
}dddn#1swxYwYtjd||dwxYw)
Nr%rmr%(message)sr&r'errorsrrrkr.The Øresund Bridge joins Copenhagen to Malmör~rrr7rYrZrr?rrQr'rrJrr`rr4rrCr'rrrs     rG
test_encodingzBasicConfigTest.test_encodings:	OHh'/'4GM
K
K
K
K
S!677;;;l+A.G!!'7+>???W-x888MJKKKMMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!TM
O
O
O
O
O	
MMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!TM
O
O
O
OBB=E$'DDD&G4'F'G'F++G.F+/.Gc	d}tjd|ddtj|t	tjjdtjjd}||tj||j	|tj
d|tdd	
5}|
}dddn#1swxYwYtjd||ddS#|tdd	
5}|
}dddn#1swxYwYtjd||dwxYw)Nrrmignorerrrkrrr%r~z*The resund Bridge joins Copenhagen to Malmrrs     rGtest_encoding_errorsz$BasicConfigTest.test_encoding_errors*s	QHh'/'4GM
K
K
K
K
S!677;;;l+A.G!!'7+>???W-x888MJKKKMMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!T#OPPPPP	
MMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!T#OPPPPrc	d}tjd|dtj|t	tjjdtjjd}||tj||j	|||j
dtjd|tdd	
5}|}dddn#1swxYwYt!jd||ddS#|tdd	
5}|}dddn#1swxYwYt!jd||dwxYw)Nrrmr)r&r'rrrkrbackslashreplaceu<😂: ☃️: The Øresund Bridge joins Copenhagen to Malmör%r~zL\U0001f602: \u2603\ufe0f: The \xd8resund Bridge joins Copenhagen to Malm\xf6)rrr7rYrZrr?rrQr'rrrJrr`rr4rrs     rGtest_encoding_errors_defaultz,BasicConfigTest.test_encoding_errors_default=sV	KHh'4GM
K
K
K
K
S!677;;;l+A.G!!'7+>???W-x888W^-?@@@MXYYYMMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!T$J
K
K
K
K
K	
MMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!T$J
K
K
K
KsBCE(>'D11D58D5(&G7'G5G7GG7G	.G7ct	d}tjd|ddtj|t	tjjdtjjd}||tj||j	||
|jgfd}||_tj
d||d	d|t#dd
5}|}dddn#1swxYwYt)jd||ddS#|t#dd
5}|}dddn#1swxYwYt)jd||dwxYw)
Nrrmrrrkrcztj\}}}t|dSr)r0rrFrY)rrfrrs   rGdummy_handle_errorzEBasicConfigTest.test_encoding_errors_none.<locals>.dummy_handle_erroras2,..1as1vv&&&&&rirz:'ascii' codec can't encode character '\xd8' in position 4:r%r~r)rrr7rYrZrr?rrQr'rrrrrBrrJrr`rr4r)rCr'rrrrrs      @rGtest_encoding_errors_nonez)BasicConfigTest.test_encoding_errors_noneQs	(Hh'+'4GM
K
K
K
K
S!677;;;l+A.G!!'7+>???W-x888gn---G
'
'
'
'
'#5GMJKKKOOG$$$MM=>Eaj
J
J
J
MMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!T3'''''
MMOOOj7333
(qvvxx~~''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(Ij!!!T3''''sBDF(>'E11E58E5(&H7'H5H7HH7H	.H7Ncgtjfd}tjtd|t	t|}|
||dn|ddifgdS)Nctjj}tjdtjj|||fdS)Nd)rrrr6rrF)rNrrrold_basic_configrCs   rGmy_basic_configz2BasicConfigTest._test_log.<locals>.my_basic_configxsg*IL!!#&&&OOGL19===MM1b'"""""rirztest mers)rrrrr,rY)rCrJrrrrrs`    @@rGrzBasicConfigTest._test_logss".	#	#	#	#	#	#	#	
dG]ODDDWf--
Jui((((Jy!!!	
2r(,,,,,ricF|dtjdSr)rrrrms rGrzBasicConfigTest.test_logsugo.....ric0|ddSrrrms rGrzBasicConfigTest.test_debugrric0|ddSrrrms rGrzBasicConfigTest.test_inforric0|ddSrrrms rGrzBasicConfigTest.test_warningrric0|ddSrrrms rGrzBasicConfigTest.test_errorrric0|ddSrrrms rGrzBasicConfigTest.test_criticalrrir)rprqrrrHrRrr]rcrgrprvrxr{r}rrrrrrrrrrrrrrrrrrs@rGrVrV]s-#####00000;;;JJJ(++++++@@@$@@@111MMM333MMM111
9
9
9DDD">>>*OOO(QQQ&KKK((((D----.///   """   #######rirVcBeZdZfdZdZdZdZdZdZdZ	xZ
S)LoggerAdapterTestc@tt|tjddt|_tj|_|j	|j|
|jj|j|
|jjfd}|
||
tj
tj|jd|_dS)Nc*tjdd<dSr)rr$)old_handler_listsrGrz(LoggerAdapterTest.setUp.<locals>.cleanups&6G ###rirr)rrrHrr$rrrrrArrKrJrradapter)rCrrrs  @rGrHzLoggerAdapterTest.setUps
&&,,..."/2)++lt~...14>BBB,---	7	7	7	7	7	
   ())),DKtLLLricd}d}	ddzn9#t$r,}|}|j||jYd}~nd}~wwxYw|t|jjd|jjd}||jtj	||j
|||j|jf||j|j
||jfdSNztesting exception: %rrkr)rrrrrYrZrtrrr|r*rWrr
__traceback__rCr*rrrs     rGtest_exceptionz LoggerAdapterTest.test_exceptions&%	8
EEE 	8	8	8CL""377777777	8	
T^344a888'*777S)))t~&7888-c.?@	B	B	B	B	B
A"=AcL	ddzn#t$r}|}Yd}~nd}~wwxYw|jd||t	|jjd|jjd}||j|j||j	fdS)Nrkrz
exc_info testr)
rrrrYrZrrtrrr)rCrrrs    rGtest_exception_excinfoz(LoggerAdapterTest.test_exception_excinfos	
EEE 			CCCCCC		
===T^344a888'*-c.?@	B	B	B	B	Bs
cd}|j||j|t	|jjd|jjd}||jtj||j	|||j
|jfdS)Nzcritical test! %rrkr)rrrrYrZrtrrrzr*rW)rCr*rs   rGrzLoggerAdapterTest.test_criticals!c4>222T^344a888'*)9:::S)))t~&788888ric|jjjj}d|jjj_|t
|jjjd|||jddS)N!rN )rrrrNrrr:isEnabledForrCrs  rGtest_is_enabled_forz%LoggerAdapterTest.test_is_enabled_forssl)19.0#+!4!<i#	%	%	%2226677777ric`||j|jjD]}|j|||j||jdSr)rBrr>rr?rKr:rTs  rGtest_has_handlersz#LoggerAdapterTest.test_has_handlerss0022333{+	/	/GK%%g....0022333113344444ricGddtj}d}||jd}||d}d|_|t|t||tj||j|t|jj
d|jj
d}||jtj||jd|||j
|jf|j}||j|||jj|t!}	||_||j|||j|||jj|||_n#||_wxYw||j|||j|||jj|dS)	NceZdZdZdZdS).LoggerAdapterTest.test_nested.<locals>.AdapterAdapterc|jd||fSr}r)rCr*r}s   rGrLz6LoggerAdapterTest.test_nested.<locals>.Adapter.processs+----v55riN)rprqrrrrLrsrirGrrs(F
6
6
6
6
6rirzAdapters can be nested, yo.rAdapterAdapterrkrzAdapter AdapterAdapter )rrrrrYrrrzrrZrtrr*rWrrr)rCrr*radapter_adapterrorig_managertemp_managers        rGtest_nestedzLoggerAdapterTest.test_nesteds2	6	6	6	6	6g+	6	6	6,'D999!'===!1g_(=(=>>>G,c4>BBBT^344a888'*)9:::%Ds%D%DEEEt~&7888&.

go|444

dk)<888xx	3&2O#MM/1<@@@MM'/<888MM$+-|<<<&2O##lO#2222

o-|<<<

go|444

dk)<88888s
AG00	G9)rprqrrrHrrrrrrrrs@rGrrsMMMMM"BBB"BBB9998885559999999rirc~eZdZfdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZxZS)
LoggerTestctt|t|_tjd|_|j|j|	|jj
|j|	|jj|	t
jdS)NblahrE)
rrrHrrrrrrArrKrJrrs rGrHzLoggerTest.setUps
j$%%''')++n&111t~...14>BBB,---()))))ric|td|jjd|td|jjddS)Nz,Level not an integer or a valid string: Nonez.Level not an integer or a valid string: (0, 0))rr)r*rrr6rms rGtest_set_invalid_levelz!LoggerTest.test_set_invalid_levels^!!EK $	(	(	(	
!!GK &	*	*	*	*	*ricd}d}	ddzn9#t$r,}|}|j||jYd}~nd}~wwxYw|t|jjd|jjd}||jtj	||j
|||j|jf||j|j
||jfdSr)rrrrrYrZrtrrr|r*rWrrrrs     rGrzLoggerTest.test_exceptions&%	7
EEE 	7	7	7CK!!#t~66666666	7	
T^344a888'*777S)))t~&7888-c.?@	B	B	B	B	Brctjtdd5|t|jjddddddS#1swxYwYdS)NrTrtest message)r	swap_attrrrrrrrms rG!test_log_invalid_level_with_raisez,LoggerTest.test_log_invalid_level_with_raise-s

w(94
@
@	P	Pi$OOO	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	Ps(AAActjtdd5|jddddddS#1swxYwYdS)NrFrr)rrrrrrms rGtest_log_invalid_level_no_raisez*LoggerTest.test_log_invalid_level_no_raise1s

w(95
A
A	2	2KOOD.111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2sAA	A	cgtj|tjdfd|jd|td|dddS)Nprint_stackcR|Sr)rFrW)rr~rs  rGrz=LoggerTest.test_find_caller_with_stack_info.<locals>.<lambda>8sfmmDMMOO&D&DriTrrkrr)rrr	tracebackr
findCallerrYrZ)rCrs @rG test_find_caller_with_stack_infoz+LoggerTest.test_find_caller_with_stack_info5s
dG-}DDDD	F	F	F	
$///Va(((;VAYGGGGGricd|jjfdfdfd}|jj}|||djd|dj}dz
|||djd||dj||dj}dz
|||djd||dj||dj}tj	}|
|jtj|||djd||j|jjdz
|||djd	||dj|dS)
Nrkc"ddS)Nr)
stacklevelrs)	the_leveltriggersrG	innermostz>LoggerTest.test_find_caller_with_stacklevel.<locals>.innermostCsGFy111111ricdSrrs)rsrGrz:LoggerTest.test_find_caller_with_stacklevel.<locals>.innerFsIKKKKKricdSrrs)rsrGouterz:LoggerTest.test_find_caller_with_stacklevel.<locals>.outerIsEGGGGGrir)rrr test_find_caller_with_stacklevel)rrrrtrYrgr1rrrrArK)	rCrrtr1r0rrrrs	     @@@@rGrz+LoggerTest.test_find_caller_with_stacklevel?s!	+%	2	2	2	2	2	2										.(
-{;;;#Q	
-w77772;-v666#Q	
-w77772;-v666#'))t~.../
-w777!!$.111+%Q	
-/QRRR72;-v66666ric d}d}dx}x}x}x}x}x}}	tj|||||||||			}
dt|
jzD]5}|di}|t|jj|||||||||	6dS)N	my record
)rrc
some valuersinfo)	r_logRecordFactoryr^__dict__keysrrsr
makeRecord)
rCrErrHlnor*rWrr2rrvrrs
             rG%test_make_record_with_extra_overwritez0LoggerTest.test_make_record_with_extra_overwritefs:>>>S>3>>>4%

&tUBS$'/u>>*E"+2B2B2D2D,E,EE	8	8C,'Eh(>e #sD($)

8
8
8
8	8	8ricd}d}dx}x}x}x}x}x}}	ddi}
|j||||||||
|			}|d|jdS)Nrr	valid_keyrr)rrrr)rCrErrHrr*rWrr2rrr6s            rG(test_make_record_with_extra_no_overwritez3LoggerTest.test_make_record_with_extra_no_overwritess:>>>S>3>>>4%l+''eRc4(0U(LL

k6?33333ric||j|jjD]}|j|||jdSr)rBrr>r?rKr:rTs  rGrzLoggerTest.test_has_handlers|sw//11222{+	/	/GK%%g....002233333rictjd}d|_||dS)Nz
blah.childF)rrrPr:r>)rCchild_loggers  rGtest_has_handlers_no_propagatez)LoggerTest.test_has_handlers_no_propagates@(66!&113344444ric|jjj}d|jj_|t|jjd|||jddS)NrN)rrrNrrr:rrs  rGrzLoggerTest.test_is_enabled_forsck)1&(#!4iMMM11"5566666ricf|jj}|jjj}d|j_d|jj_|t
|jd||t
|jjd|||jddS)NTrUrrNr)rrrrNrrr:r)rCold_disabledrs   rG#test_is_enabled_for_disabled_loggerz.LoggerTest.test_is_enabled_for_disabled_loggers{+k)1#&(#j,GGG!4iMMM11"5566666rictj}||tj||tjd||tjd||tjd||tjdj||tjdj||tjdj||tjd||tjdjdS)Nrrrbfoo.bar)rrrrparentr")rCrs  rGtest_root_logger_aliasesz#LoggerTest.test_root_logger_aliasess4 ""

dGL)))

dG-d33444

dG-b11222

dG-f55666

dG-e449:::

dG-i88=>>>

dG-e44;<<<w066777w0;;BCCCCCric|ttjt|ttjddS)Nsfoo)rrrranyrms rGtest_invalid_nameszLoggerTest.test_invalid_namess>)W%6<<<)W%6?????ricttjdzD]Z}dD]U}tj|}tj||}tj|}|||V[dS)Nrk)rrrbrzbaz.bar)r^rHIGHEST_PROTOCOLrrr;r
r)rCprotorErrg	unpickleds      rG
test_picklingzLoggerTest.test_picklings62Q677	1	1EA
1
1 *400L//"LOO	

i0000	
1	1	1ric
|j}tjd}tjd}|tj||tj||ji||	tj|
|	tj||jtjdtjdi||ji||	tj||ji||	tj||jtjdi|tj||tj||ji|
|	tj|tj
||tj||ji||ji||ji|
|	tj||	tj|
|	tj||	tj||	tjtj||tj||ji||ji||ji|
|	tj|
|	tj|
|	tjdS)NrrTF)r0rrr6r|rYr1_cacherBrr:r7rzrrN)rCrr.r/s    rGtest_cachingzLoggerTest.test_cachings%#E**#I..	


gm$$$2244gmDDD,,,	
,,W];;<<<--gm<<==='-w}e)TUUUb))),,W];;<<<	
b)))))'-88999w}d&;<<<	)***2244g6FGGG,,,	
--gm<<===	(((2244g6FGGG,,,,,,b)))	
--gm<<===,,W-=>>???--gm<<===,,W-=>>???))'-88999	2244g6FGGG,,,,,,b)))	
--g.>??@@@--g.>??@@@**7+;<<=====ri)rprqrrrHrrrrrrrrrrrr	rrrrrrs@rGrr	s8********BBB"PPP222HHH%7%7%7N888444444555
777
7
7
7DDD@@@1116>6>6>6>6>6>6>rirc(eZdZ	dZdZdZdZdS)BaseFileTestct|tjdd\}|_tj|g|_dS)Nriztest_logging-2-)rrHr2r3rHr4rJrmfiles)rCrGs  rGrHzBaseFileTest.setUpsEt&v/@AADG
ric|jD]}tj|tj|jrtj|jt|dSr)rr4r5r;r<rHrrR)rCrHs  rGrRzBaseFileTest.tearDownsf,		BIbMMMM
7>>$'""	Idg$ric	|tj|d|z|j|dS)NzLog file %r does not existr*)rBr4r;r<rrF)rCr&s  rG
assertLogFilezBaseFileTest.assertLogFilesWAx0088C		E	E	EH%%%%%ric
ptjdtjdd|dddS)Nr^rirk)rrr7rnrms rGnext_reczBaseFileTest.next_recs9 gmS!!%!2!2!4!4dD$HH	HriN)rprqrrrHrRr!r#rsrirGrrsX7   &&&HHHHHrirceZdZdZdZdS)FileHandlerTestc*tj|jtj|jdd}||j|tj	|j|
tji||j|
tj	|j|dS)Nr%Tr&)r4r5rHrrQrr5r:r;r<r9rrJrBrJ)rCfhs  rG
test_delayzFileHandlerTest.test_delays
	$'

 7$
G
G
G")$$$00111
		''++,,,RY'''tw//000





ricPtj|jtj|jdd}|tjd|||	||t|j5}||
dddddS#1swxYwYdS)Nr%rM)r'rnrr{)r4r5rHrrQr=r:rr#rJrrYr`r)rCr'rs   rG%test_emit_after_closing_in_write_modez5FileHandlerTest.test_emit_after_closing_in_write_modes"
	$'

 7
E
E
E
)-88999


   






   
$']]	5bRWWYY__..444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s;DD"DN)rprqrrr(r*rsrirGr%r%s2	5	5	5	5	5rir%ceZdZejejddZdZdZ	dZ
dZejdZ
dS)	RotatingFileHandlerTestWASI does not have /dev/null.ctj|jdd}||d|tjtjdd}|||	|dS)Nr%rr'maxBytesrk)
rr?rRrHr:shouldRolloverrJr4devnullr#rCrhs  rGtest_should_not_rolloverz0RotatingFileHandlerTest.test_should_not_rollovers

1
1'A277**400111





1
1
Wq2::**4==??;;<<<





rictj|jdd}||||dS)Nr%rkr/)rr?rRrHrBr1r#rJr3s  rGtest_should_rolloverz,RotatingFileHandlerTest.test_should_rollover,s[


1
1$'GVW
1
X
X))$--//::;;;





rictj|jd}||||j|dS)Nr%r~)rr?rRrHrr#r!rJr3s  rGtest_file_createdz)RotatingFileHandlerTest.test_file_created1sb

1
1$'G
1
L
L


   47###





ricd}tj|jddd}||_||||j|||||jdz|||||jdz|tj
||jdz|dS)	Nc|dzSN.testrsrs rGnamerz>RotatingFileHandlerTest.test_rollover_filenames.<locals>.namer:s'>!rir%rrkr'backupCountr0.1.2.3)
rr?rRrHr>rr#r!r:r4r;r<rJ)rCr>r4s   rGtest_rollover_filenamesz/RotatingFileHandlerTest.test_rollover_filenames9s1	"	"	"


1
1Gg1q2BB


   47###


   55400111


   55400111dgn(=(=>>???





ricGddtjj}||jddd}|||j|jdz||||j|||||jdzd	z|	tj||jdz|
dS)
NceZdZdZdZdS)ZRotatingFileHandlerTest.test_namer_rotator_inheritance.<locals>.HandlerWithNamerAndRotatorc|dzSr<rs)rCrEs  rGr>z`RotatingFileHandlerTest.test_namer_rotator_inheritance.<locals>.HandlerWithNamerAndRotator.namerJsg~%ricxtj|rtj||dzdSdS)N.rotated)r4r;r<r)rCsourcedests   rGrotatorzbRotatingFileHandlerTest.test_namer_rotator_inheritance.<locals>.HandlerWithNamerAndRotator.rotatorMs?7>>&)):Jvtj'899999::riN)rprqrrr>rMrsrirGHandlerWithNamerAndRotatorrGIs2
&
&
&
:
:
:
:
:rirNr%rrkr?r=rArJ)rr?rRrHrYr>rr#r!r:r4r;r<rJ)rCrNr4s   rGtest_namer_rotator_inheritancez6RotatingFileHandlerTest.test_namer_rotator_inheritanceHs>	:	:	:	:	:)9)M	:	:	:(
'Gg1qBBB$'**DGg,=>>>


   47###


   288DGdN33j@AAA4(@(@AABBB





ricd}d}tj|jddd}||_||_|}||||j|}||||jdz}||tj
}t|d5}|}	tj|	}
||
d	|j|zdddn#1swxYwY||||jd
z}||t|d5}|}	tj|	}
||
d	|j|zdddn#1swxYwY||||jd
z}t|d5}|}	tj|	}
||
d	|j|zdddn#1swxYwY|tj||jdz|dS)Nc|dzS)Nz.gzrsrs rGr>z3RotatingFileHandlerTest.test_rotator.<locals>.namer]s%<ricJt|d5}|}tj|d}t|d5}||dddn#1swxYwYdddn#1swxYwYtj|dS)NrbrWrs)rr`zlibcompressrr4r)rKrLsfr
compresseddfs      rGrMz5RotatingFileHandlerTest.test_rotator.<locals>.rotator`sfd##
)rwwyy!]433
$%%)HHZ((()))))))))))))))
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)

Ifs5:BA-!B-A1	1B4A1	5BBBr%rrkr?rArSrrBrC)rr?rRrHrMr>r#rr!r4lineseprr`rT
decompressrYrsr*r:r;r<rJ)rCr>rMr4m1m2rHnewlinerrWrs           rGtest_rotatorz$RotatingFileHandlerTest.test_rotator[s	 	 	 			

1
1Gg1q2BB

]]__
47###
]]__

U47T>
"
"2*
"d^^	EqJ?:..DT[[1126G3CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	

   
U47T>
"
"2
"d^^	EqJ?:..DT[[1126G3CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	

   
U47T>
"
"
"d^^	EqJ?:..DT[[1126G3CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	
dgn(=(=>>???





s9-AEEE=AH##H'*H'8AKK"%K"N)rprqrrrrris_wasir5r7r9rDrO
requires_zlibr^rsrirGr,r,sX_W_&EFFGF



&W*****rir,cjeZdZejejddZdZdZ	dZ
dZdZdS)	TimedRotatingFileHandlerTestr-c,tjtjddd}tjdtjddi}||	||
dS)NSr%rkr'r@皙?r*ztesting - device file)rr?rSr4r2r_rarr:r1rJ)rCr'rs   rGr5z5TimedRotatingFileHandlerTest.test_should_not_rollovers

6
6
C'q7BB
3!5*A"BCC**1--...





rictj|jddd}tjd}||tjddi}||||jtj
dtjdd	i}|||d
}tj
}d}t|D]t}|tj|z
}	|j|	d
zt"j}|r|jnud|z}
|st"j|j\}fdt#j|D}t1d|dzt2jt1d|zt2j|D]}}
t1d|
zt"j||
}t9|d5}t1|dddn#1swxYwY~|||
dS)Nrdr%rkrerXr*ztesting - initialrfztesting - after delayFi,secondsz.%Y-%m-%d_%H-%M-%Sz,No rotated files found, went back %d secondsc>g|]}||Srs)r)rZrrHs  rGr\z>TimedRotatingFileHandlerTest.test_rollover.<locals>.<listcomp>s*CCC1!,,r2B2BCQCCCriz
Test time: %sz%Y-%m-%d %H-%M-%Sr~zThe only matching files are: %szContents of %s:rr )rr?rSrHr:r=rrr!r_rarJrYrr^	timedeltastrftimer4r;r<rrFrlistdirrtr0rrrr`rB)rCr'rr;r<foundrGO_BACKsecsprevr*dnfilesrr;tfrHs                @rG
test_rolloverz*TimedRotatingFileHandlerTest.test_rollovers


6
6wA7?? 9::


"E+>#?
@
@
47###
3

"E+B#C
D
D




##%%'NN		D+D9999D4==)=>>>BGNN2&&E
##B'''
=wF
	%W]]47++FBCCCC
2CCCE/CLL1D$E$EECJWWWW3e;#*MMMM
%
%'!+,,,w||B**$__%"''))$$$%%%%%%%%%%%%%%%3'''''s5"J##J'	*J'	c|j}|ttjj|jddd|ttjj|jddd|ttjj|jddddS)NXr%Tr&WW7)rrBrr?rSrH)rCrs  rGtest_invalidz)TimedRotatingFileHandlerTest.test_invalids(Z!1!JWcG4	A	A	A	AZ!1!JWcG4	A	A	A	AZ!1!JWdWD	B	B	B	B	B	Bric	d}tjddd}tj|jddddd|}	||}|||dz||d	z}|||d
z|dS#|wxYw)Nrr%MIDNIGHTrkTr'whenintervalr@rZatTimeжi@)	rYr_rr?rSrHcomputeRolloverrYrJ)rCcurrentTimerr4rds     rG"test_compute_rollover_daily_attimez?TimedRotatingFileHandlerTest.test_compute_rollover_daily_attimesr1a((


6
6GgJPQV7%%	''44FV[<%?@@@''l(BCCFV[<%?@@@HHJJJJJBHHJJJJs
AB::Cc
ttj}||dzz
}tjddd}tj|j}tdD]f}tj|j	dd|zddd|	}	||kr	d|z
|z}n||z
}|dz}|d
z
}||z
}|
|}||kr:tdtjztdtz|||||kr|d
z
}|
|dz}||kr:tdtjztdtz||||O#|wxYwdS)NQr}rr%zW%drkTrrzfailed in timezone: %dzlocal vars: %si:	r)rVr_rYr`tm_wdayr^rr?rSrHrrttimezonelocalsrYrJ)	rCrtodayrwdaydayr4rerds	         rG#test_compute_rollover_weekly_attimez@TimedRotatingFileHandlerTest.test_compute_rollover_weekly_attimes$)++&&kE11r1a(({5!!)88		C!::'aUV;))B
#::!"D3HH #d
HL(L(E!++E22X%%2T]BCCC*VXX5666  222$;; 00H++EL,@AAX%%2T]BCCC*VXX5666  222







?		s
DF66Gc@tjd}|tj|g}t
j}tdD]B}||	d|tj
dz
}Cd}g}g}|D]}tj
|d|z}	tj|	d	dd
d}
||
|d
r |D]}||d|d|
_|D]}||d|d|D]K}tj
||}	t'|	d5}
	dddn#1swxYwYLt)|D]S\}}||}
|
}|t/|d|d
rUd|z}	|D]L}tj|\}}|||	M|D]}tj|\}}||d|||dzo)|t/|dzUdS)NrrrKz%Y-%m-%d_%H-%M-%Srrh)a.bza.b.czd.ezd.e.fz%s.logrgrT)rrr@r(rz.log.c4|dddzS)Nrir)rrs rGrzKTimedRotatingFileHandlerTest.test_compute_files_to_delete.<locals>.<lambda>sT\\&"-E-E-Nrirrirsrbz%s.log.r)r2mkdtemprshutilrmtreerYrr^rFrmrlr4r;rrr?rSrr>r	enumerategetFilesToDeleterYrZrrBrCisdigit)rCwdtimesr"r[prefixesrtrotatorsrrirMrrHr
candidatesrdrxs                 rGtest_compute_files_to_deletez9TimedRotatingFileHandlerTest.test_compute_files_to_deletes

_
5
5
5
r***


"
"
$
$r	0	0ALL%899:::($Q////BB3
	<
	<FRF!233A&??IJLMFJ@LLG
OOG$$$  ''
<<<ALL!:;;;;<!O N
<<ALL!:;;;;<		BR$$Aa
!














#8,,	C	CIAvqkG 1133JS__a000  ''

C&#66AGMM!,,EArOOBMM!$4$455556$CCAGMM!,,EArOOBKK$7$7888OOBMM&3,$?$?%B$&s6{{Q$7$?$?$A$ACCCCC	C	Cs F..F2	5F2	N)
rprqrrrrrr_r5rvr{rrrrsrirGrbrbsX_W_&EFFGF((((((TBBB


 &&&P.C.C.C.C.CrirbcPtjdi|tjdzS)Nrkrhrs)rYrl)rs rGrqrq0s,####x'9!'D'D'DDDri)rdrk)M<)Hi)Dr)r~rW0r])dayshoursctj|jd|ddd}d}||}||krh|dkra	|jrt
j|}nt
j|}|d}|d	}|d
}	tjj	|dz|zdz|	zz
}
||
z}td|d
|jdtjtd|ztjtd|ztjtd|	ztjtd|
ztjtd|ztjn5#t$r(}td|ztjYd}~nd}~wwxYw||||dS)Nr%rkrT)r'rrr@rZgr~rbr]rrzt: z ()rkzcurrentHour: %szcurrentMinute: %szcurrentSecond: %szr: %sz
result: %sz exception in diagnostic code: %s)rr?rSrHrrZr_r`	localtime	_MIDNIGHTrtr0rrsrYrJ)
rCrexpr4rrdrcurrentHour
currentMinute
currentSecondrr6rs
             rGtest_compute_rolloverr;s


6
6GgD1!QU7WW##K00&==z!!Sv8 K44 N;77"#A$K$%aDM$%aDM(2{R7G7D8EHJ7K)7*+A)1_FE!!!RVVV43:FFFF+k9
KKKK-
=CJOOOO-
=CJOOOO'A+CJ7777,/cjAAAAA SSS<q@szRRRRRRRRRSf%%%





sD*E<<
F.F))F.ztest_compute_rollover_%sz>win32evtlog/win32evtlogutil/pywintypes required for this test.ceZdZdZdS)NTEventLogHandlerTestcd}tjd|}tj|}	tjd}n7#tj$r%}|jdkrtj
dd}~wwxYwtjddi}|||
||tj|tjtjz}d}d}	tj|||	}
|
D],}|jdkrt'j||}|d	kr*d
}d|	z}|||dS)
NApplicationtest_loggingrz#Insufficient privileges to run testr*zTest Log MessageFrzTest Log Message
Tz3Record not found in event log, went back %d recordsr )win32evtlogOpenEventLogGetNumberOfEventLogRecordsrr?NTEventLogHandler
pywintypesrwinerrorrSkipTestrr9rJ
assertLessEVENTLOG_BACKWARDS_READEVENTLOG_SEQUENTIAL_READReadEventLog
SourceNamewin32evtlogutilSafeFormatMessagerB)rClogtypeelhnum_recsrQrrflagsrorpeventsr*s            rGrDz NTEventLogHandlerTest.test_basicasz&tW559#>>	 22>BBAA			zQ'(MNNN	

!5*<"=>>					+"H"M"MNNN345)#ug>>		A|~--!3Aw??C,,,ECgM3'''''sA

B A<<BN)rprqrrrDrsrirGrr_s#(((((rirceZdZdZdS)MiscTestCasecFhd}tj|t|dS)N>
rrFiltererro
RootLoggerrMPlaceHolderr\currentframerNStrFormatStyler5rN)not_exported)rcheck__all__r)rCrs  rGtest__all__zMiscTestCase.test__all__s3
	T7FFFFFFriN)rprqrrrrsrirGrrs(GGGGGrircTtjtjdddS)NLC_ALLr)renterModuleContextrrun_with_localersrirGsetUpModulers& 7" E EFFFFFri__main__r)rlogging.handlerslogging.configrrr"rYrOrr3rr:r4rrbrTrrr
r0r2test.support.script_helperrrrrtest.supportrrrr	test.support.logging_helperr
rxror_rrrhttp.serverrrurllib.parser
rsocketserverrrrrimport_deprecatedrrrrrrorTrHAVE_ASAN_FORK_BUGrTestCaserrurSILENTrTERSEEFFUSIVErr	TALKATIVEr
CHATTERBOXBORINGr^rrrrrrrrrr8rrrrrrrrr r&r.r3rrr5rIr:rprurrrr!r(r3r8rFIPV6_ENABLEDrJrPrzrrrrrrrrrrrrrr?r
unittest.mockrrrlr tzinforrZr(r,r~rprzrrrrrrrr'rVrrrr%r,rbrqrrrrrrrrpmainrsrirG<module>rs["








												



				















NNNNNNNN""""""&&&&&&))))))((((((333333::::::::++++++++DDDDDDDDDDDD-?,Z88))'2263333333333333666155K5/JJJ6	KKKK			D	$HOEGG
j'j'j'j'j'x j'j'j'ZUIUIUIUIUIUIUIUIn<%<%<%<%<%h<%<%<%L		
eFFQJ''(*	'**)
+
+,
(+++++gn+++::::::::V'V'V'V'V'V'V'V'rW2W2W2W2W2(W2W2W2t11111111#####-###







'@'@'@'@'@'@'@'@XG;G;G;G;G;U%G;G;G;T000006000d'''''\:'''R11111L"4111>-----L"4---^769((((((}(((((((((((
! "",,..h/.#"@f5f5f5f5f5f5f5f5R-----*---BBBBBXBBBJ! "",,..W+W+W+W+W+W+W+/.#"W+rWWVY//1HII'''''-''JI' ! "",,..>:>:>:>:>:(>:>:/.#">:@WWVY//1HII'''''1''JI' ! "",,..IBIBIBIBIBIBIB/.#"IBVWWVY//1HII'''''-''JI' ]/;==
6
6
6
6
6-
6
6==
6! "",,..K K K K K hK K /.#"K Z11111111h.L.L.L.L.L8.L.L.Lb%K%K%K%K%K8%K%K%KP....







###					G)			y*y*y*y*y*Xy*y*y*v)99999(999.h"					w(			     8   F-,..iPiPiPiPiPxiPiP/.iPV77_--b&######0022]&]&]&]&]&H]&]&32]&@x!(/
cee........Y)Y)Y)Y)Y)H%'9Y)Y)Y)x&&&&&W7&&&GGGGGX.GGG&AAAAAHAAA,$;$;$;$;$;X$;$;$;N								$$$$$w*$$$T/T/T/T/T/8T/T/T/nx/x/x/x/x/(x/x/x/vg=g=g=g=g=Hg=g=g=R}#}#}#}#}#h'}#}#}#@
i9i9i9i9i9)i9i9i9X`>`>`>`>`>-`>`>`>FHHHHH8HHH455555l555,jjjjjljjjXeCeCeCeCeC<eCeCeCPEEE %,1B///0
)d)dID#*.3    BG(*Dt*KMbcccc["bcc ( ( ( ( (H ( (dc (FGGGGG8$GGGGGGzHMOOOOOs$C$$C21C26C;;DD