
    vg                        d Z dZddlZddlmZ ddlmZ 	 ddlmZmZm	Z	 n# e
$ r ddlmZmZm	Z	 Y nw xY w	 ddlmZ n# e
$ r ddlZY nw xY w G d d          Z G d	 d
          Z G d d          Z G d d          Z G d d          Z G d d          Zej         G d de                      Z G d d          Zd@dZdAdZ G d d          Z G d d          Z G d d          Z G d  d!e          Z G d" d#          Z G d$ d%          Z G d& d'          Z G d( d)          Z G d* d+          Z  G d, d-e           Z!ej         G d. d/e                      Z" G d0 d1e"          Z# G d2 d3e          Z$ G d4 d5          Z% G d6 d7          Z& G d8 d9          Z' G d: d;          Z(d< Z)d= Z*d> Z+d? Z,dS )BipDz%b %d %I:%M %p    NFault)as_bytes)Mockpatchsentinelc                   4   e Zd ZdZdZdZdZdZdZdZ	dZ
dZd Zd Zd Zd0dZd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d0dZ#d Z$d Z%d Z&d  Z'd! Z(d" Z)d# Z*d$ Z+d% Z,d& Z-d' Z.d( Z/d) Z0d* Z1d+ Z2d1d-Z3d. Z4d/ Z5dS )2DummyOptions      Nc                 T   d| _         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
| _,        g | _-        g | _.        d | _/        d| _0        g | _1        g | _2        g | _3        d| _4        d| _5        d | _6        to          |           | _8        d| _9        d S )N
supervisorz/tmp  
   z/tmp/logfileF   NNr   z/foo/bar zhttp://localhost:9001):
identifierchildlogdiruid	getLoggerloggerbackofflimitlogfile	nocleanup
strip_ansi
pidhistoryprocess_group_configsnodaemon
socket_mapmood
mustreopenrealizeargsfds_cleaned_up
rlimit_setsetuid_calledhttpservers_openedsignals_set
daemonizedmake_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write_accepttempfile_nameremovedexisting
openreturnreadfd_resultparse_criticalsparse_warningsparse_infos	serverurlchanged_directoryumasksetDummyPollerpollersilentselfs    R/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/supervisor/tests/base.py__init__zDummyOptions.__init__#   s   &!nn&&%%'"	#""' $(!',$$(
#' "&
" " '! 0!&!$''    c                 \    t                      }t                      g|_        ||f|_        |S N)DummyLoggerhandlersargs)rO   rW   kwr   s       rP   r   zDummyOptions.getLogger]   s(    &==/BhrR   c                 "    || _         || _        d S rT   )r#   	realizekw)rO   rW   rX   s      rP   realizezDummyOptions.realizec   s    rR   Tc                     d S rT    )rO   do_usages     rP   process_configzDummyOptions.process_configg       rR   c                     d| _         d S NT)r$   rN   s    rP   cleanup_fdszDummyOptions.cleanup_fdsj   s    "rR   c                 H    d| _         | j                            d           d S )NTrlimits_set)re   rG   appendrN   s    rP   set_rlimits_or_exitz DummyOptions.set_rlimits_or_exitm   s'    .....rR   c                 H    d| _         | j                            d           d S )NTr&   )r&   rE   rf   rN   s    rP   set_uid_or_exitzDummyOptions.set_uid_or_exitq   s'    !##O44444rR   c                     d| _         d S rb   )r'   )rO   supervisords     rP   openhttpserverszDummyOptions.openhttpserversu       "&rR   c                     d| _         d S rb   )r)   rN   s    rP   	daemonizezDummyOptions.daemonizex       rR   c                     d| _         d S rb   )r(   rN   s    rP   
setsignalszDummyOptions.setsignals{       rR   c                     | j         S rT   )r1   rN   s    rP   
get_signalzDummyOptions.get_signal~   
    |rR   c                     | j         S rT   )r    rN   s    rP   get_socket_mapzDummyOptions.get_socket_map   s
    rR   c                     d S rT   r]   rN   s    rP   make_loggerzDummyOptions.make_logger   r`   rR   c                     d| _         d S rb   )r+   rN   s    rP   clear_autochildlogdirz"DummyOptions.clear_autochildlogdir   s    '+$$$rR   c                     | j         S rT   r@   )rO   ignoreds     rP   get_autochildlog_namez"DummyOptions.get_autochildlog_name       !!rR   c                     d| _         d S rb   )r,   rN   s    rP   cleanupzDummyOptions.cleanup   rp   rR   c                     d| _         d S rb   )r-   rN   s    rP   write_pidfilezDummyOptions.write_pidfile   s    #rR   c                     | j         S rT   )r/   rN   s    rP   waitpidzDummyOptions.waitpid   s    ""rR   c                 6    | j         | j         || j        |<   d S rT   )kill_exceptionr0   )rO   pidsigs      rP   killzDummyOptions.kill   s#    *%%
3rR   c                 4    dd l }|                    |          S Nr   )osstat)rO   filenamer   s      rP   r   zDummyOptions.stat   s    			wwx   rR   c                 
    g dS N)z/binz/usr/binz/usr/local/binr]   rN   s    rP   get_pathzDummyOptions.get_path       5555rR   c                 2    dd l }|                                S r   )r   getpid)rO   r   s     rP   get_pidzDummyOptions.get_pid   s    			yy{{rR   c                 4    |dk    rddl m}  |d          d S )Nz/bad/filenamer   )NotFoundzbad filename)supervisor.optionsr   )rO   r   argvstr   s        rP   check_execv_argszDummyOptions.check_execv_args   s7    &&333333(>*** '&rR   c                 b    | j         | j         ddddd}|rd\  |d<   |d<   nd	\  |d<   |d<   |S )
N      r      )child_stdinstdinstdoutchild_stdout)      stderrchild_stderrr   )make_pipes_exception)rO   r   pipess      rP   
make_pipeszDummyOptions.make_pipes   s\    $0++ !AANN 	@5;2E(OU>225?2E(OU>2rR   c                     | j         | j         | j        r|| j                 }| j                            |d          }||z  }|| j        |<   t	          |          S Nr   )write_exceptionr?   r7   
setdefaultlen)rO   fdcharsdatas       rP   writezDummyOptions.write   sd    +&& 	-$+,E|&&r2..R5zzrR   c                 ,    | j         | j         | j        S rT   )fork_exceptionr4   rN   s    rP   forkzDummyOptions.fork   s    *%%|rR   c                 :    | j                             |           d S rT   )r8   rf   rO   r   s     rP   close_fdzDummyOptions.close_fd   s    r"""""rR   c                     || _         d S rT   )r2   rO   r   s     rP   close_parent_pipeszDummyOptions.close_parent_pipes   s    #(   rR   c                     || _         d S rT   )r3   r   s     rP   close_child_pipeszDummyOptions.close_child_pipes   s    "'rR   c                     d| _         d S rb   )r5   rN   s    rP   setpgrpzDummyOptions.setpgrp       rR   c                     || j         |<   d S rT   )r6   )rO   frmtos      rP   dup2zDummyOptions.dup2   s    
3rR   c                     || _         d S rT   )r9   rO   codes     rP   _exitzDummyOptions._exit   s    rR   c                 P    d| _         | j        | j        ||f| _        || _        d S rb   )r:   execv_exceptionr;   execv_environment)rO   r   r   environments       rP   execvezDummyOptions.execve   s6    !+&&#T*!,rR   c                 0    | j         r| j         S || _        d S rT   )r<   r=   )rO   r   s     rP   drop_privilegeszDummyOptions.drop_privileges   s"    ? 	#?"rR   c                     | j         S rT   )rD   r   s     rP   readfdzDummyOptions.readfd   r   rR   c                     d| _         d S rb   r>   rN   s    rP   
reopenlogszDummyOptions.reopenlogs       !rR   c                     | j         S rT   r~   )rO   prefixsuffixdirs       rP   
mktempfilezDummyOptions.mktempfile   r   rR   c                 V    | j         | j         | j                            |           d S rT   )remove_exceptionrA   rf   rO   paths     rP   removezDummyOptions.remove   s0     ,''D!!!!!rR   c                     || j         v rdS dS )NTF)rB   r   s     rP   existszDummyOptions.exists   s    4=  4urR   rc                 >    | j         r| j         S t          ||          S rT   )rC   open)rO   namemodes      rP   r   zDummyOptions.open   s$    ? 	#?"D$rR   c                 0    | j         | j         d| _        d S rb   )chdir_exceptionrI   )rO   r   s     rP   chdirzDummyOptions.chdir   s"    +&&!%rR   c                     || _         d S rT   )rJ   )rO   masks     rP   setumaskzDummyOptions.setumask   r   rR   )T)r   )6__name__
__module____qualname__loglevelminfdsr   r   r   r   r   r   r   rQ   r   r[   r_   rc   rg   ri   rl   ro   rr   ru   rx   rz   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]   rR   rP   r
   r
      s       HFONONO8 8 8t       # # #/ / /5 5 5' ' '             , , ," " "  $ $ $# # #  
! ! !6 6 6  + + +
       
# # #) ) )( ( (      - - -     
" " "" " "" " "" " "
  
       
& & &
    rR   r
   c                   `    e Zd ZdZd Zd ZexZxZxZxZ	xZ
Zd Zd Zd Zd Zd Zd	 Zd
 ZdS )rU   Nc                 >    d| _         d| _        d| _        g | _        d S NF)reopenedrA   closedr   rN   s    rP   rQ   zDummyLogger.__init__  s"    			rR   c                 H    |r||z  }| j                             |           d S rT   r   rf   )rO   msgrX   s      rP   infozDummyLogger.info  /     	(C	rR   c                 H    |r||z  }| j                             |           d S rT   r   )rO   levelr   rX   s       rP   logzDummyLogger.log  r   rR   c                 .    |                                  d S rT   )close)rO   handlers     rP   
addHandlerzDummyLogger.addHandler  s    rR   c                     d| _         d S rb   )r   rN   s    rP   reopenzDummyLogger.reopen  r   rR   c                     d| _         d S rb   r   rN   s    rP   r  zDummyLogger.close      rR   c                     d| _         d S rb   )rA   rN   s    rP   r   zDummyLogger.remove      rR   c                     d| _         d S rb   )flushedrN   s    rP   flushzDummyLogger.flush  r  rR   c                 6    d                     | j                  S r   )joinr   rN   s    rP   getvaluezDummyLogger.getvalue!  s    wwty!!!rR   )r   r   r   r  rQ   r   warndebugcriticaltraceerrorblatherr  r  r  r  r   r  r  r]   rR   rP   rU   rU     s        E     9=<D<5<8<e<eg  
          " " " " "rR   rU   c                       e Zd ZddZd ZdS )DummySupervisorNc                     |t                      | _        n|| _        |ddlm} |j        | j        _        n|| j        _        |	i | _        d S || _        d S )Nr   )SupervisorStates)r
   optionssupervisor.supervisordr  RUNNINGr!   process_groups)rO   r  stater!  r  s        rP   rQ   zDummySupervisor.__init__%  sn    ?'>>DLL"DL=?????? 0 8DL %DL!"$D"0DrR   c                     | j         j        S rT   )r  r!   rN   s    rP   	get_statezDummySupervisor.get_state4  s    |  rR   )NNN)r   r   r   rQ   r$  r]   rR   rP   r  r  $  s7        1 1 1 1! ! ! ! !rR   r  c                   F    e Zd ZdZdZdZdZdZd Zd Z	d Z
d Zd Zd ZdS )	DummySocketFNc                     || _         d S rT   r   r   s     rP   rQ   zDummySocket.__init__>  s    rR   c                     | j         S rT   r(  rN   s    rP   filenozDummySocket.filenoA  s	    wrR   c                 "    d| _         || _        d S rb   )bind_called	bind_addr)rO   addrs     rP   bindzDummySocket.bindD  s    rR   c                 "    d| _         || _        d S rb   )listen_calledlisten_backlog)rO   backlogs     rP   listenzDummySocket.listenH  s    !%rR   c                     d| _         d S rb   )close_calledrN   s    rP   r  zDummySocket.closeL       rR   c                     dS )Nzdummy socketr]   rN   s    rP   __str__zDummySocket.__str__O  s    ~rR   )r   r   r   r,  r-  r1  r2  r6  rQ   r*  r/  r4  r  r9  r]   rR   rP   r&  r&  7  s        KIMNL      & & &! ! !    rR   r&  c                   4    e Zd Zd	dZd Zd Zd Zd Zd ZdS )
DummySocketConfig   c                 0    || _         || _        d| _        d S )Nzunix:///sock)r   r3  url)rO   r   r3  s      rP   rQ   zDummySocketConfig.__init__S  s    !rR   c                     dS )Nz
dummy addrr]   rN   s    rP   r.  zDummySocketConfig.addrX  s    |rR   c                 "    | j         |j         k    S rT   r(  rO   others     rP   __eq__zDummySocketConfig.__eq__[  s    w%(""rR   c                 .    |                      |           S rT   )rC  rA  s     rP   __ne__zDummySocketConfig.__ne__^  s    ;;u%%%%rR   c                     | j         S rT   )r3  rN   s    rP   get_backlogzDummySocketConfig.get_backloga  rv   rR   c                 *    t          | j                  S rT   )r&  r   rN   s    rP   create_and_bindz!DummySocketConfig.create_and_bindd  s    47###rR   N)r<  )	r   r   r   rQ   r.  rC  rE  rG  rI  r]   rR   rP   r;  r;  R  ss        " " " "
  # # #& & &  $ $ $ $ $rR   r;  c                        e Zd Zd Zd Zd ZdS )DummySocketManagerc                     || _         d S rT   _config)rO   configkwargss      rP   rQ   zDummySocketManager.__init__h  s    rR   c                     | j         S rT   rM  rN   s    rP   rO  zDummySocketManager.configk  rv   rR   c                 4    t          | j        j                  S rT   )r&  rN  r   rN   s    rP   
get_socketzDummySocketManager.get_socketn  s    4<?+++rR   N)r   r   r   rQ   rO  rS  r]   rR   rP   rK  rK  g  sA            , , , , ,rR   rK  c                       e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZddZd Zd Zd Zd	 Zd
 Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.dS )DummyProcessNr   Fr   c                    || _         d| _        d| _        d| _        d | _        d| _        |ddlm} |j        }|| _	        d| _
        d | _        d| _        t          d          | _        t          d          | _        t          d          | _        t          d          | _        t          d          | _        i | _        i | _        i | _        d | _        d| _        d | _        d | _        d | _        d| _        d S )NFTr   ProcessStatesr   )rO  logsremovedstop_calledstop_report_calledbackoff_secsspawnedsupervisor.processrX  r   r"  error_at_clearkilled_withdrainedr   stdout_bufferstderr_bufferstdout_loggedstderr_loggedstdin_bufferr   rpipesdispatchersfinishedr>   execv_arg_exceptioninput_fd_drainedoutput_fd_drainedtransitioned)rO   rO  r"  rX  s       rP   rQ   zDummyProcess.__init__  s      "& =888888!)E
#%b\\%b\\%b\\%b\\$RLL
"#'  $!%!rR   c                     d| _         d S rb   r   rN   s    rP   r   zDummyProcess.reopenlogs  r   rR   c                 @    | j         rt          d          d| _        d S )NwhateverT)r_  IOErrorrY  rN   s    rP   
removelogszDummyProcess.removelogs  s)     	&*%%%rR   c                     | j         S rT   )r"  rN   s    rP   r$  zDummyProcess.get_state  s
    zrR   c                 F    d| _         d| _        ddlm} |j        | _        d S )NTFr   rW  )rZ  killingr^  rX  STOPPEDr"  rO   rX  s     rP   stopzDummyProcess.stop  s1    444444"*


rR   c                     d| _         d S rb   )r[  rN   s    rP   stop_reportzDummyProcess.stop_report  rm   rR   c                     || _         d S rT   )r`  rO   signals     rP   r   zDummyProcess.kill      !rR   c                     || _         d S rT   )sent_signalr|  s     rP   r}  zDummyProcess.signal  r~  rR   c                 8    d| _         ddlm} |j        | _        d S )NTr   rW  )r]  r^  rX  r   r"  rw  s     rP   spawnzDummyProcess.spawn  s)    444444"*


rR   c                     d| _         d S rb   )ra  rN   s    rP   drainzDummyProcess.drain  r  rR   c                     g S rT   r]   rN   s    rP   readable_fdszDummyProcess.readable_fds  s    	rR   c                 v    | xj         | j        z  c_         d| _        | xj        | j        z  c_        d| _        d S r   )rd  rb  re  rc  rN   s    rP   record_outputzDummyProcess.record_output  sF    d00d00rR   c                     ||f| _         d S rT   )ri  )rO   r   stss      rP   finishzDummyProcess.finish  s    SrR   c                 *    ddl m} |j        | _        d S )Nr   rW  )r^  rX  FATALr"  rw  s     rP   give_upzDummyProcess.give_up  s"    444444"(


rR   c                     | j         r|                      d          dd l}|                    | j        j                  }|d         }||fS )Nrp  r   )rj  shlexsplitrO  command)rO   r  commandargsprograms       rP   get_execv_argszDummyProcess.get_execv_args  sT    # 	7**:666kk$+"566a.##rR   c                     || _         d S rT   )rl  r   s     rP   drain_output_fdzDummyProcess.drain_output_fd  s    !#rR   c                     || _         d S rT   )rk  r   s     rP   drain_input_fdzDummyProcess.drain_input_fd  s     "rR   c                 B    | j         | j         | xj        |z  c_        d S rT   )r   rf  )rO   r   s     rP   r   zDummyProcess.write  s.    +&&U"rR   c                     d| _         d S rb   rm  rN   s    rP   
transitionzDummyProcess.transition  r7  rR   c                 6    | j         j        |j         j        k    S rT   rO  priorityrA  s     rP   rC  zDummyProcess.__eq__      {#u|'<<<rR   c                 6    | j         j        |j         j        k     S rT   r  rA  s     rP   __lt__zDummyProcess.__lt__      {#el&;;;rR   rT   )/r   r   r   r   r   	laststartlaststopdelayadministrative_stopsystem_stopru  backoff
waitstatus
exitstatusr   rg  rh  rd  re  spawnerrrb  rc  rf  listener_stategroupr  rQ   r   rr  r$  rx  rz  r   r}  r  r  r  r  r  r  r  r  r  r   r  rC  r  r]   rR   rP   rU  rU  q  s       O CIHEKGGJJEFKMMHMMLNEK" " " ":" " "     
  + + +' ' '" " "" " "+ + +
         ! ! !) ) )$ $ $$ $ $# # ## # #
! ! != = =< < < < <rR   rU  c                   L    e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZd	 Zd
 ZddZd ZdS )DummyPConfigNr   Tr   r   Fr   c                     || _         || _        || _        || _        || _        || _        |	| _        |
| _        || _        || _	        || _
        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        |dd l} | j        }|| _        || _        || _        || _        || _        || _        || _        || _        d| _         || _!        d S )Nr   F)"r  r   r  r  	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_createdrH   )!rO   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   rH   r}  s!                                    rP   rQ   zDummyPConfig.__init__  s    	 "&"(,'>$%:"&<#'>$*,'>$%:"&<#'>$*.MMMJ$(&&"&"
%*""rR   c                 
    g dS r   r]   rN   s    rP   r   zDummyPConfig.get_path-  r   rR   c                     d| _         d S rb   )r  rN   s    rP   create_autochildlogsz!DummyPConfig.create_autochildlogs0  s    %)"""rR   c                 2    t          |           }||_        |S rT   )rU  r  )rO   r  processs      rP   make_processzDummyPConfig.make_process3  s    t$$rR   c                     | j          }| j                            |          }|d         |d         |d         }}}i }|t          d          ||<   |t          d          ||<   |t          d          ||<   ||fS )Nr   r   r   T)readable)writable)r  r  r   DummyDispatcher)rO   proc
use_stderrr   	stdout_fd	stderr_fdstdin_fdrh  s           rP   make_dispatcherszDummyPConfig.make_dispatchers8  s    --
''
33(-hh(-g %)	 %4d%C%C%CK	" %4d%C%C%CK	"$3T$B$B$BK!E!!rR   )NNr   TTr   r   NNr   Fr   r   FNr   Fr   r   FFNr   FFr  NNrT   )r   r   r   rQ   r   r  r  r  r]   rR   rP   r  r    s        EI)->AHI',CD$>?',CD$!&RW=A0# 0# 0# 0#d6 6 6* * *   
" " " " "rR   r  c                    dd l }dd l}dd l}|i }t          |                                           }|j                            |           d         }|j        |d<   |                                D ]3}|	                    d|
                                z  ||                   }4|                    |d          5 }|j        }	|                    |           d d d            n# 1 swxY w Y   |                    |	d           |	S )Nr   r   PYTHONz<<%s>>F)r   deletei  )r   systempfiler   readr   r  
executablekeysreplaceupperNamedTemporaryFiler   r   chmod)
filesubstitutionsr   r  r  r   lastkeyftmpnams
             rP   makeExecutabler  F  sA   IIIJJJOOO::??D7==q!D!nM(!!## H H||Hsyy{{2M#4FGG		$	$D	$	?	? 1	               HHVUMs   ;C$$C(+C(Fc                     dd l }|j                            t                    }| s(t	          |j                            |d                    S t	          |j                            |d                    S )Nr   zfixtures/spew.pyzfixtures/unkillable_spew.py)r   r   dirname__file__r  r  )
unkillabler   heres      rP   makeSpewr  Z  se    III7??8$$D Fbgll41CDDEEE"',,t-JKKLLLrR   c                       e Zd Zd Zd ZdS )DummyMedusaServerLoggerc                     g | _         d S rT   )loggedrN   s    rP   rQ   z DummyMedusaServerLogger.__init__b  s    rR   c                 >    | j                             ||f           d S rT   )r  rf   )rO   categoryr   s      rP   r  zDummyMedusaServerLogger.logd  s"    Hc?+++++rR   N)r   r   r   rQ   r  r]   rR   rP   r  r  a  s2          , , , , ,rR   r  c                       e Zd Zd ZdS )DummyMedusaServerc                 ,    t                      | _        d S rT   )r  r   rN   s    rP   rQ   zDummyMedusaServer.__init__h  s    -//rR   Nr   r   r   rQ   r]   rR   rP   r  r  g  s#        0 0 0 0 0rR   r  c                   &    e Zd Zd Zd Zd Zd ZdS )DummyMedusaChannelc                 :    t                      | _        d | _        d S rT   )r  serverproducerrN   s    rP   rQ   zDummyMedusaChannel.__init__l  s    '))rR   c                     || _         d S rT   )r  rO   r  s     rP   push_with_producerz%DummyMedusaChannel.push_with_producerp  s     rR   c                     d S rT   r]   rN   s    rP   close_when_donez"DummyMedusaChannel.close_when_dones  r`   rR   c                     d S rT   r]   )rO   
terminators     rP   set_terminatorz!DummyMedusaChannel.set_terminatorv  r`   rR   N)r   r   r   rQ   r  r	  r  r]   rR   rP   r  r  k  sP          ! ! !      rR   r  c                   t    e Zd ZdZdZdZdZddZd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )DummyRequestGETNFz1.0c                     ||||f| _         g | _        i | _        g | _        g | _        t                      | _        |	i | _        d S || _        d S rT   )rW   	producersheadersheaderoutgoingr  channelenv)rO   r   paramsqueryfragmentr  s         rP   rQ   zDummyRequest.__init__~  sV    &%1	)++;DHHHDHHHrR   c                     | j         S rT   )rW   rN   s    rP   	split_urizDummyRequest.split_uri  s
    yrR   c                     || _         d S rT   )_errorr   s     rP   r  zDummyRequest.error  r  rR   c                 :    | j                             |           d S rT   )r  rf   r  s     rP   pushzDummyRequest.push  s    h'''''rR   c                     || j         |<   d S rT   r  )rO   r  values      rP   __setitem__zDummyRequest.__setitem__  s    $VrR   c                     | j         |         S rT   r!  rO   r  s     rP   __getitem__zDummyRequest.__getitem__  s    |F##rR   c                     | j         |= d S rT   r!  r%  s     rP   __delitem__zDummyRequest.__delitem__  s    L   rR   c                     || j         v S rT   r!  r%  s     rP   has_keyzDummyRequest.has_key  s    %%rR   c                     || j         v S rT   r!  )rO   items     rP   __contains__zDummyRequest.__contains__  s    t|##rR   c                     d| _         d S rb   )_donerN   s    rP   donezDummyRequest.done  s    


rR   c                     dS r   r]   rN   s    rP   build_reply_headerzDummyRequest.build_reply_header      rrR   c                     d S rT   r]   )rO   argrX   s      rP   r  zDummyRequest.log  r`   rR   c                     | j         S rT   )r  rN   s    rP   cgi_environmentzDummyRequest.cgi_environment  s	    xrR   c                     dS )Nzhttp://example.comr]   rN   s    rP   get_server_urlzDummyRequest.get_server_url  s    ##rR   rT   )r   r   r   r  r  r/  versionrQ   r  r  r  r#  r&  r(  r*  r-  r0  r2  r  r7  r9  r]   rR   rP   r  r  y  s        GFEG
 
 
 
    ( ( (% % %$ $ $! ! !& & &$ $ $        $ $ $ $ $rR   r  c                       e Zd Zd ZdS )DummyRPCInterfaceFactoryc                 "    || _         || _        d S rT   )rk   rO  )rO   rk   rO  s      rP   rQ   z!DummyRPCInterfaceFactory.__init__  s    &rR   Nr  r]   rR   rP   r<  r<    s#            rR   r<  c                       e Zd Zd ZdS )DummyRPCServerc                 R    t                      | _        t                      | _        d S rT   )DummySupervisorRPCNamespacer   DummySystemRPCNamespacesystemrN   s    rP   rQ   zDummyRPCServer.__init__  s     577-//rR   Nr  r]   rR   rP   r?  r?    s#        0 0 0 0 0rR   r?  c                       e Zd ZdS )rB  N)r   r   r   r]   rR   rP   rB  rB    s        DrR   rB  c                   h   e Zd ZdZdZdZdZddlmZ dddej	        de
dz
  dd	e
d
d
dddej        de
dz
  e
dz
  de
dd
dddej        de
dz
  e
dz
  d	e
dd
gZd ZeZd Zd Zd ZeZd Zd Zd Zd Zd  Zd! Zd" Zd# Zd$ Zd% Zd& Zd' Zd( Z d) Z!d* Z"e"Z#e"Z$e"Z%d+ Z&d, Z'd- Z(d. Z)d/ Z*d0 Z+d1 Z,d2 Z-d3S )4rA  TFr   rW  foo   r   d   r   zfoo description)
r   r  r   r"  	statenamestartrx  r  nowdescriptionbar   r  2   screwedzbar descriptionbaz_01baz   rv     zbaz descriptionc                     dS )Nz3.0r]   rN   s    rP   getAPIVersionz)DummySupervisorRPCNamespace.getAPIVersion  s    urR   c                     dS )N*   r]   rN   s    rP   getPIDz"DummySupervisorRPCNamespace.getPID  r3  rR   c                     ddl m} |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dz   dz  }||d          S )Nr   xmlrpcBAD_NAMEFAILEDNO_FILEz line
r   )r   r\  r   Faultsr]  r^  r_  )rO   r  r   offsetlengthr\  as          rP   	_read_logz%DummySupervisorRPCNamespace._read_log  s    %%%%%%:.
;;;X,h777Y-y999y B&zrR   c                 2    |                      d|||          S )Nr   rd  rO   r   ra  rb  s       rP   readProcessStdoutLogz0DummySupervisorRPCNamespace.readProcessStdoutLog      ~~hff===rR   c                 2    |                      d|||          S )Nr   rf  rg  s       rP   readProcessStderrLogz0DummySupervisorRPCNamespace.readProcessStderrLog  ri  rR   c                     | j         S rT   )all_process_inforN   s    rP   getAllProcessInfoz-DummySupervisorRPCNamespace.getAllProcessInfo  s    $$rR   c                 
   ddl m} | j        D ]}|d         |k    r|}|c S |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          d S )Nr   r[  r   r]  r^  r_  )r   r\  rm  r   r`  r]  r^  r_  )rO   r   r\  ir   s        rP   getProcessInfoz*DummySupervisorRPCNamespace.getProcessInfo  s    %%%%%%& 	 	Ay$  :.
;;;8,h7779-y999 rR   c                    ddl m} |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |d	k    rt          |j        j	        d	          d
S )Nr   r[  BAD_NAME:BAD_NAMEr]  r_  NOT_EXECUTABLEALREADY_STARTEDSPAWN_ERRORABNORMAL_TERMINATIONT)
r   r\  r   r`  r]  r_  rt  ru  rv  rw  rO   r   r\  s      rP   startProcessz(DummySupervisorRPCNamespace.startProcess  s   %%%%%%&&&.0CDDD:.
;;;9-y999###46FGGG$$$57HIII=  1=AAA))):.0 0 0trR   c                     ddl m} ddlm} |dk    r ||j        j        d          dd|j        j        ddd	d|j        j        ddgS 
Nr   r[  r   r]  foo_00rF  OKr   r  statusrL  foo_01r   r\  supervisor.compatr   r`  r]  SUCCESSrO   r   r\  r   s       rP   startProcessGroupz-DummySupervisorRPCNamespace.startProcessGroup+      %%%%%%++++++:%.
;;;e}, " " em+ " "	 	rR   c                 r    ddl m} dd|j        j        dddd|j        j        dddd|j        j        d	dgS )
Nr   r[  rF  r}  r~  foo2failedfailed_grouprv  )r   r\  r`  r  rv  rO   r\  s     rP   startAllProcessesz-DummySupervisorRPCNamespace.startAllProcesses9  sp    %%%%%%5}, " " Fm+ " " nm/(* *
 
	rR   c                     ddl m} ddlm} |dk    r ||j        j        d          dd|j        j        ddd	d|j        j        ddgS r{  r  r  s       rP   stopProcessGroupz,DummySupervisorRPCNamespace.stopProcessGroupG  r  rR   c                    ddl m} |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          dS )Nr   r[  rs  r]  NOT_RUNNINGr^  T)r   r\  r   r`  r]  r  r^  rx  s      rP   stopProcessz'DummySupervisorRPCNamespace.stopProcessU  s    %%%%%%&&&.0CDDD:.
;;;=  1=AAA8,h777trR   c                 r    ddl m} dd|j        j        dddd|j        j        dddd|j        j        d	dgS 
Nr   r[  rF  r}  r~  r  r  r  r^  r   r\  r`  r  r]  r  s     rP   stopAllProcessesz,DummySupervisorRPCNamespace.stopAllProcessesb  so    %%%%%%%}, " " Fm+4A Anm,#% %	 		rR   c                 b    | j         r	d| _        d S ddlm} t	          |j        j        d          NTr   r[  r   )_restartable
_restartedr   r\  r   r`  SHUTDOWN_STATEr  s     rP   restartz#DummySupervisorRPCNamespace.restarto  s@     	"DOF%%%%%%FM0"555rR   c                 b    | j         r	d| _        d S ddlm} t	          |j        j        d          r  )r  	_shutdownr   r\  r   r`  r  r  s     rP   shutdownz$DummySupervisorRPCNamespace.shutdownv  s@     	!DNF%%%%%%FM0"555rR   c                     dgdgdgggS )NaddedchangedrA   r]   rN   s    rP   reloadConfigz(DummySupervisorRPCNamespace.reloadConfig}  s    YK)566rR   c                 z   ddl m} |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          t          | d          r| j	        
                    |           d S |g| _	        d S )	Nr   r[  ALREADY_ADDEDr   r]  r^  r  	processes)r   r\  r   r`  r  r]  r^  r  hasattrr  rf   rx  s      rP   addProcessGroupz+DummySupervisorRPCNamespace.addProcessGroup  s    %%%%%%?""3R888:.3338,b111###4b9994%% 	$N!!$'''''"VDNNNrR   c                    ddl m} |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          | j                            |           d S )Nr   r[  STILL_RUNNINGr   r]  r^  )	r   r\  r   r`  r  r]  r^  r  r   rx  s      rP   removeProcessGroupz.DummySupervisorRPCNamespace.removeProcessGroup  s    %%%%%%?""3R888:.3338,b111d#####rR   c                 R    ddl m} |dk    rt          |j        j        d          dS )Nr   r[  r]  T)r   r\  r   r`  r]  rx  s      rP   clearProcessStdoutLogz1DummySupervisorRPCNamespace.clearProcessStdoutLog  s9    %%%%%%:.
;;;trR   c                 r    ddl m} dd|j        j        dddd|j        j        dddd|j        j        d	dgS r  )r   r\  r`  r  r^  r  s     rP   clearAllProcessLogsz/DummySupervisorRPCNamespace.clearAllProcessLogs  ss    %%%%%%m+ " " m+ " " #m*#% % 	rR   c                      t          d          )Nr  
ValueErrorrN   s    rP   
raiseErrorz&DummySupervisorRPCNamespace.raiseError  s    !!!rR   c                 
    dd iS )Nr  r]   rN   s    rP   getXmlRpcUnmarshallablez3DummySupervisorRPCNamespace.getXmlRpcUnmarshallable  s     $''rR   c                     dS )N3000r]   rN   s    rP   getSupervisorVersionz0DummySupervisorRPCNamespace.getSupervisorVersion  s    vrR   c                 >    | j         rt          | j         d          dS )Nr   mainlogdata)_readlog_errorr   )rO   whencera  s      rP   readLogz#DummySupervisorRPCNamespace.readLog  s%     	1+R000}rR   c                     ddl m} |dk    rt          |j        j        d          dd|j        j        dddd|j        j        ddgS )	Nr   r[  r]  r|  rF  r}  r~  r  )r   r\  r   r`  r]  r  rO   r   r}  r\  s       rP   signalProcessGroupz.DummySupervisorRPCNamespace.signalProcessGroup  sv    %%%%%%:.
;;;}, " " m+ " "	 		rR   c                 R   ddl m} |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          |dk    rt          |j        j        d          dS )	Nr   r[  
BAD_SIGNALrs  r]  r  r^  T)r   r\  r   r`  r  r]  r  r^  r  s       rP   signalProcessz)DummySupervisorRPCNamespace.signalProcess  s    %%%%%%\!!0,???&&&.0CDDD:.
;;;=  1=AAA8,h777trR   c                 r    ddl m} dd|j        j        dddd|j        j        dddd|j        j        d	dgS r  r  )rO   r}  r\  s      rP   signalAllProcessesz.DummySupervisorRPCNamespace.signalAllProcesses  ss    %%%%%%}, " " m+ " " #m,#% % 	rR   N).r   r   r   r  r  r  r  r^  rX  r   _NOWr  rv  rm  rV  
getVersionrY  rd  rh  readProcessLogrk  rn  rq  ry  r  r  r  r  r  r  r  r  r  r  r  clearProcessLogclearProcessStderrLogclearProcessLogsr  r  r  r  r  r  r  r  r]   rR   rP   rA  rA    s       LJIN 100000 %s
'	
 	
 #s
by'	
 	
 %s
by'	
 	
3%
N   J  	 	 	> > >)N> > >% % %: : :  &          6 6 66 6 67 7 7$ $ $$ $ $   ,O1,  "" " "( ( (    
        rR   rA  c                   (    e Zd ZddZd Zd Zd ZdS )	DummyPGroupConfigrp  r   Nc                 p    || _         || _        || _        |g }|| _        d| _        g | _        d| _        d S )NFr   )r  r   r  process_configsafter_setuid_calledpool_eventsbuffer_size)rO   r  r   r  pconfigss        rP   rQ   zDummyPGroupConfig.__init__  sH    	 H'#( rR   c                     d| _         d S rb   )r  rN   s    rP   after_setuidzDummyPGroupConfig.after_setuid  s    #'   rR   c                      t          |           S rT   )DummyProcessGrouprN   s    rP   
make_groupzDummyPGroupConfig.make_group   s     &&&rR   c                 H    d| j         dt          |           d| j        dS )N<z instance at z named >)	__class__idr   rN   s    rP   __repr__zDummyPGroupConfig.__repr__  s,     15D15< 	<rR   )rp  r   N)r   r   r   rQ   r  r  r  r]   rR   rP   r  r    sU        	 	 	 	( ( (' ' '< < < < <rR   r  c                   0    e Zd Zddd ed          fdZdS )DummyFCGIGroupConfigrp  r   Nr   c                 P    t                               | ||||           || _        d S rT   )r  rQ   socket_config)rO   r  r   r  r  r  s         rP   rQ   zDummyFCGIGroupConfig.__init__  s,    ""4$(KKK*rR   )r   r   r   r;  rQ   r]   rR   rP   r  r    s>        %/#\m\mno\p\p + + + + + +rR   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )r  c                 Z    || _         d| _        d| _        i | _        g | _        d| _        d S r   )rO  rm  all_stoppedrh  unstopped_processesbefore_remove_calledrO   rO  s     rP   rQ   zDummyProcessGroup.__init__  s7    ! #% $)!!!rR   c                     d| _         d S rb   r  rN   s    rP   r  zDummyProcessGroup.transition  r7  rR   c                     d| _         d S rb   )r  rN   s    rP   before_removezDummyProcessGroup.before_remove  s    $(!!!rR   c                     d| _         d S rb   )r  rN   s    rP   stop_allzDummyProcessGroup.stop_all  rs   rR   c                     | j         S rT   )r  rN   s    rP   get_unstopped_processesz)DummyProcessGroup.get_unstopped_processes  s    ''rR   c                     | j         S rT   )rh  rN   s    rP   get_dispatchersz!DummyProcessGroup.get_dispatchers"  s    rR   c                 6    | j         j        |j         j        k     S rT   r  rA  s     rP   r  zDummyProcessGroup.__lt__%  r  rR   c                 6    | j         j        |j         j        k    S rT   r  rA  s     rP   rC  zDummyProcessGroup.__eq__(  r  rR   c                     d| _         d S rb   r   rN   s    rP   r   zDummyProcessGroup.reopenlogs+  r   rR   N)r   r   r   rQ   r  r  r  r  r  r  rC  r   r]   rR   rP   r  r    s        * * *! ! !) ) )     ( ( (     < < <= = =" " " " "rR   r  c                       e Zd Zd ZdS )DummyFCGIProcessGroupc                 n    t                               | |           t          |j                  | _        d S rT   )r  rQ   rK  r  socket_managerr  s     rP   rQ   zDummyFCGIProcessGroup.__init__0  s1    ""400001EFFrR   Nr  r]   rR   rP   r  r  .  s(        G G G G GrR   r  c                   "    e Zd Zd ZddZd ZdS )PopulatedDummySupervisorc                     t                               | |           i | _        i }|| _        t	          |||          }t          |          }|| j        |<   |D ]}t          |          }|||j        <   ||_        d S )N)r  )	r  rQ   r!  
group_namer  r  rU  r   r  )	rO   r  r  r  r  gconfigpgrouppconfigr  s	            rP   rQ   z!PopulatedDummySupervisor.__init__5  s      w/// 	$#GZ(KKK"7++*0J' 	. 	.G"7++G&-Igl##$rR   Nc                 j    || j         }| j        |         j        |         }t          |||           d S rT   )r  r!  r  setattr)rO   process_name	attr_namevalr  r  s         rP   set_procattrz%PopulatedDummySupervisor.set_procattrB  s<    J%j1;LIC(((((rR   c                     d| _         d S rb   )reapedrN   s    rP   reapzPopulatedDummySupervisor.reapH  r  rR   rT   )r   r   r   rQ   r  r  r]   rR   rP   r  r  4  sF        % % %) ) ) )    rR   r  c                   `    e Zd ZdZdZdZdZdZdZdZ	dZ
ddZd Zd Zd Zd Zd Zd	 Zd
 ZdS )r  NFc                 x     | _         | _        | _        d _        |r fd}| _         fd}| _        d S d S )Nr   c                      d _         d S rb   r   rN   s   rP   r   z,DummyDispatcher.__init__.<locals>.reopenlogs]  s    %)"""rR   c                      d _         d S rb   )logs_removedrN   s   rP   rr  z,DummyDispatcher.__init__.<locals>.removelogs`  s    $(!!!rR   )	_readable	_writabler  input_bufferr   rr  )rO   r  r  r  r   rr  s   `     rP   rQ   zDummyDispatcher.__init__V  sv    !! 	)* * * * *(DO) ) ) ) )(DOOO	) 	)rR   c                     | j         S rT   )r  rN   s    rP   r  zDummyDispatcher.readabled  
    ~rR   c                     | j         S rT   )r  rN   s    rP   r  zDummyDispatcher.writablef  r  rR   c                 0    | j         r| j         d| _        d S rb   )r  write_event_handledrN   s    rP   handle_write_eventz"DummyDispatcher.handle_write_eventh  s"    ; 	+#'   rR   c                 0    | j         r| j         d| _        d S rb   )r  read_event_handledrN   s    rP   handle_read_eventz!DummyDispatcher.handle_read_eventl  s"    ; 	+"&rR   c                     d| _         d S rb   )error_handledrN   s    rP   handle_errorzDummyDispatcher.handle_errorp  r   rR   c                     d| _         d S rb   r
  rN   s    rP   r  zDummyDispatcher.closer  r  rR   c                 0    | j         r| j         d| _        d S rb   )flush_exceptionr  rN   s    rP   r  zDummyDispatcher.flusht  s!     	'&&rR   )FFF)r   r   r   r  r  r  r  r>   r  r   r  rQ   r  r  r  r  r  r  r  r]   rR   rP   r  r  K  s        OMMLFG) ) ) )    ( ( (' ' '" " "      rR   r  c                   <    e Zd ZddZd Zd Zd ZddZd	 Zd
 Z	dS )DummyStreamNr   c                 L    || _         d| _        d| _        d| _        || _        d S )NFrR   )r  r   r  r7   _fileno)rO   r  r*  s      rP   rQ   zDummyStream.__init__z  s)    
rR   c                 0    | j         r| j         d| _        d S rb   )r  r   rN   s    rP   r  zDummyStream.close  s    : 	*rR   c                 0    | j         r| j         d| _        d S rb   )r  r  rN   s    rP   r  zDummyStream.flush  s    : 	*rR   c                 n    | j         r| j         }d | _         || xj        t          |          z  c_        d S rT   )r  r7   r   )rO   r   r  s      rP   r   zDummyStream.write  s9    : 	JEDJK%rR   r   c                     d S rT   r]   )rO   numr  s      rP   seekzDummyStream.seek  r`   rR   c                 *    t          | j                  S rT   )r   r7   rN   s    rP   tellzDummyStream.tell  s    4<   rR   c                     | j         S rT   )r"  rN   s    rP   r*  zDummyStream.fileno  rv   rR   )Nr   r  )
r   r   r   rQ   r  r  r   r(  r*  r*  r]   rR   rP   r   r   y  s               & & &   ! ! !    rR   r   c                       e Zd ZddZd ZdS )
DummyEventabcc                     |	|| _         d S d S rT   )serial)rO   r0  s     rP   rQ   zDummyEvent.__init__  s     DKKK rR   c                     dS )Nzdummy eventr]   rN   s    rP   payloadzDummyEvent.payload  s    }rR   N)r.  )r   r   r   rQ   r2  r]   rR   rP   r-  r-    s7        ! ! ! !    rR   r-  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )rK   c                 &    g g f| _         d| _        d S r   )resultr   )rO   r  s     rP   rQ   zDummyPoller.__init__  s    "frR   c                     d S rT   r]   r   s     rP   register_readablezDummyPoller.register_readable  r`   rR   c                     d S rT   r]   r   s     rP   register_writablezDummyPoller.register_writable  r`   rR   c                     | j         S rT   )r5  )rO   timeouts     rP   pollzDummyPoller.poll  s
    {rR   c                     d| _         d S rb   r
  rN   s    rP   r  zDummyPoller.close  r  rR   N)r   r   r   rQ   r7  r9  r<  r  r]   rR   rP   rK   rK     s_                    rR   rK   c                     d S rT   r]   eventr5  s     rP   dummy_handlerrA    s    DrR   c                 $    ddl m}  ||          )Nr   )RejectEvent)supervisor.dispatchersrC  )r@  r5  rC  s      rP   rejecting_handlerrE    s$    222222
+f

rR   c                      t          |          rT   r  r?  s     rP   exception_handlerrG    s    
V

rR   c                 j    d |                      d          D             }d                    |          S )Nc                 6    g | ]}|                                 S r]   )strip).0xs     rP   
<listcomp>zlstrip.<locals>.<listcomp>  s     000Qqwwyy000rR   
)r  r  )sstringss     rP   lstriprQ    s1    00!''$--000G99WrR   rT   )F)-r  _TIMEFORMAT	functoolsr  r   r   unittest.mockr   r   r   ImportErrormockr
   rU   r  r&  r;  rK  total_orderingobjectrU  r  r  r  r  r  r  r  r<  r?  rB  rA  r  r  r  r  r  r  r   r-  rK   rA  rE  rG  rQ  r]   rR   rP   <module>rY     s       # # # # # # & & & & & &+33333333333 + + +************+          KKKKKi i i i i i i iV "  "  "  "  "  "  "  "D! ! ! ! ! ! ! !&       6$ $ $ $ $ $ $ $*, , , , , , , , F< F< F< F< F<6 F< F< F<PJ" J" J" J" J" J" J" J"X   (M M M M, , , , , , , ,0 0 0 0 0 0 0 0       6$ 6$ 6$ 6$ 6$6 6$ 6$ 6$r       
0 0 0 0 0 0 0 0
	 	 	 	 	 	 	 	p p p p p p p pd	< < < < < < < <,+ + + + +, + + +
 " " " " " " " "BG G G G G- G G G       ., , , , , , , ,\       8              "	 	 	        s   
! 33> 	A
	A
