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__ / base.cpython-38.pyc
Size: Mime:
U

B]NŒã@sFdZdZddlmZddlmZddlmZzddlmZm	Z	m
Z
Wn(ek
rlddlmZm	Z	m
Z
YnXzddlmZWnek
ršddlZYnXGdd	„d	ƒZ
Gd
d„dƒZGdd
„d
ƒZGdd„dƒZGdd„dƒZGdd„dƒZeGdd„deƒƒZGdd„dƒZdGdd„ZdHdd„ZGdd„dƒZGdd „d ƒZGd!d"„d"ƒZGd#d$„d$eƒZGd%d&„d&ƒZGd'd(„d(ƒZGd)d*„d*ƒZGd+d,„d,ƒZGd-d.„d.ƒZ Gd/d0„d0e ƒZ!eGd1d2„d2eƒƒZ"Gd3d4„d4e"ƒZ#Gd5d6„d6eƒZ$Gd7d8„d8ƒZ%Gd9d:„d:ƒZ&Gd;d<„d<ƒZ'Gd=d>„d>ƒZ(d?d@„Z)dAdB„Z*dCdD„Z+dEdF„Z,dS)Iiêp Dz%b %d %I:%M %pé)Útotal_ordering©ÚFault)Úas_bytes)ÚMockÚpatchÚsentinelNc@s‚eZdZdZdZdZdZdZdZdd„Z	dd„Z
dd	„Zd\dd„Zd
d„Z
dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd]d3d4„Z d5d6„Z!d7d8„Z"d9d:„Z#d;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„Z0d^dVdW„Z1dXdY„Z2dZd[„Z3dS)_ÚDummyOptionsNéécCsnd|_d|_d|_| ¡|_d|_d|_d|_d|_i|_	g|_
d|_i|_d|_
d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_d|_d|_d|_d	|_ d|_!i|_"i|_#g|_$d|_%d|_&d|_'d|_(d|_)d|_*d|_+d|_,d|_-d
|_.d|_/g|_0g|_1d|_2d|_3g|_4g|_5g|_6d|_7d|_8d|_9d|_:t;|ƒ|_<dS)
NÚ
supervisorz/tmpéçé
z/tmp/logfileFé©NNrz/foo/barÚzhttp://localhost:9001)=Z
identifierZchildlogdirÚuidÚ	getLoggerÚloggerZbackofflimitZlogfileZ	nocleanupZ
strip_ansiZ
pidhistoryZprocess_group_configsZnodaemonÚ
socket_mapÚmoodZ
mustreopenÚrealizeargsÚfds_cleaned_upZ
rlimit_setÚ
setuid_calledÚhttpservers_openedÚsignals_setÚ
daemonizedZmake_logger_messagesÚautochildlogdir_clearedÚ
cleaned_upÚpidfile_writtenÚ	directoryÚwaitpid_returnÚkillsÚ_signalÚparent_pipes_closedÚchild_pipes_closedÚforkpidÚpgrp_setÚdupedÚwrittenÚ
fds_closedÚ	_exitcodeÚ
execve_calledÚ
execv_argsÚ
setuid_msgÚprivsdroppedÚ
logs_reopenedÚenvironment_processedÚwrite_acceptÚwrite_errorÚ
tempfile_nameÚremove_errorÚremovedÚexistingÚ
openreturnÚ
readfd_resultÚparse_criticalsZparse_warningsÚparse_infosÚ	serverurlÚchanged_directoryÚchdir_errorÚumasksetÚDummyPollerZpoller©Úself©rCú$./build/lib/supervisor/tests/base.pyÚ__init__ sv
zDummyOptions.__init__cOstƒ}tƒg|_||f|_|S©N)ÚDummyLoggerZhandlersÚargs)rBrHÚkwrrCrCrDr]s

zDummyOptions.getLoggercKs||_||_dSrF)rZ	realizekw)rBrHrIrCrCrDÚrealizecszDummyOptions.realizeTcCsdSrFrC)rBZdo_usagerCrCrDÚprocess_configgszDummyOptions.process_configcCs
d|_dS©NT)rrArCrCrDÚcleanup_fdsjszDummyOptions.cleanup_fdscCsd|_|j d¡dS)NTÚrlimits_set)rNr;ÚappendrArCrCrDÚset_rlimits_or_exitmsz DummyOptions.set_rlimits_or_exitcCsd|_|j d¡dS)NTr)rr:rOrArCrCrDÚset_uid_or_exitqszDummyOptions.set_uid_or_exitcCs
d|_dSrL)r)rBÚsupervisordrCrCrDÚopenhttpserversuszDummyOptions.openhttpserverscCs
d|_dSrL)rrArCrCrDÚ	daemonizexszDummyOptions.daemonizecCs
d|_dSrL)rrArCrCrDÚ
setsignals{szDummyOptions.setsignalscCs|jSrF)r#rArCrCrDÚ
get_signal~szDummyOptions.get_signalcCs|jSrF)rrArCrCrDÚget_socket_mapszDummyOptions.get_socket_mapcCsdSrFrCrArCrCrDÚmake_logger„szDummyOptions.make_loggercCs
d|_dSrL)rrArCrCrDÚclear_autochildlogdir‡sz"DummyOptions.clear_autochildlogdircGs|jSrF©r4)rBZignoredrCrCrDÚget_autochildlog_nameŠsz"DummyOptions.get_autochildlog_namecCs
d|_dSrL)rrArCrCrDÚcleanupszDummyOptions.cleanupcCs
d|_dSrL)rrArCrCrDÚ
write_pidfileszDummyOptions.write_pidfilecCs|jSrF)r!rArCrCrDÚwaitpid“szDummyOptions.waitpidcCs|jrt|jƒ‚||j|<dSrF)Ú
kill_errorÚOSErrorr")rBÚpidZsigrCrCrDÚkill–s
zDummyOptions.killcCsddl}| |¡S©Nr)ÚosÚstat)rBÚfilenamerdrCrCrDre›szDummyOptions.statcCs
dddgS©Nz/binz/usr/binz/usr/local/binrCrArCrCrDÚget_pathŸszDummyOptions.get_pathcCsddl}| ¡Src)rdÚgetpid)rBrdrCrCrDÚget_pid¢szDummyOptions.get_pidcCs |dkrddlm}|dƒ‚dS)Nz
/bad/filenamer)ÚNotFoundzbad filename)Zsupervisor.optionsrk)rBrfÚargvÚstrkrCrCrDÚcheck_execv_args¦szDummyOptions.check_execv_argscCsH|jrt|jƒ‚dddddœ}|r4d\|d<|d<nd	\|d<|d<|S)
Néér
é)Zchild_stdinÚstdinÚstdoutZchild_stdout)ééÚstderrZchild_stderrr)Úmake_pipes_errorr`)rBrvÚpipesrCrCrDÚ
make_pipes«s
zDummyOptions.make_pipescCsH|jrt|jƒ‚|jr ||j}|j |d¡}||7}||j|<t|ƒS©Nr)r3r`r2r)Ú
setdefaultÚlen)rBÚfdÚcharsÚdatarCrCrDÚwriteµs


zDummyOptions.writecCs|jrt|jƒ‚|jSrF)Ú
fork_errorr`r&rArCrCrDÚfork¿s
zDummyOptions.forkcCs|j |¡dSrF)r*rO©rBr}rCrCrDÚclose_fdÄszDummyOptions.close_fdcCs
||_dSrF)r$©rBrxrCrCrDÚclose_parent_pipesÇszDummyOptions.close_parent_pipescCs
||_dSrF)r%r…rCrCrDÚclose_child_pipesÊszDummyOptions.close_child_pipescCs
d|_dSrL)r'rArCrCrDÚsetpgrpÍszDummyOptions.setpgrpcCs||j|<dSrF)r()rBZfrmÚtorCrCrDÚdup2ÐszDummyOptions.dup2cCs
||_dSrF)r+©rBÚcoderCrCrDÚ_exitÓszDummyOptions._exitcCs@d|_|jr,|jdkr"t|jƒ‚n
t|jƒ‚||f|_||_dS)NTr)r,Úexecv_errorr`ÚRuntimeErrorr-Zexecv_environment)rBrfrlÚenvironmentrCrCrDÚexecveÖs


zDummyOptions.execvecCs|jr|jS||_dSrF)r.r/)rBrrCrCrDÚdrop_privilegesàszDummyOptions.drop_privilegescCs|jSrF)r9rƒrCrCrDÚreadfdåszDummyOptions.readfdcCs
d|_dSrL©r0rArCrCrDÚ
reopenlogsèszDummyOptions.reopenlogscCs
d|_dSrL)r1rArCrCrDÚprocess_environmentësz DummyOptions.process_environmentcCs|jSrFrZ)rBÚprefixÚsuffixÚdirrCrCrDÚ
mktempfileîszDummyOptions.mktempfilecCs*ddl}|jr| |j¡‚|j |¡dSrc)rdr5Úerrorr6rO)rBÚpathrdrCrCrDÚremoveñszDummyOptions.removecCs||jkrdSdS)NTF)r7)rBrœrCrCrDÚexists÷s
zDummyOptions.existsÚrcCs|jr|jSt||ƒSrF)r8Úopen)rBÚnameÚmoderCrCrDr üszDummyOptions.opencCs|jrt|jƒ‚d|_dSrL)r>r`r=)rBr™rCrCrDÚchdirs
zDummyOptions.chdircCs
||_dSrF)r?)rBÚmaskrCrCrDÚsetumaskszDummyOptions.setumask)T)T)rŸ)4Ú__name__Ú
__module__Ú__qualname__rwrrŽr_ZminfdsZloglevelrErrJrKrMrPrQrSrTrUrVrWrXrYr[r\r]r^rbrerhrjrnryr€r‚r„r†r‡rˆrŠrr‘r’r“r•r–ršrržr r£r¥rCrCrCrDr	sb=





r	c@speZdZdZdd„Zdd„ZeZZZZ	Z
Zdd„Zdd	„Z
d
d„Zdd
„Zdd„Zdd„Zdd„ZdS)rGNcCsd|_d|_d|_g|_dS©NF)Úreopenedr6ÚclosedrrArCrCrDrEszDummyLogger.__init__cKs|r||}|j |¡dSrF©rrO)rBÚmsgrIrCrCrDÚinfoszDummyLogger.infocKs|r||}|j |¡dSrFr¬)rBÚlevelr­rIrCrCrDÚlogszDummyLogger.logcCs| ¡dSrF)Úclose)rBZhandlerrCrCrDÚ
addHandlerszDummyLogger.addHandlercCs
d|_dSrL)rªrArCrCrDÚreopen szDummyLogger.reopencCs
d|_dSrL©r«rArCrCrDr±"szDummyLogger.closecCs
d|_dSrL)r6rArCrCrDr$szDummyLogger.removecCs
d|_dSrL)ÚflushedrArCrCrDÚflush&szDummyLogger.flushcCsd |j¡Srz)ÚjoinrrArCrCrDÚgetvalue(szDummyLogger.getvalue)r¦r§r¨r¯rEr®ÚwarnÚdebugZcriticalZtracer›Zblatherr°r²r³r±rr¶r¸rCrCrCrDrG	srGc@seZdZddd„Zdd„ZdS)ÚDummySupervisorNcCsZ|dkrtƒ|_n||_|dkr8ddlm}|j|j_n||j_|dkrPi|_n||_dS)Nr)ÚSupervisorStates)r	ÚoptionsZsupervisor.supervisordr¼ÚRUNNINGrÚprocess_groups)rBr½Ústater¿r¼rCrCrDrE,s
zDummySupervisor.__init__cCs|jjSrF)r½rrArCrCrDÚ	get_state;szDummySupervisor.get_state)NNN)r¦r§r¨rErÁrCrCrCrDr»+s
r»c@sPeZdZdZdZdZdZdZdd„Zdd„Z	dd„Z
d	d
„Zdd„Zd
d„Z
dS)ÚDummySocketFNcCs
||_dSrF©r}rƒrCrCrDrEEszDummySocket.__init__cCs|jSrFrÃrArCrCrDÚfilenoHszDummySocket.filenocCsd|_||_dSrL)Úbind_calledÚ	bind_addr)rBÚaddrrCrCrDÚbindKszDummySocket.bindcCsd|_||_dSrL)Ú
listen_calledÚlisten_backlog)rBZbacklogrCrCrDÚlistenOszDummySocket.listencCs
d|_dSrL)Úclose_calledrArCrCrDr±SszDummySocket.closecCsdS)Nzdummy socketrCrArCrCrDÚ__str__VszDummySocket.__str__)r¦r§r¨rÅrÆrÉrÊrÌrErÄrÈrËr±rÍrCrCrCrDrÂ>srÂc@s<eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
S)ÚDummySocketConfigcCs||_d|_dS)Nzunix:///sock)r}ZurlrƒrCrCrDrEZszDummySocketConfig.__init__cCsdS)Nz
dummy addrrCrArCrCrDrÇ^szDummySocketConfig.addrcCs|j|jkSrFrérBÚotherrCrCrDÚ__eq__aszDummySocketConfig.__eq__cCs| |¡SrF)rÑrÏrCrCrDÚ__ne__dszDummySocketConfig.__ne__cCsdS)Né€rCrArCrCrDÚget_backloggszDummySocketConfig.get_backlogcCs
t|jƒSrF)rÂr}rArCrCrDÚcreate_and_bindjsz!DummySocketConfig.create_and_bindN)	r¦r§r¨rErÇrÑrÒrÔrÕrCrCrCrDrÎYsrÎc@s$eZdZdd„Zdd„Zdd„ZdS)ÚDummySocketManagercKs
||_dSrF©Ú_config)rBÚconfigÚkwargsrCrCrDrEnszDummySocketManager.__init__cCs|jSrFr×rArCrCrDrÙqszDummySocketManager.configcCst|jjƒSrF)rÂrØr}rArCrCrDÚ
get_sockettszDummySocketManager.get_socketN)r¦r§r¨rErÙrÛrCrCrCrDrÖmsrÖc@seZdZdZdZdZdZdZdZdZ	dZ
dZdZdZ
dZdZdZdZdZdZdZdZdZdZdZd/dd„Zdd„Zd	d
„Zdd„Zd
d„Zdd„Zdd„Zdd„Z dd„Z!dd„Z"dd„Z#dd„Z$dd„Z%dd „Z&d!d"„Z'd#d$„Z(d%d&„Z)d'd(„Z*d)d*„Z+d+d,„Z,d-d.„Z-dS)0ÚDummyProcessrFNrcCsÈ||_d|_d|_d|_d|_d|_|dkr>ddlm}|j}||_	d|_
d|_d|_t
dƒ|_t
dƒ|_t
dƒ|_t
dƒ|_t
dƒ|_i|_i|_i|_d|_d|_d|_d|_d|_d|_d|_dS)NFTr©Ú
ProcessStatesr)rÙÚlogsremovedÚstop_calledÚstop_report_calledZbackoff_secsÚspawnedÚsupervisor.processrÞr¾rÀÚerror_at_clearÚkilled_withÚdrainedrÚ
stdout_bufferÚ
stderr_bufferÚ
stdout_loggedÚ
stderr_loggedÚstdin_bufferrxÚrpipesÚdispatchersÚfinishedr0Úexecv_arg_exceptionÚinput_fd_drainedÚoutput_fd_drainedÚtransitionedr3)rBrÙrÀrÞrCrCrDrE‘s8




zDummyProcess.__init__cCs
d|_dSrLr”rArCrCrDr•¯szDummyProcess.reopenlogscCs|jrtdƒ‚d|_dS)NÚwhateverT)räÚIOErrorrßrArCrCrDÚ
removelogs²szDummyProcess.removelogscCs|jSrF)rÀrArCrCrDrÁ·szDummyProcess.get_statecCs$d|_d|_ddlm}|j|_dS)NTFrrÝ)ràÚkillingrãrÞÚSTOPPEDrÀ©rBrÞrCrCrDÚstopºszDummyProcess.stopcCs
d|_dSrL)rárArCrCrDÚstop_reportÀszDummyProcess.stop_reportcCs
||_dSrF)rå©rBÚsignalrCrCrDrbÃszDummyProcess.killcCs
||_dSrF)Úsent_signalrûrCrCrDrüÆszDummyProcess.signalcCsd|_ddlm}|j|_dS)NTrrÝ)rârãrÞr¾rÀrørCrCrDÚspawnÊszDummyProcess.spawncCs
d|_dSrL)rærArCrCrDÚdrainÏszDummyProcess.draincCsgSrFrCrArCrCrDÚreadable_fdsÒszDummyProcess.readable_fdscCs0|j|j7_d|_|j|j7_d|_dSrz)rérçrêrèrArCrCrDÚ
record_outputÕszDummyProcess.record_outputcCs||f|_dSrF)rî)rBraÚstsrCrCrDÚfinishÜszDummyProcess.finishcCsddlm}|j|_dS)NrrÝ)rãrÞÚFATALrÀrørCrCrDÚgive_upßszDummyProcess.give_upcCs6|jr| d¡‚ddl}| |jj¡}|d}||fS)Nrór)rïÚshlexÚsplitrÙÚcommand)rBrZcommandargsZprogramrCrCrDÚget_execv_argsãs
zDummyProcess.get_execv_argscCs
||_dSrF)rñrƒrCrCrDÚdrain_output_fdëszDummyProcess.drain_output_fdcCs
||_dSrF)rðrƒrCrCrDÚdrain_input_fdîszDummyProcess.drain_input_fdcCs"|jrt|jƒ‚|j|7_dSrF)r3r`rë)rBr~rCrCrDr€ñs
zDummyProcess.writecCs
d|_dSrL©ròrArCrCrDÚ
transitionöszDummyProcess.transitioncCs|jj|jjkSrF©rÙÚpriorityrÏrCrCrDrÑùszDummyProcess.__eq__cCs|jj|jjkSrFrrÏrCrCrDÚ__lt__üszDummyProcess.__lt__)N).r¦r§r¨raZ	laststartZlaststopZdelayZadministrative_stopZsystem_stopröZbackoffZ
waitstatusZ
exitstatusrxrìrírérêÚspawnerrrçrèrëZlistener_stateÚgrouprýrEr•rõrÁrùrúrbrürþrÿrrrrr	r
rr€r
rÑrrCrCrCrDrÜwsV
rÜc@s8eZdZddd	„Zd
d„Zdd
„Zddd„Zdd„ZdS)ÚDummyPConfigNr
TrrF©rc !CsÚ||_||_||_||_||_||_|	|_|
|_||_||_	|
|_
||_||_||_
||_||_||_||_||_||_||_||_|dkršddl} | j}||_||_||_||_||_||_||_||_d|_ ||_!dS)NrF)"r½r¡rrÚ	autostartÚautorestartÚ	startsecsÚstartretriesrÚstdout_logfileÚstdout_capture_maxbytesÚstdout_events_enabledÚstdout_logfile_backupsÚstdout_logfile_maxbytesÚ
stdout_syslogÚstderr_logfileÚstderr_capture_maxbytesÚstderr_events_enabledÚstderr_logfile_backupsÚstderr_logfile_maxbytesÚ
stderr_syslogÚredirect_stderrrüÚSIGTERMÚ
stopsignalÚstopwaitsecsÚstopasgroupÚkillasgroupÚ	exitcodesrr ÚumaskÚautochildlogs_createdr<)!rBr½r¡rr r,rrrrrrrrrrrrrr r!r"r#r$r%r'r(r)r*r+rr<rürCrCrDrEsFzDummyPConfig.__init__cCs
dddgSrgrCrArCrCrDrh2szDummyPConfig.get_pathcCs
d|_dSrL)r-rArCrCrDÚcreate_autochildlogs5sz!DummyPConfig.create_autochildlogscCst|ƒ}||_|SrF)rÜr)rBrÚprocessrCrCrDÚmake_process8szDummyPConfig.make_processcCs~|j}|j |¡}|d|d|d}}}i}|dk	rJtdd||<|dk	r`tdd||<|dk	rvtdd||<||fS)NrsrvrrT)Úreadable)Úwritable)r%r½ryÚDummyDispatcher)rBÚprocZ
use_stderrrxZ	stdout_fdZ	stderr_fdZstdin_fdrírCrCrDÚmake_dispatchers=sÿ
zDummyPConfig.make_dispatchers)NNr
TTrr
NNrFrrFNrFrrFFNrFFrNN)N)r¦r§r¨rErhr.r0r5rCrCrCrDrÿs@ó
2
rc
	Cs¬ddl}ddl}ddl}|dkr$i}t|ƒ ¡}|j |¡d}|j|d<| ¡D]}| 	d| 
¡||¡}qR|j|d}t|dƒ}	|	 |¡W5QRX| 
|d¡|S)NrrZPYTHONz<<%s>>)r—Úwií)rdÚsysÚtempfiler ÚreadrœrÚ
executableÚkeysÚreplaceÚupperZmktempr€Úchmod)
ÚfileZ
substitutionsrdr7r8rZlastÚkeyZtmpnamÚfrCrCrDÚmakeExecutableKs
rBFcCs<ddl}|j t¡}|s*t|j |d¡ƒSt|j |d¡ƒS)Nrzfixtures/spew.pyzfixtures/unkillable_spew.py)rdrœÚdirnameÚ__file__rBr·)Z
unkillablerdÚhererCrCrDÚmakeSpew_s
rFc@seZdZdd„Zdd„ZdS)ÚDummyMedusaServerLoggercCs
g|_dSrF)ÚloggedrArCrCrDrEgsz DummyMedusaServerLogger.__init__cCs|j ||f¡dSrF)rHrO)rBÚcategoryr­rCrCrDr°iszDummyMedusaServerLogger.logN)r¦r§r¨rEr°rCrCrCrDrGfsrGc@seZdZdd„ZdS)ÚDummyMedusaServercCstƒ|_dSrF)rGrrArCrCrDrEmszDummyMedusaServer.__init__N©r¦r§r¨rErCrCrCrDrJlsrJc@s,eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚDummyMedusaChannelcCstƒ|_d|_dSrF)rJZserverÚproducerrArCrCrDrEqszDummyMedusaChannel.__init__cCs
||_dSrF)rM©rBrMrCrCrDÚpush_with_producerusz%DummyMedusaChannel.push_with_producercCsdSrFrCrArCrCrDÚclose_when_donexsz"DummyMedusaChannel.close_when_donecCsdSrFrC)rBÚ
terminatorrCrCrDÚset_terminator{sz!DummyMedusaChannel.set_terminatorN)r¦r§r¨rErOrPrRrCrCrCrDrLpsrLc@sŽeZdZdZdZdZdZd!dd„Zdd„Zd	d
„Z	dd„Z
d
d„Zdd„Zdd„Z
dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „ZdS)"ÚDummyRequestZGETNFz1.0cCsH||||f|_g|_i|_g|_g|_tƒ|_|dkr>i|_n||_dSrF)rHÚ	producersÚheadersÚheaderZoutgoingrLÚchannelÚenv)rBrœZparamsZqueryZfragmentrXrCrCrDrEƒszDummyRequest.__init__cCs|jSrF)rHrArCrCrDÚ	split_uriszDummyRequest.split_uricCs
||_dSrF)Ú_errorr‹rCrCrDr›’szDummyRequest.errorcCs|j |¡dSrF)rTrOrNrCrCrDÚpush•szDummyRequest.pushcCs||j|<dSrF©rU)rBrVÚvaluerCrCrDÚ__setitem__˜szDummyRequest.__setitem__cCs
|j|SrFr\©rBrVrCrCrDÚ__getitem__›szDummyRequest.__getitem__cCs|j|=dSrFr\r_rCrCrDÚ__delitem__žszDummyRequest.__delitem__cCs
||jkSrFr\r_rCrCrDÚhas_key¡szDummyRequest.has_keycCs
||jkSrFr\)rBÚitemrCrCrDÚ__contains__¤szDummyRequest.__contains__cCs
d|_dSrL)Ú_donerArCrCrDÚdone§szDummyRequest.donecCsdSrzrCrArCrCrDÚbuild_reply_headerªszDummyRequest.build_reply_headercOsdSrFrC)rBÚargrIrCrCrDr°­szDummyRequest.logcCs|jSrF)rXrArCrCrDÚcgi_environment°szDummyRequest.cgi_environmentcCsdS)Nzhttp://example.comrCrArCrCrDÚget_server_url³szDummyRequest.get_server_url)N)r¦r§r¨rrZreÚversionrErYr›r[r^r`rarbrdrfrgr°rirjrCrCrCrDrS~s$
rSc@seZdZdd„ZdS)ÚDummyRPCInterfaceFactorycKs||_||_dSrF)rRrÙ)rBrRrÙrCrCrDrE¸sz!DummyRPCInterfaceFactory.__init__NrKrCrCrCrDrl·srlc@seZdZdd„ZdS)ÚDummyRPCServercCstƒ|_tƒ|_dSrF)ÚDummySupervisorRPCNamespacerÚDummySystemRPCNamespaceÚsystemrArCrCrDrE½szDummyRPCServer.__init__NrKrCrCrCrDrm¼srmc@seZdZdS)roN)r¦r§r¨rCrCrCrDroÁsroc
@szeZdZdZdZdZdZddlmZdddej	de
ddd	e
d
dœ
ddd
ejde
de
dde
ddœ
dddejde
de
dd	e
ddœ
gZ
dd„ZeZdd„Zdd„Zdd„ZeZd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Z d:d;„Z!d<d=„Z"e"Z#e"Z$e"Z%d>d?„Z&d@dA„Z'dBdC„Z(dDdE„Z)dFdG„Z*dHdI„Z+dJdK„Z,dLdM„Z-dNS)OrnTFrrÝÚfooér¾édrzfoo description)
r¡rrarÀZ	statenameÚstartrùrZnowÚdescriptionZbaréré2Zscrewedzbar descriptionZbaz_01Zbazé
r÷ézbaz descriptioncCsdS)Nz3.0rCrArCrCrDÚ
getAPIVersionósz)DummySupervisorRPCNamespace.getAPIVersioncCsdS)Né*rCrArCrCrDÚgetPIDøsz"DummySupervisorRPCNamespace.getPIDcCsjddlm}|dkr$t|jjdƒ‚n.|dkr<t|jjdƒ‚n|dkrRt|jjdƒ‚|dd}||d…S)Nr©ÚxmlrpcÚBAD_NAMEÚFAILEDÚNO_FILEz line
r)rr~rÚFaultsrr€r)rBrWr¡ÚoffsetÚlengthr~ÚarCrCrDÚ	_read_logûsz%DummySupervisorRPCNamespace._read_logcCs| d|||¡S)Nrs©r†©rBr¡rƒr„rCrCrDÚreadProcessStdoutLogsz0DummySupervisorRPCNamespace.readProcessStdoutLogcCs| d|||¡S)Nrvr‡rˆrCrCrDÚreadProcessStderrLog
sz0DummySupervisorRPCNamespace.readProcessStderrLogcCs|jSrF)Úall_process_inforArCrCrDÚgetAllProcessInfo
sz-DummySupervisorRPCNamespace.getAllProcessInfocCsvddlm}|jD]}|d|kr|}|Sq|dkrFt|jjdƒ‚|dkr\t|jjdƒ‚|dkrrt|jjdƒ‚dS)Nrr}r¡rr€r)rr~r‹rr‚rr€r)rBr¡r~Úir®rCrCrDÚgetProcessInfos

z*DummySupervisorRPCNamespace.getProcessInfocCsªddlm}|dkr"t|jjdƒ‚|dkr8t|jjdƒ‚|dkrNt|jjdƒ‚|dkrdt|jjdƒ‚|dkrzt|jjdƒ‚|dkrt|jjdƒ‚|d	kr¦t|jj	d	ƒ‚d
S)Nrr}úBAD_NAME:BAD_NAMErrÚNOT_EXECUTABLEÚALREADY_STARTEDÚSPAWN_ERRORÚABNORMAL_TERMINATIONT)
rr~rr‚rrrr‘r’r“©rBr¡r~rCrCrDÚstartProcesss$ÿz(DummySupervisorRPCNamespace.startProcesscCsRddlm}ddlm}|dkr.||jjdƒ‚dd|jjddœd	d|jjddœgS©
Nrr}rrÚfoo_00rqÚOK©r¡rZstatusruÚfoo_01©rr~Úsupervisor.compatrr‚rÚSUCCESS©rBr¡r~rrCrCrDÚstartProcessGroup0sþþüz-DummySupervisorRPCNamespace.startProcessGroupcCs@ddlm}dd|jjddœdd|jjddœdd|jjd	dœgS)
Nrr}rqr˜r™Úfoo2ÚfailedÚfailed_groupr’)rr~r‚rr’©rBr~rCrCrDÚstartAllProcesses>sþþþùz-DummySupervisorRPCNamespace.startAllProcessescCsRddlm}ddlm}|dkr.||jjdƒ‚dd|jjddœd	d|jjddœgSr–r›ržrCrCrDÚstopProcessGroupLsþþüz,DummySupervisorRPCNamespace.stopProcessGroupcCshddlm}|dkr"t|jjdƒ‚|dkr8t|jjdƒ‚|dkrNt|jjdƒ‚|dkrdt|jjdƒ‚dS)Nrr}rrÚNOT_RUNNINGr€T)rr~rr‚rr¦r€r”rCrCrDÚstopProcessZsz'DummySupervisorRPCNamespace.stopProcesscCs@ddlm}dd|jjddœdd|jjddœdd|jjd	dœgS©
Nrr}rqr˜r™r r¡r¢r€©rr~r‚rrr£rCrCrDÚstopAllProcessesgsþÿþúz,DummySupervisorRPCNamespace.stopAllProcessescCs.|jrd|_dSddlm}t|jjdƒ‚dS©NTrr}r)Ú_restartableÚ
_restartedrr~rr‚ÚSHUTDOWN_STATEr£rCrCrDÚrestartts
z#DummySupervisorRPCNamespace.restartcCs.|jrd|_dSddlm}t|jjdƒ‚dSr«)r¬Ú	_shutdownrr~rr‚r®r£rCrCrDÚshutdown{s
z$DummySupervisorRPCNamespace.shutdowncCsdgdgdgggS)NZaddedZchangedr6rCrArCrCrDÚreloadConfig‚sz(DummySupervisorRPCNamespace.reloadConfigcCsˆddlm}|dkr"t|jjdƒ‚|dkr8t|jjdƒ‚|dkrNt|jjdƒ‚|dkrdt|jjdƒ‚t|dƒr||j	 
|¡n|g|_	dS)	Nrr}Ú
ALREADY_ADDEDrrr€r®Ú	processes)rr~rr‚r³rr€r®Úhasattrr´rOr”rCrCrDÚaddProcessGroup…s
z+DummySupervisorRPCNamespace.addProcessGroupcCs^ddlm}|dkr"t|jjdƒ‚|dkr8t|jjdƒ‚|dkrNt|jjdƒ‚|j |¡dS)Nrr}Ú
STILL_RUNNINGrrr€)	rr~rr‚r·rr€r´rr”rCrCrDÚremoveProcessGroup”sz.DummySupervisorRPCNamespace.removeProcessGroupcCs&ddlm}|dkr"t|jjdƒ‚dS)Nrr}rT)rr~rr‚rr”rCrCrDÚclearProcessStdoutLogžsz1DummySupervisorRPCNamespace.clearProcessStdoutLogcCs@ddlm}dd|jjddœdd|jjddœdd|jjd	dœgSr¨)rr~r‚rr€r£rCrCrDÚclearAllProcessLogs¨s"ýýý÷z/DummySupervisorRPCNamespace.clearAllProcessLogscCstdƒ‚dS)Nr›©Ú
ValueErrorrArCrCrDÚ
raiseError¹sz&DummySupervisorRPCNamespace.raiseErrorcCsddiS)NrrCrArCrCrDÚgetXmlRpcUnmarshallable¼sz3DummySupervisorRPCNamespace.getXmlRpcUnmarshallablecCsdS)NZ3000rCrArCrCrDÚgetSupervisorVersion¿sz0DummySupervisorRPCNamespace.getSupervisorVersioncCs|jrt|jdƒ‚dS)NrZmainlogdata)Ú_readlog_errorr)rBÚwhencerƒrCrCrDÚreadLogÂsz#DummySupervisorRPCNamespace.readLogcCsFddlm}|dkr"t|jjdƒ‚dd|jjddœdd|jjddœgS)	Nrr}rr—rqr˜r™rš)rr~rr‚rr©rBr¡rür~rCrCrDÚsignalProcessGroupÇsýýûz.DummySupervisorRPCNamespace.signalProcessGroupcCs~ddlm}|dkr"t|jjdƒ‚|dkr8t|jjdƒ‚|dkrNt|jjdƒ‚|dkrdt|jjdƒ‚|dkrzt|jjdƒ‚dS)	Nrr}Ú
BAD_SIGNALrrr¦r€T)rr~rr‚rÅrr¦r€rÃrCrCrDÚ
signalProcessÖsz)DummySupervisorRPCNamespace.signalProcesscCs@ddlm}dd|jjddœdd|jjddœdd|jjd	dœgSr¨r©)rBrür~rCrCrDÚsignalAllProcessesås"ýýý÷z.DummySupervisorRPCNamespace.signalAllProcessesN).r¦r§r¨r¬r­r°rÀrãrÞr¾Ú_NOWrr÷r‹rzZ
getVersionr|r†r‰ZreadProcessLogrŠrŒrŽr•rŸr¤r¥r§rªr¯r±r²r¶r¸r¹ZclearProcessLogZclearProcessStderrLogZclearProcessLogsrºr½r¾r¿rÂrÄrÆrÇrCrCrCrDrnÄsŽö
ö
öç'



rnc@s.eZdZddd„Zdd„Zdd	„Zd
d„ZdS)
ÚDummyPGroupConfigrór
NcCs:||_||_||_|dkrg}||_d|_g|_d|_dS)NFr)r½r¡rZprocess_configsÚafter_setuid_calledZpool_eventsZbuffer_size)rBr½r¡rÚpconfigsrCrCrDrE÷szDummyPGroupConfig.__init__cCs
d|_dSrL)rÊrArCrCrDÚafter_setuidszDummyPGroupConfig.after_setuidcCst|ƒSrF)ÚDummyProcessGrouprArCrCrDÚ
make_groupszDummyPGroupConfig.make_groupcCsd|jt|ƒ|jfS)Nz<%s instance at %s named %s>)Ú	__class__Úidr¡rArCrCrDÚ__repr__sÿzDummyPGroupConfig.__repr__)rór
N)r¦r§r¨rErÌrÎrÑrCrCrCrDrÉös
rÉc@s"eZdZdddedƒfdd„ZdS)ÚDummyFCGIGroupConfigrór
NrcCst |||||¡||_dSrF)rÉrEÚ
socket_config)rBr½r¡rrËrÓrCrCrDrE
szDummyFCGIGroupConfig.__init__)r¦r§r¨rÎrErCrCrCrDrÒsrÒc@sTeZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„ZdS)rÍcCs(||_d|_d|_i|_g|_d|_dSr©)rÙròÚall_stoppedríÚunstopped_processesÚbefore_remove_called©rBrÙrCrCrDrEszDummyProcessGroup.__init__cCs
d|_dSrLrrArCrCrDr
szDummyProcessGroup.transitioncCs
d|_dSrL)rÖrArCrCrDÚ
before_removeszDummyProcessGroup.before_removecCs
d|_dSrL)rÔrArCrCrDÚstop_all!szDummyProcessGroup.stop_allcCs|jSrF)rÕrArCrCrDÚget_unstopped_processes$sz)DummyProcessGroup.get_unstopped_processescCs|jSrF)rírArCrCrDÚget_dispatchers'sz!DummyProcessGroup.get_dispatcherscCs|jj|jjkSrFrrÏrCrCrDr*szDummyProcessGroup.__lt__cCs|jj|jjkSrFrrÏrCrCrDrÑ-szDummyProcessGroup.__eq__cCs
d|_dSrLr”rArCrCrDr•0szDummyProcessGroup.reopenlogsN)r¦r§r¨rEr
rØrÙrÚrÛrrÑr•rCrCrCrDrÍsrÍc@seZdZdd„ZdS)ÚDummyFCGIProcessGroupcCst ||¡t|jƒ|_dSrF)rÍrErÖrÓZsocket_managerr×rCrCrDrE5szDummyFCGIProcessGroup.__init__NrKrCrCrCrDrÜ3srÜc@s&eZdZdd„Zddd„Zdd„ZdS)	ÚPopulatedDummySupervisorc	Gsbt ||¡i|_i}||_t|||d}t|ƒ}||j|<|D]}t|ƒ}|||j<q@||_dS)N)rË)	r»rEr¿Ú
group_namerÉrÍrÜr¡r´)	rBr½rÞrËr´ZgconfigZpgroupZpconfigr/rCrCrDrE:s
z!PopulatedDummySupervisor.__init__NcCs.|dkr|j}|j|j|}t|||ƒdSrF)rÞr¿r´Úsetattr)rBZprocess_nameZ	attr_nameÚvalrÞr/rCrCrDÚset_procattrGsz%PopulatedDummySupervisor.set_procattrcCs
d|_dSrL)ZreapedrArCrCrDÚreapMszPopulatedDummySupervisor.reap)N)r¦r§r¨rErárârCrCrCrDrÝ9s
rÝc@sneZdZdZdZdZdZdZdZdZ	dZ
ddd„Zdd„Zdd„Z
d	d
„Zdd„Zd
d„Zdd„Zdd„ZdS)r3FNcsD|ˆ_|ˆ_|ˆ_dˆ_|r@‡fdd„}|ˆ_‡fdd„}|ˆ_dS)Nrcs
dˆ_dSrLr”rCrArCrDr•`sz,DummyDispatcher.__init__.<locals>.reopenlogscs
dˆ_dSrL)Úlogs_removedrCrArCrDrõcsz,DummyDispatcher.__init__.<locals>.removelogs)Ú	_readableÚ	_writablerZZinput_bufferr•rõ)rBr1r2r›r•rõrCrArDrEYszDummyDispatcher.__init__cCs|jSrF)rärArCrCrDr1gszDummyDispatcher.readablecCs|jSrF)rårArCrCrDr2iszDummyDispatcher.writablecCs|jr|j‚d|_dSrL)rZÚwrite_event_handledrArCrCrDÚhandle_write_eventksz"DummyDispatcher.handle_write_eventcCs|jr|j‚d|_dSrL)rZÚread_event_handledrArCrCrDÚhandle_read_eventosz!DummyDispatcher.handle_read_eventcCs
d|_dSrL)Ú
error_handledrArCrCrDÚhandle_errorsszDummyDispatcher.handle_errorcCs
d|_dSrLr´rArCrCrDr±uszDummyDispatcher.closecCs|jrt|jƒ‚d|_dSrL)Úflush_errorr`rµrArCrCrDr¶ws
zDummyDispatcher.flush)FFF)r¦r§r¨rærèrêr0rãr«rìrµrEr1r2rçrérër±r¶rCrCrCrDr3Ps 
r3c@sHeZdZddd„Zdd„Zdd„Zd	d
„Zddd
„Zdd„Zdd„Z	dS)ÚDummyStreamNrcCs"||_d|_d|_d|_||_dS)NFó)r›r«rµr)Ú_fileno)rBr›rÄrCrCrDrE}s
zDummyStream.__init__cCs|jr|j‚d|_dSrL)r›r«rArCrCrDr±ƒszDummyStream.closecCs|jr|j‚d|_dSrL)r›rµrArCrCrDr¶‡szDummyStream.flushcCs,|jr|j}d|_|‚|jt|ƒ7_dSrF)r›r)r)rBr­r›rCrCrDr€‹s
zDummyStream.writercCsdSrFrC)rBZnumrÁrCrCrDÚseek‘szDummyStream.seekcCs
t|jƒSrF)r|r)rArCrCrDÚtell“szDummyStream.tellcCs|jSrF)rïrArCrCrDrĕszDummyStream.fileno)Nr)r)
r¦r§r¨rEr±r¶r€rðrñrÄrCrCrCrDrí|s

ríc@seZdZddd„Zdd„ZdS)Ú
DummyEventÚabccCs|dk	r||_dSrF)Úserial)rBrôrCrCrDrE™szDummyEvent.__init__cCsdS)Nzdummy eventrCrArCrCrDÚpayloadszDummyEvent.payloadN)ró)r¦r§r¨rErõrCrCrCrDrò˜s
ròc@s4eZdZdd„Zdd„Zdd„Zdd„Zd	d
„ZdS)r@cCsggf|_d|_dSr©)Úresultr«)rBr½rCrCrDrE¡s
zDummyPoller.__init__cCsdSrFrCrƒrCrCrDÚregister_readable¥szDummyPoller.register_readablecCsdSrFrCrƒrCrCrDÚregister_writable¨szDummyPoller.register_writablecCs|jSrF)rö)rBZtimeoutrCrCrDÚpoll«szDummyPoller.pollcCs
d|_dSrLr´rArCrCrDr±®szDummyPoller.closeN)r¦r§r¨rEr÷rørùr±rCrCrCrDr@ s
r@cCsdSrFrC©ÚeventrörCrCrDÚ
dummy_handler±srücCsddlm}||ƒ‚dS)Nr)ÚRejectEvent)Zsupervisor.dispatchersrý)rûrörýrCrCrDÚrejecting_handler´srþcCst|ƒ‚dSrFr»rúrCrCrDÚexception_handler¸srÿcCsdd„| d¡Dƒ}d |¡S)NcSsg|]}| ¡‘qSrC)Ústrip)Ú.0ÚxrCrCrDÚ
<listcomp>¼szlstrip.<locals>.<listcomp>Ú
)rr·)ÚsZstringsrCrCrDÚlstrip»sr)N)F)-rÈZ_TIMEFORMATÚ	functoolsrrœrrZ
unittest.mockrrrÚImportErrorZmockr	rGr»rÂrÎrÖÚobjectrÜrrBrFrGrJrLrSrlrmrornrÉrÒrÍrÜrÝr3ríròr@rürþrÿrrCrCrCrDÚ<module>sbs"
L

94!,