Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
supervisor / tests / __pycache__ / test_rpcinterfaces.cpython-38.pyc
Size: Mime:
U

VƧ\>—ã@sNddlZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
dd	lmZdd
lmZddlmZmZddlmZGd
d„dejƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„dejƒZGdd„dejƒZGdd„dƒZdd„ZedkrJejdddS)éN)ÚDummyOptions)ÚDummySupervisor)ÚDummyProcess)ÚDummyPConfig)ÚDummyPGroupConfig)ÚDummyProcessGroup)ÚPopulatedDummySupervisor)Ú_NOW)Ú_TIMEFORMAT)Ú	as_stringÚPY2)Ú	Automaticc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestBasecCsdS©N©©Úselfrrú2./build/lib/supervisor/tests/test_rpcinterfaces.pyÚsetUpszTestBase.setUpcCsdSrrrrrrÚtearDownszTestBase.tearDownc
OsZddlm}z|||ŽWn2|jk
rL}z| |j|¡W5d}~XYn
Xtdƒ‚dS)Nr©ÚxmlrpczDidn't raise)Ú
supervisorrÚRPCErrorÚassertEqualÚcodeÚAssertionError)rrÚcallableÚargsÚkwrÚinstrrrÚ_assertRPCErrors zTestBase._assertRPCErrorN)Ú__name__Ú
__module__Ú__qualname__rrr!rrrrrsrc@s,eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚMainXMLRPCInterfaceTestscCsddlm}|jS©Nrr)rrZRootRPCInterface©rrrrrÚ_getTargetClass(sz(MainXMLRPCInterfaceTests._getTargetClasscOs| ¡||ŽSr©r(©rrrrrrÚ_makeOne,sz!MainXMLRPCInterfaceTests._makeOnecCs| dg¡}| |jd¡dS)N)rN)r+rr©rÚ	interfacerrrÚ	test_ctor/sz"MainXMLRPCInterfaceTests.test_ctorcCs†tƒ}| d|fg¡}ddlm}| |jj|j|dg¡| |jj|j|dg¡| |jj|j|ddg¡| 	| |dg¡d¡dS)	NÚdummyrrznotthere.hellozsupervisor._readFilezdummy.helloéúHello!)
ÚDummyRPCInterfacer+rrr!ÚFaultsZUNKNOWN_METHODZtraverseÚINCORRECT_PARAMETERSr)rr/r-rrrrÚ
test_traverse3s8
ÿ
þ
þÿÿz&MainXMLRPCInterfaceTests.test_traverseN)r"r#r$r(r+r.r5rrrrr%&sr%c@s´eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAdB„Z#dCdD„Z$dEdF„Z%dGdH„Z&dIdJ„Z'dKdL„Z(dMdN„Z)dOdP„Z*dQdR„Z+dSdT„Z,dUdV„Z-dWdX„Z.dYdZ„Z/d[d\„Z0d]d^„Z1d_d`„Z2dadb„Z3dcdd„Z4dedf„Z5dgdh„Z6didj„Z7dkdl„Z8dmdn„Z9dodp„Z:dqdr„Z;dsdt„Z<dudv„Z=dwdx„Z>dydz„Z?d{d|„Z@d}d~„ZAdd€„ZBdd‚„ZCdƒd„„ZDd…d†„ZEd‡dˆ„ZFd‰dŠ„ZGd‹dŒ„ZHddŽ„ZIdd„ZJd‘d’„ZKd“d”„ZLd•d–„ZMd—d˜„ZNd™dš„ZOd›dœ„ZPddž„ZQdŸd „ZRd¡d¢„ZSd£d¤„ZTd¥d¦„ZUd§d¨„ZVd©dª„ZWd«d¬„ZXd­d®„ZYd¯d°„ZZd±d²„Z[d³d´„Z\dµd¶„Z]d·d¸„Z^d¹dº„Z_d»d¼„Z`d½d¾„Zad¿dZbdÁd„ZcdÃdĄZddÅdƄZedÇdȄZfdÉdʄZgdËd̄ZhdÍd΄ZidÏdЄZjdÑd҄ZkdÓdԄZldÕdքZmd×d؄ZndÙdڄZodÛd܄ZpdÝdބZqdßdà„Zrdádâ„Zsdãdä„Ztdådæ„Zudçdè„Zvdédê„ZwdëS)ìÚ'SupervisorNamespaceXMLRPCInterfaceTestscCsddlm}|jS)Nr©Úrpcinterface)rr8ÚSupervisorNamespaceRPCInterface)rr8rrrr(Csz7SupervisorNamespaceXMLRPCInterfaceTests._getTargetClasscOs| ¡||ŽSrr)r*rrrr+Gsz0SupervisorNamespaceXMLRPCInterfaceTests._makeOnecCsbddlm}ddlm}tƒ}| |¡}| d¡| |jd¡|j	|j
_| |j
j|jd¡dS)Nrr)ÚSupervisorStatesÚfoo)rrÚsupervisor.supervisordr:rr+Z_updaterÚupdate_textZSHUTDOWNÚoptionsÚmoodr!r3ZSHUTDOWN_STATE)rrr:Úsupervisordr-rrrÚtest_updateJs


ÿz3SupervisorNamespaceXMLRPCInterfaceTests.test_updatecCsDddlm}tƒ}| |¡}| ¡}| ||j¡| |jd¡dS)Nrr7Ú
getAPIVersion)rr8rr+rBrZAPI_VERSIONr=)rr8r@r-ÚversionrrrÚtest_getAPIVersionUs
z:SupervisorNamespaceXMLRPCInterfaceTests.test_getAPIVersioncCs$tƒ}| |¡}| |j|j¡dSr)rr+rrBZ
getVersion©rr@r-rrrÚ3test_getAPIVersion_aliased_to_deprecated_getVersion]s
z[SupervisorNamespaceXMLRPCInterfaceTests.test_getAPIVersion_aliased_to_deprecated_getVersioncCsDtƒ}| |¡}| ¡}ddlm}| ||j¡| |jd¡dS)Nr)r>ÚgetSupervisorVersion)rr+rGrr>rZVERSIONr=)rr@r-rCr>rrrÚtest_getSupervisorVersionbs
zASupervisorNamespaceXMLRPCInterfaceTests.test_getSupervisorVersioncCs:tƒ}| |¡}| ¡}| ||jj¡| |jd¡dS)NÚgetIdentification)rr+rIrr>Ú
identifierr=)rr@r-rJrrrÚtest_getIdentificationks

z>SupervisorNamespaceXMLRPCInterfaceTests.test_getIdentificationcCsfddlm}tƒ}| |¡}| ¡}|jj}||ƒ}| |d|¡| |d|¡| |jd¡dS)Nr)ÚgetSupervisorStateDescriptionÚ	statecodeÚ	statenameÚgetState)	Úsupervisor.statesrLrr+rOr>r?rr=)rrLr@r-Z	stateinforMrNrrrÚ
test_getStaters
z5SupervisorNamespaceXMLRPCInterfaceTests.test_getStatecCs>tƒ}t|ƒ}| |¡}| | ¡| ¡¡| |jd¡dS)NÚgetPID)rrr+rrRZget_pidr=)rr>r@r-rrrÚtest_getPID}s

z3SupervisorNamespaceXMLRPCInterfaceTests.test_getPIDcCs$tƒ}| |¡}| |j|j¡dSr)rr+rZreadMainLogÚreadLogrErrrÚ.test_readLog_aliased_to_deprecated_readMainLog„s
zVSupervisorNamespaceXMLRPCInterfaceTests.test_readLog_aliased_to_deprecated_readMainLogcCs8ddlm}tƒ}| |¡}|j|jj|jddddS)Nrrr0©ÚoffsetZlength)rrrr+r!r3ÚNO_FILErT©rrr@r-rrrÚtest_readLog_unreadable‰s
ÿz?SupervisorNamespaceXMLRPCInterfaceTests.test_readLog_unreadablec	CsŠddlm}tƒ}| |¡}z\|jj}t|dƒ}| 	d¡W5QRX|j
|jj|j
ddd|j
|jj|j
dddW5t |¡XdS)Nrrúw+Áxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxéÿÿÿÿr0rV)rrrr+ÚosÚremover>ÚlogfileÚopenÚwriter!r3Ú
BAD_ARGUMENTSrT)rrr@r-r`ÚfrrrÚtest_readLog_badargss$

ÿ
þ
z<SupervisorNamespaceXMLRPCInterfaceTests.test_readLog_badargsc	CsÎtƒ}| |¡}|jj}z¤t|dƒ}| d¡| d¡W5QRX|jddd}| 	|j
d¡| 	|d¡|jddd}| 	|d¡|jddd}| 	|d¡|jd	dd}| 	|d
¡W5t |¡XdS)Nr[r\ÁyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrVrTÁxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyééüÿÿÿÚyyyy)rr+r>r`r^r_rarbrTrr=)rr@r-r`rdÚdatarrrÚtest_readLog s"

z4SupervisorNamespaceXMLRPCInterfaceTests.test_readLogcCs2ddlm}tƒ}| |¡}| |jj|j¡dSr&)rrrr+r!r3rXÚclearLogrYrrrÚtest_clearLog_unreadable´s
z@SupervisorNamespaceXMLRPCInterfaceTests.test_clearLog_unreadablecCsVddlm}tƒ}|jg|_d|_t|ƒ}| |¡}| |j	|j
¡| |jd¡dS)Nrrr0rm)
rrrr`ÚexistingZremove_errorrr+ÚassertRaisesrrmrr=)rrr>r@r-rrrÚtest_clearLog_unremoveableºs

zBSupervisorNamespaceXMLRPCInterfaceTests.test_clearLog_unremoveablecCsztƒ}|jg|_t|ƒ}| |¡}| ¡}| |jd¡| |d¡| |jd|j¡|j	j
jD]}| |jd¡qbdS)NrmTr)
rr`rorr+rmrr=Zremovedr>ZloggerZhandlersZreopened)rr>r@r-ÚresultZhandlerrrrÚ
test_clearLogÄs

z5SupervisorNamespaceXMLRPCInterfaceTests.test_clearLogcCs8tƒ}| |¡}| ¡}| |d¡| |jjd¡dS)NTr])rr+Zshutdownrr>r?©rr@r-ÚvaluerrrÚ
test_shutdownÐs

z5SupervisorNamespaceXMLRPCInterfaceTests.test_shutdowncCs8tƒ}| |¡}| ¡}| |d¡| |jjd¡dS)NTr)rr+Zrestartrr>r?rtrrrÚtest_restart×s

z4SupervisorNamespaceXMLRPCInterfaceTests.test_restartcsntƒ}t|ƒ}| |¡}t|dƒgt|dƒgt|dƒgg‰‡fdd„|_| ¡}| |dgdgdggg¡dS)NZaddedZchangedZdroppedcsˆSrrr©ZchangesrrÚ<lambda>çózKSupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfig.<locals>.<lambda>)rrr+rZdiff_to_activeÚreloadConfigr)rr>r@r-rurrxrÚtest_reloadConfigÞs



þz9SupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfigcCsHddlm}tƒ}dd„}||_t|ƒ}| |¡}| |jj|j	¡dS)Nrrc_stdƒ‚dS)Nr;)Ú
ValueError)ÚargrrrrÚ	raise_excïszmSupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfig_process_config_raises_ValueError.<locals>.raise_exc)
rrrZprocess_configrr+r!r3ZCANT_REREADr{)rrr>rr@r-rrrÚ2test_reloadConfig_process_config_raises_ValueErrorìs
zZSupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfig_process_config_raises_ValueErrorc	Csâddlm}ddlm}tƒ}||ƒ}t|dtdd}t|d|gd}|g|j_	| 
|¡}| d¡}| |¡| 
t|j ¡ƒdg¡| |jj|jd¡| 
t|j ¡ƒdg¡| |jj|jd	¡| 
t|j ¡ƒdg¡dS©
Nr©Ú
Supervisorrr;F©Ú	autostartÚgroup1©ZpconfigsZasdf)r<rƒrrrrÚ__file__rr>Úprocess_group_configsr+ÚaddProcessGroupÚ
assertTruerÚlistÚprocess_groupsÚkeysr!r3Z
ALREADY_ADDEDÚBAD_NAME)	rrƒrr>r@ÚpconfigÚgconfigr-rrrrrÚtest_addProcessGroupös*




ÿ
ÿz<SupervisorNamespaceXMLRPCInterfaceTests.test_addProcessGroupcCs†ddlm}tƒ}||ƒ}t|dtdd}t|d|gd}|g|j_| |¡}| 	d¡| 
d¡}| |¡| t
|j ¡ƒg¡dS)Nrr‚r;Fr„r†r‡)r<rƒrrrˆrr>r‰r+rŠÚremoveProcessGroupr‹rrŒrrŽ)rrƒr>r@rr‘r-rrrrrÚtest_removeProcessGroup
s




z?SupervisorNamespaceXMLRPCInterfaceTests.test_removeProcessGroupcCsrddlm}ddlm}tƒ}||ƒ}t|dtdd}t|d|gd}|g|j_	| 
|¡}| |jj
|jd	¡dSr)r<rƒrrrrrˆrr>r‰r+r!r3rr“)rrƒrr>r@rr‘r-rrrÚ test_removeProcessGroup_bad_names


ÿzHSupervisorNamespaceXMLRPCInterfaceTests.test_removeProcessGroup_bad_namec	CsŒddlm}ddlm}tƒ}||ƒ}t|dtdd}t|d|gd}|g|j_	t
|ƒ}d	g|_d|i|_| 
|¡}| |jj|jd¡dS)
Nrr‚rr;Fr„r†r‡é{)r<rƒrrrrrˆrr>r‰rZunstopped_processesrr+r!r3Z
STILL_RUNNINGr“)	rrƒrr>r@rr‘Úprocessr-rrrÚ%test_removeProcessGroup_still_running*s



ÿzMSupervisorNamespaceXMLRPCInterfaceTests.test_removeProcessGroup_still_runningcCs^ddlm}tƒ}t|dtdd}t|d|ƒ}| ddd¡| |¡}| |j	j
|jd¡dS)Nrrr;Fr„Úpidé
)rrrrrˆrÚset_procattrr+r!r3ZALREADY_STARTEDÚstartProcess©rrr>rr@r-rrrÚ!test_startProcess_already_started:s
þzISupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_already_startedcCsPtƒ}t|dtdd}t|d|ƒ}| |¡}ddlm}| |jj	|j
d¡dS)Nr;Fr„r†rrz
group2:foo©rrrˆrr+rrr!r3rrœ©rr>rr@r-rrrrÚ test_startProcess_bad_group_nameFs

ÿzHSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_bad_group_namecCsPtƒ}t|dtdd}t|d|ƒ}| |¡}ddlm}| |jj	|j
d¡dS)Nr;Fr„r†rrz
group1:barrŸr rrrÚ"test_startProcess_bad_process_nameOs

ÿzJSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_bad_process_namecCsrtƒ}t|dddd}ddlm}t|d|ƒ}|jdjd}||_| |¡}ddl	m
}| |jj
|jd¡dS)Nr;ú/foo/barFr„r)ÚNotFoundr)rrÚsupervisor.optionsr¤rrÚ	processesÚexecv_arg_exceptionr+rrr!r3rXrœ)rr>rr¤r@r—r-rrrrÚ test_startProcess_file_not_foundXs

ÿzHSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_file_not_foundcCsrtƒ}t|dddd}ddlm}t|d|ƒ}|jdjd}||_| |¡}ddl	m
}| |jj
|jd¡dS)Nr;r£Fr„r)Ú
NotExecutabler)rrr¥r©rrr¦r§r+rrr!r3ZNOT_EXECUTABLErœ)rr>rr©r@r—r-rrrrÚ%test_startProcess_file_not_executableds

ÿzMSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_file_not_executablecCs‚ddlm}tƒ}t|dtdd}ddlm}t|d|ƒ}| dd|j	¡|j
djd}d|_| 
|¡}| |jj|jd¡dS)	Nrrr;Fr„©Ú
ProcessStatesÚstateÚabc)rrrrrˆÚsupervisor.processr¬rr›ÚSTOPPEDrr¦Úspawnerrr+r!r3ÚSPAWN_ERRORrœ)rrr>rr¬r@r—r-rrrÚtest_startProcess_spawnerrps
ýzBSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerrcCs˜tƒ}t|dtddd}ddlm}t|d|ƒ}| dd|j¡| |¡}| 	d¡}|j
djd}| |j
d¡| |jd	¡|j|_| |d¡dS)
Nr;Fç{®Gáz„?©r…Ú	startsecsrr«r­Trœ)rrrˆr¯r¬rr›r°r+rœrr¦rÚspawnedr=ÚRUNNINGr­©rr>rr¬r@r-rrr—rrrÚtest_startProcess€s
ÿ

z9SupervisorNamespaceXMLRPCInterfaceTests.test_startProcessc	s¨ddlm}tƒ}t|dtdd}ddlm‰t|d|ƒ}| ddˆj	¡|j
djd‰‡‡fdd	„}‡fd
d„}|ˆ_|ˆ_
| |¡}| d¡}| |jj|¡dS)Nrrr;Fr„r«r­csdˆ_ˆjˆ_dS©NT©r·ZSTARTINGr­r©r¬r—rrÚspawn—sz[SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerr_in_onwait.<locals>.spawncs
dˆ_dS)Nr®)r±r)r—rrÚ
transitionšsz`SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerr_in_onwait.<locals>.transition)rrrrrˆr¯r¬rr›r°rr¦r¾r¿r+rœr!r3r²)	rrr>rr@r¾r¿r-Úcallbackrr½rÚ$test_startProcess_spawnerr_in_onwaits

zLSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerr_in_onwaitcstƒ}t|dtdd}ddlm‰t|d|ƒ}| ddˆj¡|jdj	d‰‡‡fdd„}|ˆ_
| |¡}| d¡}ˆj
ˆ_| |ƒd	¡dS)
Nr;Fr„rr«r­csdˆ_ˆjˆ_dSr»r¼rr½rrr¾©szZSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_success_in_onwait.<locals>.spawnT)rrrˆr¯r¬rr›r°rr¦r¾r+rœr¸r­r)rr>rr@r¾r-rÀrr½rÚ#test_startProcess_success_in_onwait¢s

zKSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_success_in_onwaitcCs’tƒ}t|dtdd}ddlm}t|d|ƒ}| dd|j¡| |¡}|j	ddd}| 
|d¡|jdjd}| 
|j
d¡| 
|jd	¡dS)
Nr;Fr„rr«r­©ÚwaitTrœ)rrrˆr¯r¬rr›r°r+rœrrr¦r·r=r¹rrrÚtest_startProcess_nowait²s
z@SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_nowaitc
sÜtƒ}t|dtdd}ddlm‰ddlm}t|d|ƒ}| ddˆj	¡| 
|¡}|jdjd‰‡‡fdd	„}|ˆ_
| dd
¡}|ƒ}| ||j¡| ˆjd¡| |jd¡ˆjˆ_dd
lm}	| |	jj|¡dS)Nr;Fr„rr«©Úhttpr­csdˆ_ˆjˆ_dSr»r¼rr½rrr¾ÈszjSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_abnormal_term_process_not_running.<locals>.spawnédTrœr)rrrˆr¯r¬rrÇrr›r°r+rr¦r¾rœrÚNOT_DONE_YETr·r=ZBACKOFFr­rr!r3ZABNORMAL_TERMINATION)
rr>rrÇr@r-r¾rÀrrrrr½rÚ3test_startProcess_abnormal_term_process_not_running¿s$
z[SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_abnormal_term_process_not_runningcCsŠtƒ}t|dtddd}t|dtddd}t|d||ƒ}d	d
lm}| dd|j¡| dd|j¡| |¡}| 	d¡| 
|jd
¡dS)NÚprocess1Fr´rµÚprocess2é©Úpriorityr¶r;rr«r­úfoo:*ÚstartProcessGroup)rrrˆrr¯r¬r›r°r+rœrr=©rr>Úpconfig1Úpconfig2r@r¬r-rrrÚ/test_startProcess_splat_calls_startProcessGroupÕs"
ÿ
ÿÿ

zWSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_splat_calls_startProcessGroupc	Csütƒ}t|dtddd}t|dtddd}t|d||ƒ}dd	lm}dd
lm}| dd|j	¡| dd|j	¡| 
|¡}| d¡}| |ƒd|j
ddd
œd|j
ddd
œg¡| |jd¡|jdjd}	| |	jd¡|jdjd}
| |
jd¡dS)NrËr0r´rÎrÌrÍr;rr«©r3r­ÚOK©ÚgroupÚstatusÚdescriptionÚnamerœT)rrrˆrr¯r¬Úsupervisor.xmlrpcr3r›r°r+rÑrÚSUCCESSr=rr¦r·)rr>rÓrÔr@r¬r3r-rÀrËrÌrrrÚtest_startProcessGroupäsF
ÿ
ÿÿ

ýýüþz>SupervisorNamespaceXMLRPCInterfaceTests.test_startProcessGroupc		Cs¶tƒ}t|dtddd}t|dtddd}t|d||ƒ}dd	lm}| dd
|j¡| dd
|j¡| |¡}|j	ddd}dd
l
m}| |ƒd|j
dddœd|j
dddœg¡dS©NrËr0r´rÎrÌrÍr;rr«r­FrÃrÖr×rØ)rrrˆrr¯r¬r›r°r+rÑrÝr3rrÞ©	rr>rÓrÔr@r¬r-rÀr3rrrÚtest_startProcessGroup_nowaits<
ÿ
ÿÿ
ýýüþzESupervisorNamespaceXMLRPCInterfaceTests.test_startProcessGroup_nowaitcCs4ddlm}tƒ}| |¡}| |jj|jd¡dS©Nrrr;)rrrr+r!r3rrÑrYrrrÚtest_startProcessGroup_badname"s

ÿzFSupervisorNamespaceXMLRPCInterfaceTests.test_startProcessGroup_badnamec	Csútƒ}t|dtddd}t|dtddd}t|d||ƒ}dd	lm}| dd
|j¡| dd
|j¡| |¡}| 	¡}ddl
m}| |ƒd|j
ddd
œd|j
ddd
œg¡| |jd¡|jdjd}	| |	jd¡|jdjd}
| |
jd¡dS)NrËr0r´rÎrÌrÍr;rr«r­rÖr×rØrœT)rrrˆrr¯r¬r›r°r+ÚstartAllProcessesrÝr3rrÞr=rr¦r·)rr>rÓrÔr@r¬r-rÀr3rËrÌrrrÚtest_startAllProcesses*sF
ÿ
ÿÿ
ýýüþ
z>SupervisorNamespaceXMLRPCInterfaceTests.test_startAllProcessesc		Cs´tƒ}t|dtddd}t|dtddd}t|d||ƒ}dd	lm}| dd
|j¡| dd
|j¡| |¡}|j	dd}dd
l
m}| |ƒd|j
dddœd|j
dddœg¡dSrà)rrrˆrr¯r¬r›r°r+rårÝr3rrÞrárrrÚtest_startAllProcesses_nowaitNs<
ÿ
ÿÿ
ýýüþzESupervisorNamespaceXMLRPCInterfaceTests.test_startAllProcesses_nowaitcCsätƒ}t|ddƒ}ddlm}t|d|ƒ}| dd|j¡| |¡}| d¡}| 	|¡| 
|jd¡|jdj
d}| 
|jd¡| 
|jd¡| |j¡| 
|j|j¡| 	|j¡| 
t|jdj
ƒd¡| 
|jd¡dS)Nr;ú/bin/foorr«r­ÚstopProcessr0)rrr¯r¬rr›r¸r+rér‹rr=rr¦ZbackoffZdelayÚassertFalseÚkillingr­r°Ústop_report_calledÚlenr¹rrrÚtest_stopProcessjs"


z8SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcesscCsštƒ}t|dtƒ}ddlm}t|d|ƒ}| dd|j¡| |¡}|j	ddd}| 
|d¡|jdjd}| 
|j
d¡| |j¡| 
|jd¡dS)	Nr;rr«r­FrÃTré)rrrˆr¯r¬rr›r¸r+rérrr¦Ústop_calledr‹rìr=r¹rrrÚtest_stopProcess_nowait}s
z?SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_nowaitc	sŽtƒ}t|ddƒ}ddlm}t|d|ƒ}|jdjd}|j|j|j	g‰‡fdd„}||_
| |¡}| d¡}| 
|jd¡| |ƒ¡dS)Nr;rèrr«cs
ˆ d¡S©Nr©Úpopr©ÚLrrÚ	get_state”sz]SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_success_in_onwait.<locals>.get_stateré)rrr¯r¬rrr¦r¸ÚSTOPPINGr°rör+rérr=r‹)	rr>rr¬r@r—rör-rÀrrôrÚ"test_stopProcess_success_in_onwait‹sþ

zJSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_success_in_onwaitc
sœddlm}tƒ}t|ddƒ}ddlm}t|d|ƒ}|jdjd}|j	|j
|j
g‰‡fdd„}||_| |¡}| 
d¡}	| |	ƒ|¡| |jd¡dS)	Nr©rÉr;rèr«cs
ˆ d¡Srñròrrôrrrö¦szYSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_NDY_in_onwait.<locals>.get_stateré)Úsupervisor.httprÉrrr¯r¬rrr¦r¸r÷rör+rérr=)
rrÉr>rr¬r@r—rör-rÀrrôrÚtest_stopProcess_NDY_in_onwaitœs þ

zFSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_NDY_in_onwaitcCs2ddlm}tƒ}| |¡}| |j|jd¡dS)NrrÖr;)rÝr3rr+r!rré)rr3r@r-rrrÚtest_stopProcess_bad_name®s
ÿzASupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_bad_namecCsfddlm}ddlm}tƒ}t|ddƒ}t|d|ƒ}| dd|j¡| 	|¡}| 
|j|jd¡dS)Nrr«rÖr;rèr­)
rPr¬rÝr3rrrr›ZEXITEDr+r!ÚNOT_RUNNINGré)rr¬r3r>rr@r-rrrÚtest_stopProcess_not_runningµs
zDSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_not_runningcCs\ddlm}tƒ}t|ddƒ}t|d|ƒ}| dddd„¡| |¡}| |j|j	d¡dS)NrrÖr;rèÚstopcSsdS)NZunstoppablerrrrrryÄrzzQSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_failed.<locals>.<lambda>)
rÝr3rrrr›r+r!ÚFAILEDré)rr3r>rr@r-rrrÚtest_stopProcess_failed¿s
z?SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_failedc
	Cstƒ}t|dddd}t|dddd}dd	lm}t|d
||ƒ}| dd|j¡| dd|j¡| |¡}| d
¡}| 	|j
d¡dd
lm}|j
}	|ƒ}	|	|j
k	r”q¨q”ddlm}
| 	|	|
jd
dddœ|
jd
dddœg¡|jd
jd}| 	|jd¡|jd
jd}| 	|jd¡dS)NrËrèr0©rÏrÌú	/bin/foo2rÍrr«r;r­ÚstopProcessGrouprÆrÖrשrÚrÙrÜrÛT)rrr¯r¬rr›r¸r+rrr=rrÇrÉrÝr3rÞrr¦rï©
rr>rÓrÔr¬r@r-rÀrÇrur3rËrÌrrrÚtest_stopProcessGroupÈsDÿ


ýýúz=SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcessGroupc		Cs²tƒ}t|dtdd}t|dtdd}t|d||ƒ}ddlm}| dd	|j¡| dd	|j¡| |¡}|j	dd
d}ddl
m}| |ƒdd
d|j
dœdd
d|j
dœg¡dS)NrËr0rrÌrÍr;rr«r­FrÃrÖr×)rÜrÛrÙrÚ)rrrˆrr¯r¬r›r¸r+rrÝr3rrÞrárrrÚtest_stopProcessGroup_nowaitìs4ÿ
ýýûþzDSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcessGroup_nowaitcCs4ddlm}tƒ}| |¡}| |jj|jd¡dSrã)rrrr+r!r3rrrYrrrÚtest_stopProcessGroup_badnames

ÿzESupervisorNamespaceXMLRPCInterfaceTests.test_stopProcessGroup_badnamecCsŠtƒ}t|dtddd}t|dtddd}t|d||ƒ}d	d
lm}| dd|j¡| dd|j¡| |¡}| 	d¡| 
|jd
¡dS)NrËFr´rµrÌrÍrÎr;rr«r­rÐr)rrrˆrr¯r¬r›r°r+rérr=rÒrrrÚ-test_stopProcess_splat_calls_stopProcessGroups"
ÿ
ÿÿ

zUSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_splat_calls_stopProcessGroupc
	Cstƒ}t|dddd}t|dddd}dd	lm}t|d
||ƒ}| dd|j¡| dd|j¡| |¡}| ¡}| 	|j
d¡dd
lm}|j
}	|ƒ}	|	|j
k	r’q¦q’ddlm}
| 	|	|
jd
dddœ|
jd
dddœg¡|jd
jd}| 	|jd¡|jd
jd}| 	|jd¡dS)NrËrèr0rrÌrrÍrr«r;r­ÚstopAllProcessesrÆrÖr×rT)rrr¯r¬rr›r¸r+rrr=rrÇrÉrÝr3rÞrr¦rïrrrrÚtest_stopAllProcessessDÿ

ýýúz=SupervisorNamespaceXMLRPCInterfaceTests.test_stopAllProcessesc		Cs°tƒ}t|dtdd}t|dtdd}t|d||ƒ}ddlm}| dd	|j¡| dd	|j¡| |¡}|j	d
d}ddl
m}| |ƒd|j
d
ddœd|j
d
ddœg¡dS)NrËr0rrÌrÍr;rr«r­FrÃrÖr×rØ)rrrˆrr¯r¬r›r¸r+rrÝr3rrÞrárrrÚtest_stopAllProcesses_nowaitAs4ÿ
ýýüþzDSupervisorNamespaceXMLRPCInterfaceTests.test_stopAllProcesses_nowaitcCsŽtƒ}t|ddƒ}ddlm}t|d|ƒ}| dd|j¡| |¡}| dd¡}| 	|j
d¡| 	|d¡|j|jj
d}| 	|jd¡dS)	Nr;rèrr«r­ršÚ
signalProcessT)rrr¯r¬rr›r¸r+rrr=rÚ
group_namer¦Úsent_signal)rr>rr¬r@r-rrÚprrrÚ%test_signalProcess_with_signal_number[s
zMSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_with_signal_numbercCs¦tƒ}t|ddƒ}ddlm}t|d|ƒ}| dd|j¡ddlm}d}||ƒ}| 	|¡}| 
d|¡}	| |jd¡| |	d	¡|j
|jjd}
| |
j|¡dS)
Nr;rèrr«r­©Ú
signal_numberÚquitrT)rrr¯r¬rr›r¸Úsupervisor.datatypesrr+rrr=rrr¦r)rr>rr¬r@rÚsignameÚsignumr-rrrrrrÚ#test_signalProcess_with_signal_namejs
zKSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_with_signal_namecCsjtƒ}t|ddƒ}ddlm}ddlm}t|d|ƒ}| dd|j¡| 	|¡}| 
|jj|j
dd¡dS)Nr;rèrr«rr­é›)rrr¯r¬rrrr›r¸r+r!r3Z
BAD_SIGNALr©rr>rr¬rr@r-rrrÚtest_signalProcess_badsignal}s
ÿzDSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_badsignalcCsjtƒ}t|ddƒ}ddlm}ddlm}t|d|ƒ}| dd|j¡| 	|¡}| 
|jj|j
dd¡dS)Nr;rèrr«rr­rš)rrr¯r¬rrrr›r°r+r!r3rýrrrrrÚtest_signalProcess_notrunning‰s
ÿzESupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_notrunningc
CsŽtƒ}t|ddƒ}ddlm}ddlm}t|d|ƒ}| dd|j¡dd„}|j	|j
}|jd}||_| 
|¡}	| |jj|	jdd	¡dS)
Nr;rèrr«rr­cSsdS)NÚmsgr)ZsigrrrÚsignalreturnœszgSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_signal_returns_message.<locals>.signalreturnrš)rrr¯r¬rrrr›r¸rrr¦Úsignalr+r!r3rr)
rr>rr¬rr@rÚpgroupÚprocr-rrrÚ)test_signalProcess_signal_returns_message•s"

ÿzQSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_signal_returns_messagec	Cstƒ}t|ddƒ}t|ddƒ}ddlm}t|d||ƒ}| dd|j¡| dd|j¡| |¡}| d	d
¡}| 	|j
d¡t|t 
d¡d
}ddlm}| 	||jddddœ|jddddœg¡|jdjd}	| 	|	jd
¡|jdjd}
| 	|
jd
¡dS)z Test that sending foo:* works rËrèrÌrrr«r;r­rÐršÚsignalProcessGrouprÜ©ÚkeyrÖr×rN)rrr¯r¬rr›r¸r+rrr=ÚsortedÚoperatorÚ
itemgetterrÝr3rÞrr¦r©rr>rÓrÔr¬r@r-rrr3rËrÌrrrÚtest_signalProcess_withgroup§s<ÿ
ýýúzDSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_withgroupc	Cstƒ}t|ddƒ}t|ddƒ}ddlm}t|d||ƒ}| dd|j¡| dd|j¡| |¡}| dd	¡}| 	|j
d
¡t|t 
d¡d}dd
lm}| 	||jddddœ|jddddœg¡|jdjd}	| 	|	jd	¡|jdjd}
| 	|
jd	¡dS)NrËrèrÌrrr«r;r­ršr$rÜr%rÖr×r)rrr¯r¬rr›r¸r+r$rr=r'r(r)rÝr3rÞrr¦rr*rrrÚ*test_signalProcessGroup_with_signal_numberÊs<ÿ
ýýúzRSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcessGroup_with_signal_numbercCs¾tƒ}t|ddƒ}ddlm}t|d|ƒ}| dd|j¡ddlm}d}||ƒ}| 	|¡}| 
d|¡}	| |jd	¡dd
l
m}
| |	|
jddddœg¡|jdjd}| |j|¡dS)
NrËrèrr«r;r­rZtermr$rÖr×r)rrr¯r¬rr›r¸rrr+r$rr=rÝr3rÞrr¦r©rr>rÓr¬r@rrrr-rrr3rËrrrÚ(test_signalProcessGroup_with_signal_nameês*
ýÿzPSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcessGroup_with_signal_namecCsˆddlm}tƒ}t|ddƒ}t|ddƒ}ddlm}t|d||ƒ}| dd	|j¡| dd	|j¡| 	|¡}| 
|jj|j
d
d¡dS)NrrrËrèrÌrr«r;r­Úbarrš)rrrrr¯r¬rr›r¸r+r!r3rr$)rrr>rÓrÔr¬r@r-rrrÚ#test_signalProcessGroup_nosuchgroups ÿ

ÿzKSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcessGroup_nosuchgroupc	Cstƒ}t|ddƒ}t|ddƒ}ddlm}t|d||ƒ}| dd|j¡| dd|j¡| |¡}| d	¡}| 	|j
d
¡t|t 
d¡d}dd
lm}| 	||jddddœ|jddddœg¡|jdjd}	| 	|	jd	¡|jdjd}
| 	|
jd	¡dS)NrËrèrÌrrr«r;r­ršÚsignalAllProcessesrÜr%rÖr×r)rrr¯r¬rr›r¸r+r1rr=r'r(r)rÝr3rÞrr¦rr*rrrÚ*test_signalAllProcesses_with_signal_numbers<ÿ

ýýúzRSupervisorNamespaceXMLRPCInterfaceTests.test_signalAllProcesses_with_signal_numbercCs¼tƒ}t|ddƒ}ddlm}t|d|ƒ}| dd|j¡ddlm}d}||ƒ}| 	|¡}| 
|¡}	| |jd	¡dd
l
m}
| |	|
jddddœg¡|jdjd}| |j|¡dS)
NrËrèrr«r;r­rZhupr1rÖr×r)rrr¯r¬rr›r¸rrr+r1rr=rÝr3rÞrr¦rr-rrrÚ(test_signalAllProcesses_with_signal_name4s*

ýÿzPSupervisorNamespaceXMLRPCInterfaceTests.test_signalAllProcesses_with_signal_namecCsˆtƒ}t|dƒ}t|dtttd}t|dtddd}t|d||gd}dt|ƒi|_|g|j_	| 
|¡}| ¡}| |ddd	¡| |dd
d¡| |ddd
¡| |ddd
¡| |ddd¡| |ddd¡| |ddd¡| |ddd¡| |ddd
¡| |ddd¡| |ddd¡| |ddd
¡| |ddd¡| |ddd
¡| |ddd¡| |ddd¡| |ddd
¡| |ddd¡| |dd d!¡| |dd"d¡| |dd#d¡| |ddd¡| |dd$d	¡| |dd%d¡| |dd&d¡d'|dd(kszt
‚| |d)dd	¡| |d)d
d¡| |d)dd
¡| |d)dd
¡| |d)dd¡| |d)dd¡| |d)dd¡| |d)dd¡| |d)dd
¡| |d)dd¡| |d)dd¡| |d)dd
¡| |d)dd¡| |d)dd
¡| |d)dd¡| |d)dd¡| |d)dd
¡| |d)dd*¡| |d)d d!¡| |d)d"d¡| |d)d#d¡| |d)dd¡| |d)d$d	¡| |d)d%d*¡| |d)d&d¡d'|dd(ks„t
‚dS)+Nr;rË)Ústdout_logfileÚstderr_logfilerÌr†r‡rr…TZstopwaitsecsršZstdout_events_enabledFZstderr_events_enabledrÙZstdout_capture_maxbytesrÜZ
stopsignaléZ
stderr_syslogZstdout_logfile_maxbytesZ
group_prioiçZkillasgroupZprocess_prioZ
stdout_syslogZstderr_logfile_maxbytesr¶Úredirect_stderrr4ÚautoZ	exitcodes)rZstderr_capture_maxbytesZstartretriesZinuser5Zstdout_logfile_backupsztest_rpcinterfaces.pyZcommandr0Znone)rrrrˆr
rrrr>r‰r+ÚgetAllConfigInforr)rr>r@rÓrÔr‘r-ZconfigsrrrÚtest_getAllConfigInfoMs†
þþ

z=SupervisorNamespaceXMLRPCInterfaceTests.test_getAllConfigInfoc
CsÖtƒ}t|dƒ}t|dtƒ}t|dtƒ}t|d||gd}dt|ƒi|_|g|j_| 	|¡}t
dƒg}zddlm}| 
|¡Wntk
r”YnX|D]6}	| ¡D](}
|
 ¡D]\}}| t||	ƒ|¡q²q¦qšdS)Nr;rËrÌr†r‡r)ÚEnum)rrrrˆrrrr>r‰r+ÚtypeÚenumr;ÚappendÚImportErrorr9ÚitemsrêÚ
isinstance)
rr>r@rÓrÔr‘r-Zunmarshallablesr;ÚtypÚconfigÚkÚvrrrÚ>test_getAllConfigInfo_filters_types_not_compatible_with_xmlrpc•s$



zfSupervisorNamespaceXMLRPCInterfaceTests.test_getAllConfigInfo_filters_types_not_compatible_with_xmlrpccCs2tƒ}| |¡}td}td}ddlm}dd|j||tdœ}| |¡}| |d¡dd	|j||td
dœ}| |¡}| |d
¡dd	|j||tddœ}	| |	¡}| |d
¡dd|j	||tddœ}
| |
¡}ddl
m
}|t |¡dd…Ž}| || 
t¡¡dd|j	d|tddœ}
| |
¡}| |d¡dS)NrÈr0rr«Úrunning©rÜr™r­ÚstartrÿÚnowzpid 1, uptime 0:01:40ÚfatalrÍZHosed)rÜr™r­rIrÿrJr±Úz unknown error (try "tail fatal")Ústoppedé©ÚdatetimeézNot started)rr+r	r¯r¬r¸Ú_interpretProcessInforZFATALr°rPÚtimeÚ	localtimeÚstrftimer
)rr@r-rIrÿr¬rGrÛrKZfatal2rMrPZstoptimeZstopped2rrrÚtest__interpretProcessInfo­sp
û
ú
ú
ú
ú
zBSupervisorNamespaceXMLRPCInterfaceTests.test__interpretProcessInfocCsNtƒ}| |¡}ddlm}dd|jtddtdœ}| |¡}| |d¡dS)Nrr«rGé*ršrHzpid 42, uptime 0:00:00)rr+r¯r¬r¸r	rRr)rr@r-r¬rGrÛrrrÚ8test__interpretProcessInfo_doesnt_report_negative_uptimeës
û
z`SupervisorNamespaceXMLRPCInterfaceTests.test__interpretProcessInfo_doesnt_report_negative_uptimec
CsTddlm}tƒ}t|dddd}t|ƒ}d|_d|_d	|_t|dd
}t	|ƒ}d|i|_
td|id}| |¡}| 
d¡}	| |jd¡| |	d
d¡| |	dd¡| |	dd¡| |	dd¡| |	dd¡| |	dd¡| |	dd	¡| |	d|j¡| |	dd¡| |	dd¡| |	dd¡| |	d d¡¡dS)Nrr«r;rèz/tmp/fleeb.bar©r4éoršé©rÜ©rÚgetProcessInfor`r4r5rLrÜr™rIrÿr­rNr¸Ú
exitstatusr±rÛúpid 111)r¯r¬rrrr™Ú	laststartÚlaststoprrr¦rr+r^rr=r¸r‹Ú
startswith)
rr¬r>rCr—Ú
pgroup_configr!r@r-rkrrrÚtest_getProcessInfoøs8ÿ


z;SupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfoc	Cs”tƒ}t|dddd}t|ƒ}d|_d|_d|_t|dd}t|ƒ}d|i|_t	d|id}| 
|¡}| d¡}| |d	d
¡| |dd
¡dS)Nr;rèrYrZršr[r\r]r`rLr4)
rrrr™rarbrrr¦rr+r^r©	rr>rCr—rdr!r@r-rkrrrÚ test_getProcessInfo_logfile_NONEs ÿ


zHSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_logfile_NONEcCsrddlm}tƒ}t|ddƒ}t|d|ƒ}| dd|j¡| |¡}| d¡}| 	|dd¡| 	|dd	¡dS)
Nrr«r;rèr­rNÚUNKNOWNrÛrL)
rPr¬rrrr›rhr+r^r)rr¬r>rr@r-rkrrrÚ!test_getProcessInfo_unknown_state(s

zISupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_unknown_statecCs4ddlm}tƒ}| |¡}| |jj|jd¡dS)NrrÚnonexistent)rrrr+r!r3rr^rYrrrÚ-test_getProcessInfo_bad_name_when_bad_process3s

ÿzUSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_bad_name_when_bad_processcCsLddlm}tƒ}t|ddƒ}t|d|ƒ}| |¡}| |jj|j	d¡dS)Nrrr;rèzfoo:)
rrrrrr+r!r3rr^rrrrÚ,test_getProcessInfo_bad_name_when_no_process:s

ÿzTSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_bad_name_when_no_processc	sÒddlm‰tƒ}t|dddd}t|ƒ}tˆjdƒ|_tˆjdƒ|_t	|dd}t
|ƒ}d|i|_td|id}| 
|¡}‡fd	d
„|_| d¡}| |dˆj¡| |dˆj¡| |d
ˆj¡dS)Nr©Ú	xmlrpclibr;rèrYr0r\r]cstˆjdƒS©Nr0)ÚfloatÚMAXINTrrmrrryPrzzuSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_caps_timestamps_exceeding_xmlrpc_maxint.<locals>.<lambda>rIrÿrJ)Úsupervisor.compatrnrrrrprqrarbrrr¦rr+Z_nowr^rrfrrmrÚ;test_getProcessInfo_caps_timestamps_exceeding_xmlrpc_maxintCs$ÿ


zcSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_caps_timestamps_exceeding_xmlrpc_maxintc
Csàddlm}tƒ}t|ddddd}t|dd	d
dd}t|d||ƒ}| dd
d¡| ddd¡| ddd¡| dd|j¡| dd
d¡| ddd¡| ddd¡| dd|j¡| |¡}| 	¡}| 
|jd¡| 
t|ƒd
¡|d}| 
|dd¡| 
|dd¡| 
|dd¡| 
|dd¡| 
|d
d¡| 
|dd¡| 
|dd¡| 
|d|j¡| 
|dd¡| 
|dd¡| 
|d d¡| 
|d!d¡| 
|d" d#¡¡|d}	|jdjd}
| 
|	dd¡| 
|	dd¡| 
|dd¡| 
|	dd¡| 
|	d
d¡| 
|	d|
j¡| 
|	dd¡| 
|	d|j¡| 
|	dd$¡| 
|	dd¡| 
|	d d¡| 
|d!d¡dd%lm}|t |
j¡dd&…Ž}| 
|	d"| t¡¡dS)'Nrr«rËú
/bin/process1r0ú/tmp/process1.log©rÏr4rÌz
/bin/process2rÍz/tmp/process2.logZgnamer™rZraršrbr[r­ér^r`r4r5rLrÜrIrÿrNr¸r_r±rÙrÛr`r°rOrQ)r¯r¬rrrr›r¸r°r+ZgetAllProcessInforr=rír‹rcrr¦rarPrSrTrUr
)
rr¬r>Zp1configZp2configr@r-ÚinfoZp1infoZp2inforÌrPZ	starttimerrrÚtest_getAllProcessInfoVstþþÿ

ÿz>SupervisorNamespaceXMLRPCInterfaceTests.test_getAllProcessInfocCsXddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}|j|jj|j	dddddS)	NrrrËrtr0rurvrV)
rrrrrr+r!r3rXÚreadProcessStdoutLogrrrrÚ$test_readProcessStdoutLog_unreadable˜s
ÿ

þzLSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLog_unreadablec		Cs¼ddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}|jdjd}|jj	}zXt|dƒ}| 
d	¡W5QRX|j|jj|jdd
dd|j|jj|jdd
d
dW5t
 |¡XdS)NrrrËrtr0rurvr[r\r]rV)rrrrrr+rr¦rCr4r^r_rarbr!r3rcrz©	rrr>rr@r-r—r`rdrrrÚ!test_readProcessStdoutLog_badargs£s2
ÿ

þ
þ
zISupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLog_badargscCsXddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}|j|jj|j	d	ddd
dS©NrrrËrtr0rurvr;rÐrV)
rrrrrr+r!r3rrzrrrrÚ-test_readProcessStdoutLog_bad_name_no_process¹s
ÿ

þzUSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLog_bad_name_no_processc		Cstƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj}z¬t
|dƒ}| d¡| d¡W5QRX|jdddd	}| 
|jd
¡| 
|d¡|jdddd	}| 
|d¡|jdddd	}| 
|d¡|jdd
dd	}| 
|d¡W5t 	|¡XdS)Nr;rèú
/tmp/fooooooorYr[r\rfrrVrzrgrhrirj)rrrr+rr¦rCr4r^r_rarbrzrr=©	rr>rr@r-r—r`rdrkrrrÚtest_readProcessStdoutLogÄs,ÿ

zASupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLogcCs<tƒ}t|ddƒ}t|d|ƒ}| |¡}| |j|j¡dS©Nr;rè)rrrr+rZreadProcessLogrz©rr>rr@r-rrrÚ1test_readProcessLogAliasedTo_readProcessStdoutLogÜs
ÿzYSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessLogAliasedTo_readProcessStdoutLogcCsXddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}|j|jj|j	dddddS)	NrrrËrtr0ru©rÏr5rV)
rrrrrr+r!r3rXÚreadProcessStderrLogrrrrÚ$test_readProcessStderrLog_unreadableäs
ÿ

þzLSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLog_unreadablec		Cs¼ddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}|jdjd}|jj	}zXt|dƒ}| 
d	¡W5QRX|j|jj|jdd
dd|j|jj|jdd
d
dW5t
 |¡XdS)NrrrËrtr0rur†r[r\r]rV)rrrrrr+rr¦rCr5r^r_rarbr!r3rcr‡r|rrrÚ!test_readProcessStderrLog_badargsïs2
ÿ

þ
þ
zISupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLog_badargscCsXddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}|j|jj|j	d	ddd
dSr~)
rrrrrr+r!r3rr‡rrrrÚ-test_readProcessStderrLog_bad_name_no_processs
ÿ

þzUSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLog_bad_name_no_processc		Cstƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj}z¬t
|dƒ}| d¡| d¡W5QRX|jdddd	}| 
|jd
¡| 
|d¡|jdddd	}| 
|d¡|jdddd	}| 
|d¡|jdd
dd	}| 
|d¡W5t 	|¡XdS)Nr;rèr€©r5r[r\rfrrVr‡rgrhrirj)rrrr+rr¦rCr5r^r_rarbr‡rr=rrrrÚtest_readProcessStderrLogs,ÿ

zASupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLogcCs8ddlm}tƒ}| |¡}| |jj|jddd¡dS©Nrrrrš)rrrr+r!r3rÚtailProcessStdoutLogrYrrrÚ"test_tailProcessStdoutLog_bad_name(s

ÿzJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_bad_namecCsVddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}| |jj|j	d	dd
¡dS©NrrrËrtr0rurvr;rÐrš)
rrrrrr+r!r3rrŽrrrrÚ-test_tailProcessStdoutLog_bad_name_no_process/s
ÿ

ÿzUSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_bad_name_no_processc	CsÖddlm}tƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj	}ztt|dƒ}| 
|¡W5QRX|jddt|ƒd\}	}
}| |jd	¡| |d
¡| |
t|ƒ¡| |	|¡W5t
 |¡XdS)Nr©Úlettersr;rèr€rYr[rVrŽF©rrr“rrrr+rr¦rCr4r^r_rarbrŽrírr=©rr“r>rr@r-r—r`rdrkrWÚoverflowrrrÚtest_tailProcessStdoutLog_all9s*ÿ
þzESupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_allc	Cs*ddlm}tƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj	}zÈt|dƒ}| 
|¡W5QRX|jdt|ƒdd	\}	}
}| |jd
¡| |d¡| |
t|ƒ¡| |	d¡|jdt|ƒd
dd	\}	}
}| |jd
¡| |d¡| |
t|ƒ¡| |	d¡W5t
 |¡XdS)Nrr’r;rèr€rYr[rÈrVrŽFrLér”r•rrrÚtest_tailProcessStdoutLog_noneQs:ÿ
þ
þzFSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_nonec	CsÚddlm}tƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj	}zxt|dƒ}| 
|¡W5QRX|jdddd	\}	}
}| |jd
¡| |d¡| |
t|ƒ¡| |	|dd…¡W5t
 |¡XdS)
Nrr’r;rèr€rYr[r˜rVrŽTéûÿÿÿ)rrr“rrrr+rr¦rCr4r^r_rarbrŽrr=rír•rrrÚ"test_tailProcessStdoutLog_overflowss*ÿ
ÿzJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_overflowcCsxtƒ}t|dddd}t|d|ƒ}| |¡}|jdddd\}}}| |jd¡| |d	¡| |d¡| |d
¡dS)Nr;rèr€rYrrÈrVrŽFrL)rrrr+rŽrr=©rr>rr@r-rkrWr–rrrÚ$test_tailProcessStdoutLog_unreadableŠsÿ
ÿzLSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_unreadablecCs<tƒ}t|ddƒ}t|d|ƒ}| |¡}| |j|j¡dSrƒ)rrrr+rZtailProcessLogrŽr„rrrÚ1test_tailProcessLogAliasedTo_tailProcessStdoutLog™s
ÿzYSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessLogAliasedTo_tailProcessStdoutLogcCs8ddlm}tƒ}| |¡}| |jj|jddd¡dSr)rrrr+r!r3rÚtailProcessStderrLogrYrrrÚ"test_tailProcessStderrLog_bad_name¡s

ÿzJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_bad_namecCsVddlm}tƒ}t|ddddd}t|d|ƒ}| |¡}| |jj|j	d	dd
¡dSr)
rrrrrr+r!r3rrŸrrrrÚ-test_tailProcessStderrLog_bad_name_no_process¨s
ÿ

ÿzUSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_bad_name_no_processc	CsÖddlm}tƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj	}ztt|dƒ}| 
|¡W5QRX|jddt|ƒd\}	}
}| |jd	¡| |d
¡| |
t|ƒ¡| |	|¡W5t
 |¡XdS)Nrr’r;rèr€r‹r[rVrŸF©rrr“rrrr+rr¦rCr5r^r_rarbrŸrírr=r•rrrÚtest_tailProcessStderrLog_all²s*ÿ
þzESupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_allc	Cs*ddlm}tƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj	}zÈt|dƒ}| 
|¡W5QRX|jdt|ƒdd	\}	}
}| |jd
¡| |d¡| |
t|ƒ¡| |	d¡|jdt|ƒd
dd	\}	}
}| |jd
¡| |d¡| |
t|ƒ¡| |	d¡W5t
 |¡XdS)Nrr’r;rèr€r‹r[rÈrVrŸFrLr˜r¢r•rrrÚtest_tailProcessStderrLog_noneÊs:ÿ
þ
þzFSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_nonec	CsÚddlm}tƒ}t|dddd}t|d|ƒ}| |¡}|jdjd}|jj	}zxt|dƒ}| 
|¡W5QRX|jdddd	\}	}
}| |jd
¡| |d¡| |
t|ƒ¡| |	|dd…¡W5t
 |¡XdS)
Nrr’r;rèr€r‹r[r˜rVrŸTrš)rrr“rrrr+rr¦rCr5r^r_rarbrŸrr=rír•rrrÚ"test_tailProcessStderrLog_overflowìs*ÿ
ÿzJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_overflowcCsxtƒ}t|dddd}t|d|ƒ}| |¡}|jdddd\}}}| |jd¡| |d	¡| |d¡| |d
¡dS)Nr;rèr€r‹rrÈrVrŸFrL)rrrr+rŸrr=rœrrrÚ$test_tailProcessStderrLog_unreadablesÿ
ÿzLSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_unreadablecCshddlm}tƒ}t|ddƒ}t|ƒ}tdƒ}d|i|_td|id}| |¡}| 	|j
j|jd¡dS)Nrrr;r]Zbadgroup©
rrrrrrr¦rr+r!r3rÚclearProcessLogs©rrr>rr—r!r@r-rrrÚ'test_clearProcessLogs_bad_name_no_groups


þzOSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogs_bad_name_no_groupcCshddlm}tƒ}t|ddƒ}t|ƒ}tdƒ}d|i|_td|id}| |¡}| 	|j
j|jd¡dS)Nrrr;r]rÐr§r©rrrÚ)test_clearProcessLogs_bad_name_no_processs


þzQSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogs_bad_name_no_processcCs`tƒ}t|ddƒ}t|ƒ}tdƒ}d|i|_td|id}| |¡}| d¡| |j	d¡dS)Nr;r]T)
rrrrr¦rr+r¨rÚlogsremoved)rr>rr—r!r@r-rrrÚtest_clearProcessLogs,s


z=SupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogscCslddlm}tƒ}t|ddƒ}t|ƒ}tdƒ}d|i|_d|_td|id}| 	|¡}| 
|j|jd¡dS)Nrrr;Tr])
rrrrrrr¦Úerror_at_clearrr+rprr¨r©rrrÚtest_clearProcessLogs_failed7s

zDSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogs_failedcCs<tƒ}t|ddƒ}t|d|ƒ}| |¡}| |j|j¡dSrƒ)rrrr+rZclearProcessLogr¨r„rrrÚ.test_clearProcessLogAliasedTo_clearProcessLogsCs
ÿzVSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogAliasedTo_clearProcessLogscCsÚtƒ}t|dddd}t|dddd}t|d||ƒ}| |¡}| ¡}|ƒ|ƒ}dd	lm}| |ddd|jj	d
dœ¡| |ddd|jj	d
dœ¡|j
djd}	| |	jd¡|j
djd}
| |
jd¡dS)
NrËr;r0rrÌr/rÍrrrשrÜrÙrÚrÛT)
rrrr+ÚclearAllProcessLogsrrrr3rÞrr¦r¬)rr>rÓrÔr@r-rÀÚresultsrrËrÌrrrÚtest_clearAllProcessLogsKs:ÿ

ýÿ
ýÿz@SupervisorNamespaceXMLRPCInterfaceTests.test_clearAllProcessLogscCsøtƒ}t|dddd}t|dddd}t|d||ƒ}| ddd	¡| |¡}| ¡}|ƒ|ƒ}|jdjd}| |j	d
¡|jdjd}	| |	j	d	¡| t
|ƒd¡ddlm}
| |ddd|
j
jd
dœ¡| |ddd|
j
jddœ¡dS)NrËr;r0rrÌr/rÍr®TFrrzFAILED: foo:process1r±r×)rrrr›r+r²rr¦rr¬rírrr3rrÞ)rr>rÓrÔr@r-rÀr³rËrÌrrrrÚ!test_clearAllProcessLogs_onefailses>ÿ

ýÿ
ýÿzISupervisorNamespaceXMLRPCInterfaceTests.test_clearAllProcessLogs_onefailscCs<tƒ}| |ji¡| |¡}| ¡}|ƒ}| |g¡dSr)rrrr+r²)rr@r-rÀr³rrrÚ%test_clearAllProcessLogs_no_processess
zMSupervisorNamespaceXMLRPCInterfaceTests.test_clearAllProcessLogs_no_processescCsRtƒ}t|ddƒ}t|d|ƒ}| |¡}d}ddlm}| |jj|j	d|¡dS)NrËr;rWrr)
rrrr+rrr!r3r4ÚsendProcessStdin)rr>rÓr@r-Zthing_not_charsrrrrÚ<test_sendProcessStdin_raises_incorrect_params_when_not_chars‰s

þzdSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_incorrect_params_when_not_charscCs6tƒ}| |¡}ddlm}| |jj|jdd¡dS)Nrrrjúchars for stdin)rr+rrr!r3rr·)rr@r-rrrrÚ6test_sendProcessStdin_raises_bad_name_when_bad_process”s

þz^SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_bad_name_when_bad_processcCs@tƒ}t|dƒ}| |¡}ddlm}| |jj|jdd¡dS)Nr;rrrÐr¹)	rrr+rrr!r3rr·)rr>r@r-rrrrÚ5test_sendProcessStdin_raises_bad_name_when_no_processœs


þz]SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_bad_name_when_no_processcCs\tƒ}t|ddƒ}t|d|ƒ}| ddd¡| |¡}ddlm}| |jj	|j
dd¡dS)NrËr;r™rrr¹©rrrr›r+rrr!r3rýr·©rr>rÓr@r-rrrrÚ=test_sendProcessStdin_raises_not_running_when_not_process_pid¥s

þzeSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_not_running_when_not_process_pidcCsjtƒ}t|ddƒ}t|d|ƒ}| ddd¡| ddd¡| |¡}ddlm}| |jj	|j
dd	¡dS)
NrËr;r™rWrëTrrr¹r¼r½rrrÚ5test_sendProcessStdin_raises_not_running_when_killing°s

þz]SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_not_running_when_killingcCsztƒ}t|ddƒ}t|d|ƒ}| ddd¡| ddd¡| ddtj¡| |¡}dd	lm}| 	|j
j|jdd
¡dS)NrËr;r™rWrëFÚwrite_errorrrr¹)
rrrr›ÚerrnoZEPIPEr+rrr!r3rXr·r½rrrÚ<test_sendProcessStdin_raises_no_file_when_write_raises_epipe¼s

þzdSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_no_file_when_write_raises_epipecCsjtƒ}t|ddƒ}t|d|ƒ}| ddd¡| ddd¡| ddtj¡| |¡}| t|j	dd¡dS)	NrËr;r™rWrëFrÀr¹)
rrrr›rÁZEINTRr+rpÚOSErrorr·)rr>rÓr@r-rrrÚ-test_sendProcessStdin_reraises_other_oserrorsÉs
þzUSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_reraises_other_oserrorscCs|tƒ}t|ddƒ}t|d|ƒ}| ddd¡| |¡}d}| | d|¡¡| d|j¡|j	dj
d}| |j|¡dS)NrËr;r™rWschars for stdinr·)rrrr›r+r‹r·rr=rr¦Ústdin_buffer)rr>rÓr@r-ÚcharsrËrrrÚ3test_sendProcessStdin_writes_chars_and_returns_trueÕs
z[SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_writes_chars_and_returns_truecCshtƒ}t|ddƒ}t|d|ƒ}| ddd¡| |¡}| dtdƒ¡|jdjd}| 	|j
d¡dS)NrËr;r™rWsfií)rrrr›r+r·rrr¦rrÅ)rr>rÓr@r-rËrrrÚ-test_sendProcessStdin_unicode_encoded_to_utf8ás
zUSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_unicode_encoded_to_utf8c
s¶tƒ}t|ƒ}| |¡}ddlm}g‰‡fdd„}z&|j|fg|jdd…<| dd¡}W5g|jdd…<| ¡X| 	|¡| 
tˆƒd¡ˆd}| 
|jd¡| 
|j
d¡dS)Nr©Úeventscsˆ |¡dSr©r>©ÚeventrôrrrÀòszgSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_notifies_subscribers.<locals>.callbackr;r/r0)rrr+rrÊÚ	callbacksÚclearÚRemoteCommunicationEventÚsendRemoteCommEventr‹rrír<rk©rr>r@r-rÊrÀrrrÍrrôrÚ-test_sendRemoteCommEvent_notifies_subscribersës 


zUSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_notifies_subscribersc
sàtƒ}t|ƒ}| |¡}ddlm}g‰‡fdd„}z.|j|fg|jdd…<| t	dƒt	dƒ¡}W5g|jdd…<| ¡X| 
|¡| tˆƒd¡ˆd}t
rÀ| |jd¡| |jd	¡n| |jd¡| |jd¡dS)
NrrÉcsˆ |¡dSrrËrÌrôrrrÀ	szjSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_unicode_encoded_to_utf8.<locals>.callbacku	fií onceu
fií twicer0ufií onceufií twice)rrr+rrÊrÎrÏrÐrÑrr‹rrírr<rkrÒrrôrÚ0test_sendRemoteCommEvent_unicode_encoded_to_utf8s,
þ

zXSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_unicode_encoded_to_utf8N)xr"r#r$r(r+rArDrFrHrKrQrSrUrZrerlrnrqrsrvrwr|r€r’r”r•r˜ržr¡r¢r¨rªr³rºrÁrÂrÅrÊrÕrßrârärærçrîrðrørûrürþrrrr	r
rr
rrrrr#r+r,r.r0r2r3r:rFrVrXrergrirkrlrsryr{r}rr‚r…rˆr‰rŠrŒrr‘r—r™r›rržr r¡r£r¤r¥r¦rªr«r­r¯r°r´rµr¶r¸rºr»r¾r¿rÂrÄrÇrÈrÓrÔrrrrr6Bsê	

		
"$
	$$# !H>
	B
"
"

	

r6c@s\eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„Zdd„ZdS)Ú#SystemNamespaceXMLRPCInterfaceTestscCsddlm}|jSr&)rrZSystemNamespaceRPCInterfacer'rrrr("sz3SystemNamespaceXMLRPCInterfaceTests._getTargetClasscCs.ddlm}tƒ}| |¡}| ¡d|fgƒS)Nrr7r)rr8rr9r()rr8r@rrrrr+&s
ÿz,SystemNamespaceXMLRPCInterfaceTests._makeOnecCs,| ¡}| |jd¡| |jd¡dS)NrÚsystem)r+r‹Ú
namespacesr,rrrr./sz-SystemNamespaceXMLRPCInterfaceTests.test_ctorcCs@| ¡}| ¡}| ¡t| ¡ ¡ƒ}| ¡| ||¡dSr)r+ÚlistMethodsÚsortrŒÚ_listMethodsrŽr)rr-ÚmethodsrŽrrrÚtest_listMethods4sz4SystemNamespaceXMLRPCInterfaceTests.test_listMethodscCsHddlm}| ¡}| |jj|jdg¡| d¡}| |ddg¡dS)Nrrúfoo.barzsystem.methodSignatureÚarrayÚstring)rrr+r!r3ÚSIGNATURE_UNSUPPORTEDÚmethodSignaturer)rrr-rrrrrÚtest_methodSignature<s
þ
z8SystemNamespaceXMLRPCInterfaceTests.test_methodSignaturec	Cs\ddlm}ddddddd	d
dg	}| ¡}| ¡}| ¡D]}z| |¡Wn"|jk
rptd|ƒ‚YnX| d
d¡\}}|j	|}t
||ƒ}	z
|	j}
Wntk
rº|	j
}
YnX|
jd|
j…}| t|	jƒ¡}g}
g}g}g}g}g}g}g}|D]º}|ddkrL|
 |d¡| |d¡| |d¡| |d¡nl|ddkr”| |d¡| |d¡| |d¡| |d¡n$|ddk	rtd|d||fƒ‚qt|ƒt|ƒkrètdt|ƒt|ƒ|fƒ‚|
D]&}| t|ƒtk|t|ƒ||f¡qì|D]}| ||k|¡qtt|ƒƒD]8}||||kr<d||||||f}t|ƒ‚q<|D]}| t|ƒtdƒk|¡qzt|ƒdkr´td|ƒ‚|D]$}| t|ƒtk|t|ƒ|f¡q¸|D]}| ||k|¡qâ|D](}| t|ƒtdƒk|t|ƒ|f¡qþ|D](}| t|ƒtdƒk|t|ƒ|f¡q,q:dS)NrrÚintZdoublerßZbooleanzdateTime.iso8601Úbase64ZbinaryrÞZstructz=methodSignature for %s raises RPCError (missing @return doc?)Ú.r0ZparamrÍrNéÚreturnz%unknown tag type %s for %s, parsed %sz6Incorrect documentation (%s args, %s doc params) in %sz Name wrong: (%s vs. %s in %s)
%srLz'Duplicate @return values in docs for %s)rrr+rÚrŽrárrÚsplitr×ÚgetattrZ	func_codeÚ	ExceptionÚ__code__Úco_varnamesÚco_argcountZgettagsÚstrÚ__doc__r>rír‹r<rãÚrange)rrZ	_RPCTYPESr-rÛrDZns_nameZmethod_nameÚ	namespaceÚmethrZargnamesZparsedZplinesZptypesZpnamesZptextsZrlinesZrtypesZrnamesZrtextsÚthingZdoclineZdoctypeÚxrZdoctextZdocnamerrrÚtest_allMethodDocsEs¼
ÿÿ


þÿþý
ýÿÿ
þ
ÿz6SystemNamespaceXMLRPCInterfaceTests.test_allMethodDocscCsR| ¡}| ddgdœdgdœg¡}| |d| d¡¡| |d| ¡¡dS)Núsystem.methodHelp©Ú
methodNameZparamszsystem.listMethodsrr0)r+Ú	multicallrÚ
methodHelprØ)rr-r³rrrÚtest_multicall_simplevals¦s
þz=SystemNamespaceXMLRPCInterfaceTests.test_multicall_simplevalscCsVddlm}| ¡}| dgdœg¡}| |jjd¡}|j|jdœ}| 	||g¡dS)Nrrzsystem.multicallr÷z$Recursive system.multicall forbidden)Z	faultCodeZfaultString)
rrr+rùrr3r4rÚtextr)rrr-r³ÚeZrecursion_faultrrrÚtest_multicall_recursion_guard¯sÿ
ÿzBSystemNamespaceXMLRPCInterfaceTests.test_multicall_recursion_guardcCsPddlm}| ¡}| ddig¡}|j}||jkr<|ƒ}q*| |dg¡dS)NrrÆrøzsupervisor.stopAllProcesses)rrÇr+rùrÉr)rrÇr-rÀr³rrrÚtest_multicall_nested_callback»sÿ
zBSystemNamespaceXMLRPCInterfaceTests.test_multicall_nested_callbackcCsHddlm}| ¡}| |jj|jdg¡| d¡}| ||jj¡dS)NrrrÝrö)	rrr+r!r3ràrúrrï)rrr-ÚhelprrrÚtest_methodHelpÅs
þ
z3SystemNamespaceXMLRPCInterfaceTests.test_methodHelpN)
r"r#r$r(r+r.rÜrârõrûrþrÿrrrrrrÕ!s		a	
rÕc@s4eZdZdd„Zdd„Zdd„Zdd„Zd	d
„ZdS)ÚTest_make_allfunccKsddlm}||||f|ŽS)Nr)Úmake_allfunc)Úsupervisor.rpcinterfacer)rr¦Z	predicateÚfuncZextra_kwargsrrrrÚ_callFUTÏszTest_make_allfunc._callFUTc	s|ddlm‰‡fdd„}tƒ}t|ddƒ}t|ƒ}t|ƒ}dd„}| ||fg||¡}|ƒ}| |d	ddˆjj	d
œg¡dS)Nrrcsˆ ˆjj¡‚dSr©rr3r©rÜrrrrÚcbÕsz7Test_make_allfunc.test_rpcerror_nocallbacks.<locals>.cbrËr;cSsdSr»r©r"rrrÚpredÛsz9Test_make_allfunc.test_rpcerror_nocallbacks.<locals>.predr)rÛrÙrÜrÚ)
rrrrrrrrr3r©	rr	r>rÓr"rÙrZafrrrrrÚtest_rpcerror_nocallbacksÓs ýÿz+Test_make_allfunc.test_rpcerror_nocallbacksc	Cshdd„}tƒ}t|ddƒ}t|ƒ}t|ƒ}dd„}| ||fg||¡}|ƒ}| |ddddd	œg¡dS)
Nc[sdd„S)NcSsdSrorrrrrryçrzzTTest_make_allfunc.test_func_callback_normal_return_val.<locals>.cb.<locals>.<lambda>rrrrrr	æszBTest_make_allfunc.test_func_callback_normal_return_val.<locals>.cbrËr;cSsdSr»rr
rrrrìszDTest_make_allfunc.test_func_callback_normal_return_val.<locals>.predr×éP)rÙrÛrÚrÜ)rrrrrrrrrrÚ$test_func_callback_normal_return_valås þþz6Test_make_allfunc.test_func_callback_normal_return_valc	sxddlm‰‡fdd„}tƒ}t|ddƒ}t|ƒ}t|ƒ}dd„}| ||fg||¡}|ƒ}| |d	dd
ddœg¡dS)Nrrcs‡fdd„}|S)Ncsˆ ˆjj¡‚dSrrrrrrÚinnerúszOTest_make_allfunc.test_func_callback_raises_RPCError.<locals>.cb.<locals>.innerr©rÜrrrrrr	ùsz@Test_make_allfunc.test_func_callback_raises_RPCError.<locals>.cbrËr;cSsdSr»rr
rrrr	szBTest_make_allfunc.test_func_callback_raises_RPCError.<locals>.predré)rÛrÙrÚrÜ)rrrrrrrrrrrrÚ"test_func_callback_raises_RPCError÷s"ýþz4Test_make_allfunc.test_func_callback_raises_RPCErrorc	slddlm‰‡fdd„}tƒ}t|ddƒ}t|ƒ}t|ƒ}dd„}| ||fg||¡}|ƒ}| |ˆ¡dS)	Nrrùcs‡fdd„}|S)NcsˆSrrrrùrrr	szTTest_make_allfunc.test_func_callback_returns_NOT_DONE_YET.<locals>.cb.<locals>.innerrrrùrrr		szETest_make_allfunc.test_func_callback_returns_NOT_DONE_YET.<locals>.cbrËr;cSsdSr»rr
rrrr	szGTest_make_allfunc.test_func_callback_returns_NOT_DONE_YET.<locals>.pred)rúrÉrrrrrrrrrùrÚ'test_func_callback_returns_NOT_DONE_YET
	sþz9Test_make_allfunc.test_func_callback_returns_NOT_DONE_YETN)r"r#r$rr
rrrrrrrrÎs
rc@seZdZdd„Zdd„ZdS)ÚTest_make_main_rpcinterfacecCsddlm}||ƒS)Nr)Úmake_main_rpcinterface)rr)rr@rrrrr!	sz$Test_make_main_rpcinterface._callFUTcCs| d¡}| |jjd¡dS)Nr9)rrÚ	__class__r")rr rrrÚtest_it%	s

þz#Test_make_main_rpcinterface.test_itN)r"r#r$rrrrrrr 	src@seZdZdd„ZdS)r2cCsdS)Nr1rrrrrÚhello/	szDummyRPCInterface.helloN)r"r#r$rrrrrr2.	sr2cCst tjt¡Sr)ÚunittestZ
findTestCasesÚsysÚmodulesr"rrrrÚ
test_suite2	srÚ__main__)ZdefaultTest) rrr(r^rSrÁZsupervisor.tests.baserrrrrrrr	r
rrrrrr
ZTestCaserr%r6rÕrrr2rr"ÚmainrrrrÚ<module>sTn.R