
    1cğ                       d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZ  G d de j*                        Z G d de      Z G d de      Z G d de      Z G d de j*                        Z G d de j*                        Z G d d      Zd Zedk(  r e j>                  d       yy)    N)DummyOptions)DummySupervisor)DummyProcess)DummyPConfig)DummyPGroupConfig)DummyProcessGroup)PopulatedDummySupervisor)_NOW)_TIMEFORMAT)	as_stringPY2)	Automaticc                       e Zd Zd Zd Zd Zy)TestBasec                      y N selfs    E/usr/lib/python3/dist-packages/supervisor/tests/test_rpcinterfaces.pysetUpzTestBase.setUp           c                      y r   r   r   s    r   tearDownzTestBase.tearDown   r   r   c                     ddl m} 	  ||i | t        d      # |j                  $ r&}| j	                  |j
                  |       Y d }~y d }~ww xY w)Nr   xmlrpczDidn't raise)
supervisorr   AssertionErrorRPCErrorassertEqualcode)r   r#   callableargskwr   insts          r   _assertRPCErrorzTestBase._assertRPCError   sQ    %	1d!b! !00  	.TYY--	.s    AAAN)__name__
__module____qualname__r   r   r(   r   r   r   r   r      s    1r   r   c                   $    e Zd Zd Zd Zd Zd Zy)MainXMLRPCInterfaceTestsc                 &    ddl m} |j                  S Nr   r   )r   r   RootRPCInterfacer   r   s     r   _getTargetClassz(MainXMLRPCInterfaceTests._getTargetClass(   s    %&&&r   c                 .     | j                         |i |S r   r2   r   r%   r&   s      r   _makeOnez!MainXMLRPCInterfaceTests._makeOne,       %t##%t2r22r   c                 `    | j                  dg      }| j                  |j                  d        y )N)r   N)r6   r"   r   r   	interfaces     r   	test_ctorz"MainXMLRPCInterfaceTests.test_ctor/   s*    MM#7"89	--t4r   c                    t               }| j                  d|fg      }ddlm} | j	                  |j
                  j                  |j                  |dg        | j	                  |j
                  j                  |j                  |dg        | j	                  |j
                  j                  |j                  |ddg       | j                  |j                  |dg       d       y )	Ndummyr   r   znotthere.hellozsupervisor._readFilezdummy.hello   Hello!)
DummyRPCInterfacer6   r   r   r(   FaultsUNKNOWN_METHODtraverseINCORRECT_PARAMETERSr"   )r   r=   r:   r   s       r   test_traversez&MainXMLRPCInterfaceTests.test_traverse3   s    !#MMGU#3"45	%V]]99#__i9I2	OV]]99#__i3R	9 	V]]??#__i*QC	1 	}b*+3	5r   N)r)   r*   r+   r2   r6   r;   rE   r   r   r   r-   r-   &   s    '355r   r-   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 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. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdX ZZdY Z[dZ Z\d[ Z]d\ Z^d] Z_d^ Z`d_ Zad` Zbda Zcdb Zddc Zedd Zfde Zgdf Zhdg Zidh Zjdi Zkdj Zldk Zmdl Zndm Zodn Zpdo Zqdp Zrdq Zsdr Ztds Zudt Zvdu Zwdv Zxdw Zydx Zzyy)z'SupervisorNamespaceXMLRPCInterfaceTestsc                 &    ddl m} |j                  S )Nr   rpcinterface)r   rJ   SupervisorNamespaceRPCInterface)r   rJ   s     r   r2   z7SupervisorNamespaceXMLRPCInterfaceTests._getTargetClassC   s    +;;;r   c                 .     | j                         |i |S r   r4   r5   s      r   r6   z0SupervisorNamespaceXMLRPCInterfaceTests._makeOneG   r7   r   c                 D   ddl m} ddlm} t	               }| j                  |      }|j                  d       | j                  |j                  d       |j                  |j                  _        | j                  |j                  j                  |j                  d       y )Nr   r   )SupervisorStatesfoo)r   r   supervisor.supervisordrN   r   r6   _updater"   update_textSHUTDOWNoptionsmoodr(   rA   SHUTDOWN_STATE)r   r   rN   supervisordr:   s        r   test_updatez3SupervisorNamespaceXMLRPCInterfaceTests.test_updateJ   s{    %;%'MM+.	% ..6#3#<#< V]]999;L;L"	$r   c                     ddl m} t               }| j                  |      }|j	                         }| j                  ||j                         | j                  |j                  d       y )Nr   rI   getAPIVersion)r   rJ   r   r6   rZ   r"   API_VERSIONrR   )r   rJ   rW   r:   versions        r   test_getAPIVersionz:SupervisorNamespaceXMLRPCInterfaceTests.test_getAPIVersionU   sU    +%'MM+.	))+,":":;..@r   c                     t               }| j                  |      }| j                  |j                  |j                         y r   )r   r6   r"   rZ   
getVersionr   rW   r:   s      r   3test_getAPIVersion_aliased_to_deprecated_getVersionz[SupervisorNamespaceXMLRPCInterfaceTests.test_getAPIVersion_aliased_to_deprecated_getVersion]   s4    %'MM+.	00)2F2FGr   c                     t               }| j                  |      }|j                         }ddlm} | j                  ||j                         | j                  |j                  d       y )Nr   )rT   getSupervisorVersion)r   r6   rc   r   rT   r"   VERSIONrR   )r   rW   r:   r\   rT   s        r   test_getSupervisorVersionzASupervisorNamespaceXMLRPCInterfaceTests.test_getSupervisorVersionb   sT    %'MM+.	002&'//2..0FGr   c                     t               }| j                  |      }|j                         }| j                  ||j                  j
                         | j                  |j                  d       y )NgetIdentification)r   r6   rg   r"   rT   
identifierrR   )r   rW   r:   rh   s       r   test_getIdentificationz>SupervisorNamespaceXMLRPCInterfaceTests.test_getIdentificationk   sY    %'MM+.	002
[%8%8%C%CD..0CDr   c                 .   ddl m} t               }| j                  |      }|j	                         }|j
                  j                  } ||      }| j                  |d   |       | j                  |d   |       | j                  |j                  d       y )Nr   )getSupervisorStateDescription	statecode	statenamegetState)	supervisor.statesrk   r   r6   rn   rT   rU   r"   rR   )r   rk   rW   r:   	stateinforl   rm   s          r   test_getStatez5SupervisorNamespaceXMLRPCInterfaceTests.test_getStater   s    C%'MM+.	&&(	'',,	1)<	;/;;/;..
;r   c                     t               }t        |      }| j                  |      }| j                  |j	                         |j                                | j                  |j                  d       y )NgetPID)r   r   r6   r"   rs   get_pidrR   )r   rT   rW   r:   s       r   test_getPIDz3SupervisorNamespaceXMLRPCInterfaceTests.test_getPID}   sW    .%g.MM+.	))+W__->?..9r   c                     t               }| j                  |      }| j                  |j                  |j                         y r   )r   r6   r"   readMainLogreadLogr`   s      r   .test_readLog_aliased_to_deprecated_readMainLogzVSupervisorNamespaceXMLRPCInterfaceTests.test_readLog_aliased_to_deprecated_readMainLog   s4    %'MM+.	..	0A0ABr   c                     ddl m} t               }| j                  |      }| j	                  |j
                  j                  |j                  dd       y )Nr   r   r>   offsetlength)r   r   r   r6   r(   rA   NO_FILErx   r   r   rW   r:   s       r   test_readLog_unreadablez?SupervisorNamespaceXMLRPCInterfaceTests.test_readLog_unreadable   sG    %%'MM+.	V]]22I4E4E$%a 	 	1r   c                    ddl m} t               }| j                  |      }	 |j                  j
                  }t        |d      5 }|j                  d       d d d        | j                  |j                  j                  |j                  dd       | j                  |j                  j                  |j                  dd       t        j                  |       y # 1 sw Y   xY w# t        j                         w xY w)Nr   r   w+   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr>   r{   )r   r   r   r6   rT   logfileopenwriter(   rA   BAD_ARGUMENTSrx   osremove)r   r   rW   r:   r   fs         r   test_readLog_badargsz<SupervisorNamespaceXMLRPCInterfaceTests.test_readLog_badargs   s    %%'MM+.	
	!))11Ggt$ $
#$  !<!<!*!2!22a ! I  !<!<!*!2!22(* ! , IIg$ $ IIgs$   "C' CA.C' C$ C' 'C>c                    t               }| j                  |      }|j                  j                  }	 t	        |d      5 }|j                  d       |j                  d       d d d        |j                  dd      }| j                  |j                  d       | j                  |d       |j                  dd      }| j                  |d       |j                  dd      }| j                  |d       |j                  d	d      }| j                  |d
       t        j                  |       y # 1 sw Y   xY w# t        j                  |       w xY w)Nr   r      yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr   r{   rx      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy   yyyy)r   r6   rT   r   r   r   rx   r"   rR   r   r   )r   rW   r:   r   r   datas         r   test_readLogz4SupervisorNamespaceXMLRPCInterfaceTests.test_readLog   s/   %'MM+.	%%--	gt$ $
#
#$ $$Aa$8DY22I>T#>?$$D$;DT:.$$Ad$;DT:.$$Bq$9DT7+IIg$ $ IIgs#   D< #D0"B8D< 0D95D< <Ec                     ddl m} t               }| j                  |      }| j	                  |j
                  j                  |j                         y r/   )r   r   r   r6   r(   rA   r~   clearLogr   s       r   test_clearLog_unreadablez@SupervisorNamespaceXMLRPCInterfaceTests.test_clearLog_unreadable   s;    %%'MM+.	V]]22I4F4FGr   c                    ddl m} t               }|j                  g|_        t        t        j                  t        j                  t        j                              |_
        t        |      }| j                  |      }| j                  |j                  |j                         | j!                  |j"                  d       y )Nr   r   r   )r   r   r   r   existingOSErrorerrnoEPERMr   strerrorremove_exceptionr   r6   assertRaisesr!   r   r"   rR   )r   r   rT   rW   r:   s        r   test_clearLog_unremoveablezBSupervisorNamespaceXMLRPCInterfaceTests.test_clearLog_unremoveable   s    %.#OO,#*5;;+-;;u{{+C$E %g.MM+.	&//9+=+=>..
;r   c                    t               }|j                  g|_        t        |      }| j	                  |      }|j                         }| j                  |j                  d       | j                  |d       | j                  |j                  d   |j                         |j                  j                  j                  D ]  }| j                  |j                  d         y )Nr   Tr   )r   r   r   r   r6   r   r"   rR   removedrT   loggerhandlersreopened)r   rT   rW   r:   resulthandlers         r   test_clearLogz5SupervisorNamespaceXMLRPCInterfaceTests.test_clearLog   s    .#OO,%g.MM+.	##%..
;&+W__="**11:: 	5GW--t4	5r   c                     t               }| j                  |      }|j                         }| j                  |d       | j                  |j                  j
                  d       y )NTr   )r   r6   shutdownr"   rT   rU   r   rW   r:   values       r   test_shutdownz5SupervisorNamespaceXMLRPCInterfaceTests.test_shutdown   sR    %'MM+.	""$%,,1126r   c                     t               }| j                  |      }|j                         }| j                  |d       | j                  |j                  j
                  d       y )NTr   )r   r6   restartr"   rT   rU   r   s       r   test_restartz4SupervisorNamespaceXMLRPCInterfaceTests.test_restart   sR    %'MM+.	!!#%,,1115r   c                    t               }t        |      }| j                  |      }t        |d      gt        |d      gt        |d      ggfd|_        |j                         }| j                  |dgdgdggg       y )Naddedchangeddroppedc                       S r   r   )changess   r   <lambda>zKSupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfig.<locals>.<lambda>   s    g r   )r   r   r6   r   diff_to_activereloadConfigr"   )r   rT   rW   r:   r   r   s        @r   test_reloadConfigz9SupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfig   s    .%g.MM+.	&w89&w	:;&w	:;> &6"&&(7)i[9+!F GHr   c                     ddl m} t               }d }||_        t	        |      }| j                  |      }| j                  |j                  j                  |j                         y )Nr   r   c                      t        d      )NrO   )
ValueError)argr&   s     r   	raise_exczmSupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfig_process_config_raises_ValueError.<locals>.raise_exc   s    U##r   )
r   r   r   process_configr   r6   r(   rA   CANT_REREADr   )r   r   rT   r   rW   r:   s         r   2test_reloadConfig_process_config_raises_ValueErrorzZSupervisorNamespaceXMLRPCInterfaceTests.test_reloadConfig_process_config_raises_ValueError   sQ    %.	$!*%g.MM+.	V]]66	8N8NOr   c                 
   ddl m} ddlm} t	               } ||      }t        |dt        d      }t        |d|g      }|g|j                  _	        | j                  |      }|j                  d      }| j                  |       | j                  t        |j                  j!                               dg       | j#                  |j$                  j&                  |j                  d       | j                  t        |j                  j!                               dg       | j#                  |j$                  j(                  |j                  d	       | j                  t        |j                  j!                               dg       y 
Nr   
Supervisorr   rO   F	autostartgroup1pconfigsasdf)rP   r   r   r   r   r   __file__r   rT   process_group_configsr6   addProcessGroup
assertTruer"   listprocess_groupskeysr(   rA   ALREADY_ADDEDBAD_NAME)	r   r   r   rT   rW   pconfiggconfigr:   r   s	            r   test_addProcessGroupz<SupervisorNamespaceXMLRPCInterfaceTests.test_addProcessGroup   s1   5%. )wx5I#GX	J5<I1MM+.	**84k88==?@8*MV]]88&66	Bk88==?@8*MV]]33&66	@k88==?@8*Mr   c                    ddl m} t               } ||      }t        |dt        d      }t        |d|g      }|g|j                  _        | j                  |      }|j                  d       |j                  d      }| j                  |       | j                  t        |j                  j                               g        y )Nr   r   rO   Fr   r   r   )rP   r   r   r   r   r   rT   r   r6   r   removeProcessGroupr   r"   r   r   r   )r   r   rT   rW   r   r   r:   r   s           r   test_removeProcessGroupz?SupervisorNamespaceXMLRPCInterfaceTests.test_removeProcessGroup  s    5. )wx5I#GX	J5<I1MM+.	!!(+--h7k88==?@"Er   c                 ,   ddl m} ddlm} t	               } ||      }t        |dt        d      }t        |d|g      }|g|j                  _	        | j                  |      }| j                  |j                  j                  |j                  d	       y r   )rP   r   r   r   r   r   r   r   rT   r   r6   r(   rA   r   r   )r   r   r   rT   rW   r   r   r:   s           r    test_removeProcessGroup_bad_namezHSupervisorNamespaceXMLRPCInterfaceTests.test_removeProcessGroup_bad_name  s}    5%. )wx5I#GX	J5<I1MM+.	V]]33&996	Cr   c                 d   ddl m} ddlm} t	               } ||      }t        |dt        d      }t        |d|g      }|g|j                  _	        t        |      }d	g|_        d|i|_        | j                  |      }| j                  |j                  j                   |j"                  d       y )
Nr   r   r   rO   Fr   r   r   {   )rP   r   r   r   r   r   r   r   rT   r   r   unstopped_processesr   r6   r(   rA   STILL_RUNNINGr   )	r   r   r   rT   rW   r   r   processr:   s	            r   %test_removeProcessGroup_still_runningzMSupervisorNamespaceXMLRPCInterfaceTests.test_removeProcessGroup_still_running+  s    5%. )wx5I#GX	J5<I1#G,'*e#&.w%7"MM+.	V]]88&998	Er   c                    ddl m} t               }t        |dt        d      }t        |d|      }|j                  ddd       | j                  |      }| j                  |j                  j                  |j                  d       y )Nr   r   rO   Fr   pid
   )r   r   r   r   r   r	   set_procattrr6   r(   rA   ALREADY_STARTEDstartProcessr   r   rT   r   rW   r:   s         r   !test_startProcess_already_startedzISupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_already_started:  sp    %.wx5I.wwG  r2MM+.	MM))""E	r   c                    ddl m} ddlm} t	               }t        |dt        d      }t        |d|      }|j                  ddd       |j                  dd	|j                         | j                  |      }| j                  |j                  j                  |j                  d       |j                  d   j                   d   }| j#                  |j$                  d       y )
Nr   r   ProcessStatesrO   Fr   r   r   state)r   r   ro   r   r   r   r   r	   r   UNKNOWNr6   r(   rA   FAILEDr   r   	processesr"   spawned)r   r   r   rT   r   rW   r:   r   s           r   test_startProcess_unknown_statezGSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_unknown_stateF  s    %3.wx5I.wwG  r2  1F1FGMM+.	MM  ""E	 ,,U3==eD%0r   c                     t               }t        |dt        d      }t        |d|      }| j	                  |      }ddlm} | j                  |j                  j                  |j                  d       y )NrO   Fr   r   r   r   z
group2:foor   r   r   r	   r6   r   r   r(   rA   r   r   r   rT   r   rW   r:   r   s         r    test_startProcess_bad_group_namezHSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_bad_group_nameV  ^    .wx5I.w'JMM+.	%V]]33&33\	Cr   c                     t               }t        |dt        d      }t        |d|      }| j	                  |      }ddlm} | j                  |j                  j                  |j                  d       y )NrO   Fr   r   r   r   z
group1:barr   r   s         r   "test_startProcess_bad_process_namezJSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_bad_process_name_  r   r   c                 2   t               }t        |ddd      }ddlm} t	        |d|      }|j
                  d   j                  d   }||_        | j                  |      }ddl	m
} | j                  |j                  j                  |j                  d       y )NrO   /foo/barFr   r   )NotFoundr   )r   r   supervisor.optionsr   r	   r   r   execv_arg_exceptionr6   r   r   r(   rA   r~   r   )r   rT   r   r   rW   r   r:   r   s           r    test_startProcess_file_not_foundzHSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_file_not_foundh  s    .
eL/.wwG,,U3==eD&.#MM+.	%V]]22&33U	<r   c                 2   t               }t        |ddd      }ddlm} t	        |d|      }|j
                  d   j                  d   }||_        | j                  |      }ddl	m
} | j                  |j                  j                  |j                  d       y )NrO   r   Fr   r   )
BadCommandr   )r   r   r   r  r	   r   r   r   r6   r   r   r(   rA   NOT_EXECUTABLEr   )r   rT   r   r  rW   r   r:   r   s           r   test_startProcess_bad_commandzESupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_bad_commandt  s    .wzUK1.wwG,,U3==eD&0#MM+.	%V]]99&33U	<r   c                 2   t               }t        |ddd      }ddlm} t	        |d|      }|j
                  d   j                  d   }||_        | j                  |      }ddl	m
} | j                  |j                  j                  |j                  d       y )NrO   r   Fr   r   )NotExecutabler   )r   r   r   r  r	   r   r   r   r6   r   r   r(   rA   r  r   )r   rT   r   r  rW   r   r:   r   s           r   %test_startProcess_file_not_executablezMSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_file_not_executable  s    .
eL4.wwG,,U3==eD&3#MM+.	%V]]99&33U	<r   c                 t   ddl m} t               }t        |dt        d      }ddlm} t        |d|      }|j                  dd|j                         |j                  d   j                  d   }d|_        | j                  |      }| j                  |j                  j                   |j"                  d       y )	Nr   r   rO   Fr   r   r   abc)r   r   r   r   r   supervisor.processr   r	   r   STOPPEDr   r   spawnerrr6   r(   rA   SPAWN_ERRORr   )r   r   rT   r   r   rW   r   r:   s           r   test_startProcess_spawnerrzBSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerr  s    %.wx5I4.wwG  1F1FG,,U3==eD MM+.	MM%%""	r   c                    t               }t        |dt        dd      }ddlm} t        |d|      }|j                  dd|j                         | j                  |      }|j                  d      }|j                  d   j                  d   }| j                  |j                  d       | j                  |j                  d	       |j                  |_        | j                  |d       y )
NrO   F{Gz?r   	startsecsr   r   r   Tr   )r   r   r   r  r   r	   r   r  r6   r   r   r   r"   r   rR   RUNNINGr   r   rT   r   r   rW   r:   r   r   s           r   test_startProcessz9SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess  s    .wx5),.4.wwG  1F1FGMM+.	''.,,U3==eD$/..?%--&r   c                   	
 ddl m} t               }t        |dt        d      }ddlm	 t        |d|      }|j                  dd	j                         |j                  d   j                  d   
	
fd}
fd	}|
_        |
_        | j                  |      }|j                  d      }| j!                  |j"                  j$                  |       y )
Nr   r   rO   Fr   r   r   c                  6    d_          j                  _        y NTr   STARTINGr   r   r   s   r   spawnz[SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerr_in_onwait.<locals>.spawn      "GO)22GMr   c                      d _         y )Nr
  )r  )r   s   r   
transitionz`SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerr_in_onwait.<locals>.transition  s    $Gr   )r   r   r   r   r   r  r   r	   r   r  r   r   r  r   r6   r   r(   rA   r  )r   r   rT   r   rW   r  r   r:   callbackr   r   s            @@r   $test_startProcess_spawnerr_in_onwaitzLSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_spawnerr_in_onwait  s    %.wx5I4.wwG  1F1FG,,U3==eD	3	%'MM+.	))%0V]]66Ar   c                    t               }t        |dt        d      }ddlm t        |d|      }|j                  ddj                         |j                  d   j                  d   fd}|_
        | j                  |      }|j                  d      }j                  _        | j                   |       d       y )	NrO   Fr   r   r   r   c                  6    d_          j                  _        y r  r  r  s   r   r  zZSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_success_in_onwait.<locals>.spawn  r  r   T)r   r   r   r  r   r	   r   r  r   r   r  r6   r   r  r   r"   )	r   rT   r   rW   r  r:   r!  r   r   s	          @@r   #test_startProcess_success_in_onwaitzKSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_success_in_onwait  s    .wx5I4.wwG  1F1FG,,U3==eD	3 MM+.	))%0%--T*r   c                    t               }t        |dt        d      }ddlm} t        |d|      }|j                  dd|j                         | j                  |      }|j                  dd      }| j                  |d       |j                  d   j                  d   }| j                  |j                  d       | j                  |j                  d	       y )
NrO   Fr   r   r   r   waitTr   )r   r   r   r  r   r	   r   r  r6   r   r"   r   r   r   rR   r  s           r   test_startProcess_nowaitz@SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_nowait  s    .wx5I4.wwG  1F1FGMM+.	''E':&,,U3==eD$/..?r   c                 v  
 t               }t        |dt        d      }ddlm
 ddlm} t        |d|      }|j                  dd
j                         | j                  |      }|j                  d   j                  d   
fd}|_        |j                  dd	      } |       }| j                  ||j                          | j                  j"                  d
       | j                  |j$                  d       
j&                  _        ddlm}	 | j-                  |	j.                  j0                  |       y )NrO   Fr   r   r   httpr   c                  6    d_          j                  _        y r  r  r  s   r   r  zjSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_abnormal_term_process_not_running.<locals>.spawn  r  r   d   Tr   r   )r   r   r   r  r   r   r,  r	   r   r  r6   r   r   r  r   r"   NOT_DONE_YETr   rR   BACKOFFr   r   r(   rA   ABNORMAL_TERMINATION)r   rT   r   r,  rW   r:   r  r!  r   r   r   r   s             @@r   3test_startProcess_abnormal_term_process_not_runningz[SupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_abnormal_term_process_not_running  s    .wx5I4#.wwG  1F1FGMM+.	,,U3==eD	3 ))%5!2!23$/..?%--%V]]??Jr   c                    t               }t        |dt        dd      }t        |dt        dd      }t        |d||      }d	d
lm} |j                  dd|j                         |j                  dd|j                         | j                  |      }|j                  d       | j                  |j                  d       y )Nprocess1Fr  r  process2   priorityr  rO   r   r   r   foo:*startProcessGroup)r   r   r   r	   r  r   r   r  r6   r   r"   rR   r   rT   pconfig1pconfig2rW   r   r:   s          r   /test_startProcess_splat_calls_startProcessGroupzWSupervisorNamespaceXMLRPCInterfaceTests.test_startProcess_splat_calls_startProcessGroup  s    .X),.X*-/.w/7C4  Wm6K6KL  Wm6K6KLMM+.	w'..0CDr   c           	         t               }t        |dt        dd      }t        |dt        dd      }t        |d||      }dd	lm} dd
lm} |j                  dd|j                         |j                  dd|j                         | j                  |      }|j                  d      }| j                   |       d|j                  dddd|j                  dddg       | j                  |j                  d       |j                  d   j                   d   }	| j                  |	j"                  d       |j                  d   j                   d   }
| j                  |
j"                  d       y )Nr4  r>   r  r7  r5  r6  rO   r   r   rA   r   OKgroupstatusdescriptionnamer   T)r   r   r   r	   r  r   supervisor.xmlrpcrA   r   r  r6   r:  r"   SUCCESSrR   r   r   r   )r   rT   r<  r=  rW   r   rA   r:   r!  r4  r5  s              r   test_startProcessGroupz>SupervisorNamespaceXMLRPCInterfaceTests.test_startProcessGroup   sX   .X*-/X*-/.wx/794,  Wm6K6KL  Wm6K6KLMM+.	..u5J! " ! "		 	..?--e4>>zJ))40--e4>>zJ))40r   c           	         t               }t        |dt        dd      }t        |dt        dd      }t        |d||      }dd	lm} |j                  dd
|j                         |j                  dd
|j                         | j                  |      }|j                  dd      }ddl
m} | j                   |       d|j                  dddd|j                  dddg       y Nr4  r>   r  r7  r5  r6  rO   r   r   r   Fr'  r@  rA  rB  )r   r   r   r	   r  r   r   r  r6   r:  rG  rA   r"   rH  	r   rT   r<  r=  rW   r   r:   r!  rA   s	            r   test_startProcessGroup_nowaitzESupervisorNamespaceXMLRPCInterfaceTests.test_startProcessGroup_nowait"  s    .X*-/X*-/.wx/794  Wm6K6KL  Wm6K6KLMM+.	..u5.A,J! " ! "		r   c                     ddl m} t               }| j                  |      }| j	                  |j
                  j                  |j                  d       y Nr   r   rO   )r   r   r   r6   r(   rA   r   r:  r   s       r   test_startProcessGroup_badnamezFSupervisorNamespaceXMLRPCInterfaceTests.test_startProcessGroup_badname>  sA    %%'MM+.	V]]33&88%	Ar   c           	         t               }t        |dt        dd      }t        |dt        dd      }t        |d||      }dd	lm} |j                  dd
|j                         |j                  dd
|j                         | j                  |      }|j                         }ddl
m} | j                   |       d|j                  dddd|j                  dddg       | j                  |j                  d       |j                  d   j                   d   }	| j                  |	j"                  d       |j                  d   j                   d   }
| j                  |
j"                  d       y )Nr4  r>   r  r7  r5  r6  rO   r   r   r   r@  rA  rB  r   T)r   r   r   r	   r  r   r   r  r6   startAllProcessesrG  rA   r"   rH  rR   r   r   r   )r   rT   r<  r=  rW   r   r:   r!  rA   r4  r5  s              r   test_startAllProcessesz>SupervisorNamespaceXMLRPCInterfaceTests.test_startAllProcessesF  sV   .X*-/X*-/.wx/794  Wm6K6KL  Wm6K6KLMM+.	..0,J! " ! "		 	..?--e4>>zJ))40--e4>>zJ))40r   c           	         t               }t        |dt        dd      }t        |dt        dd      }t        |d||      }dd	lm} |j                  dd
|j                         |j                  dd
|j                         | j                  |      }|j                  d      }ddl
m} | j                   |       d|j                  dddd|j                  dddg       y rK  )r   r   r   r	   r  r   r   r  r6   rR  rG  rA   r"   rH  rL  s	            r   test_startAllProcesses_nowaitzESupervisorNamespaceXMLRPCInterfaceTests.test_startAllProcesses_nowaitj  s    .X*-/X*-/.wx/794  Wm6K6KL  Wm6K6KLMM+.	..E.:,J! " ! "		r   c                 ,   t               }t        |dd      }ddlm} t	        |d|      }|j                  dd|j                         | j                  |      }|j                  d      }| j                  |       | j                  |j                  d       |j                  d   j                  d   }| j                  |j                  d       | j                  |j                  d       | j!                  |j"                         | j                  |j$                  |j&                         | j                  |j(                         | j                  t+        |j                  d   j                        d       | j                  |j                  d       y )NrO   /bin/foor   r   r   stopProcessr>   )r   r   r  r   r	   r   r  r6   rX  r   r"   rR   r   r   backoffdelayassertFalsekillingr   r  stop_report_calledlenr  s           r   test_stopProcessz8SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess  s=   .wz:4.wwG  1F1FGMM+.	&&u-..>,,U3==eD!,*)(=(=>223[77>HHI1M..>r   c                    t               }t        |dt              }ddlm} t        |d|      }|j                  dd|j                         | j                  |      }|j                  dd      }| j                  |d       |j                  d   j                  d   }| j                  |j                  d       | j                  |j                         | j                  |j                   d       y )	NrO   r   r   r   Fr'  TrX  )r   r   r   r  r   r	   r   r  r6   rX  r"   r   r   stop_calledr   r]  rR   r  s           r   test_stopProcess_nowaitz?SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_nowait  s    .wx84.wwG  1F1FGMM+.	&&u5&9&,,U3==eD,,d3223..>r   c                   	 t               }t        |dd      }ddlm} t	        |d|      }|j
                  d   j                  d   }|j                  |j                  |j                  g		fd}||_
        | j                  |      }|j                  d      }| j                  |j                  d       | j                   |              y )NrO   rW  r   r   c                  &     j                  d      S Nr   popLs   r   	get_statez]SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_success_in_onwait.<locals>.get_state      558Or   rX  )r   r   r  r   r	   r   r   r  STOPPINGr  rj  r6   rX  r"   rR   r   )
r   rT   r   r   rW   r   rj  r:   r!  ri  s
            @r   "test_stopProcess_success_in_onwaitzJSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_success_in_onwait  s    .wz:4.wwG,,U3==eD##$$##&	%MM+.	((/..>
#r   c                   
 ddl m} t               }t        |dd      }ddlm} t        |d|      }|j                  d   j                  d   }|j                  |j                  |j                  g

fd}||_        | j                  |      }|j                  d      }	| j                   |	       |       | j                  |j                  d       y )Nr   r/  rO   rW  r   c                  &     j                  d      S re  rf  rh  s   r   rj  zYSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_NDY_in_onwait.<locals>.get_state  rk  r   rX  )supervisor.httpr/  r   r   r  r   r	   r   r   r  rl  rj  r6   rX  r"   rR   )r   r/  rT   r   r   rW   r   rj  r:   r!  ri  s             @r   test_stopProcess_NDY_in_onwaitzFSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_NDY_in_onwait  s    0.wz:4.wwG,,U3==eD##$$$$'	%MM+.	((/\2..>r   c                     ddl m} t               }| j                  |      }| j	                  |j
                  |j                  d       y )Nr   r@  rO   )rG  rA   r   r6   r(   r   rX  )r   rA   rW   r:   s       r   test_stopProcess_bad_namezASupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_bad_name  s:    ,%'MM+.	V__&22E	;r   c                    ddl m} ddlm} t	               }t        |dd      }t        |d|      }|j                  dd|j                         | j                  |      }| j                  |j                  |j                  d       y )Nr   r   r@  rO   rW  r   )ro   r   rG  rA   r   r   r	   r   EXITEDr6   r(   NOT_RUNNINGrX  )r   r   rA   rT   r   rW   r:   s          r   test_stopProcess_not_runningzDSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_not_running  so    3,.wz:.wwG  1E1EFMM+.	V//1F1FNr   c                     ddl m} t               }t        |dd      }t	        |d|      }|j                  ddd        | j                  |      }| j                  |j                  |j                  d       y )Nr   r@  rO   rW  stopc                       y)Nunstoppabler   r   r   r   r   zQSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_failed.<locals>.<lambda>      r   )
rG  rA   r   r   r	   r   r6   r(   r   rX  )r   rA   rT   r   rW   r:   s         r   test_stopProcess_failedz?SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_failed  se    ,.wz:.wwG  0EFMM+.	V]]I,A,A5Ir   c           	         t               }t        |ddd      }t        |ddd      }dd	lm} t	        |d
||      }|j                  dd|j                         |j                  dd|j                         | j                  |      }|j                  d
      }| j                  |j                  d       ddlm} |j                  }		  |       }	|	|j                  urnddlm}
 | j                  |	|
j                   d
ddd|
j                   d
dddg       |j"                  d
   j$                  d   }| j                  |j&                  d       |j"                  d
   j$                  d   }| j                  |j&                  d       y )Nr4  rW  r>   r8  r5  	/bin/foo2r6  r   r   rO   r   stopProcessGroupr+  r@  rA  rD  rC  rF  rE  T)r   r   r  r   r	   r   r  r6   r  r"   rR   r   r,  r/  rG  rA   rH  r   r   ra  r   rT   r<  r=  r   rW   r:   r!  r,  r   rA   r4  r5  s                r   test_stopProcessGroupz=SupervisorNamespaceXMLRPCInterfaceTests.test_stopProcessGroup  s|   .Z!L[1M4.wx/79  Wm6K6KL  Wm6K6KLMM+.	--e4..0BC#!!JED--- 
 	-~~ "
 ~~ "
! 
	 --e4>>zJ--t4--e4>>zJ--t4r   c           	         t               }t        |dt        d      }t        |dt        d      }t        |d||      }ddlm} |j                  dd	|j                         |j                  dd	|j                         | j                  |      }|j                  dd
      }ddl
m} | j                   |       ddd|j                  dddd|j                  dg       y )Nr4  r>   r  r5  r6  rO   r   r   r   Fr'  r@  rA  )rF  rE  rC  rD  )r   r   r   r	   r  r   r   r  r6   r  rG  rA   r"   rH  rL  s	            r   test_stopProcessGroup_nowaitzDSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcessGroup_nowait  s    .XJXJ.wx/794  Wm6K6KL  Wm6K6KLMM+.	--e%-@,J# $!>>+ $ $!>>+		r   c                     ddl m} t               }| j                  |      }| j	                  |j
                  j                  |j                  d       y rO  )r   r   r   r6   r(   rA   r   r  r   s       r   test_stopProcessGroup_badnamezESupervisorNamespaceXMLRPCInterfaceTests.test_stopProcessGroup_badname#  sA    %%'MM+.	V]]33&77	@r   c                    t               }t        |dt        dd      }t        |dt        dd      }t        |d||      }d	d
lm} |j                  dd|j                         |j                  dd|j                         | j                  |      }|j                  d       | j                  |j                  d       y )Nr4  Fr  r  r5  r6  r7  rO   r   r   r   r9  r  )r   r   r   r	   r  r   r   r  r6   rX  r"   rR   r;  s          r   -test_stopProcess_splat_calls_stopProcessGroupzUSupervisorNamespaceXMLRPCInterfaceTests.test_stopProcess_splat_calls_stopProcessGroup*  s    .X),.X*-/.w/7C4  Wm6K6KL  Wm6K6KLMM+.	g&..0BCr   c           	         t               }t        |ddd      }t        |ddd      }dd	lm} t	        |d
||      }|j                  dd|j                         |j                  dd|j                         | j                  |      }|j                         }| j                  |j                  d       ddlm} |j                  }		  |       }	|	|j                  urnddlm}
 | j                  |	|
j                   d
ddd|
j                   d
dddg       |j"                  d
   j$                  d   }| j                  |j&                  d       |j"                  d
   j$                  d   }| j                  |j&                  d       y )Nr4  rW  r>   r  r5  r  r6  r   r   rO   r   stopAllProcessesr+  r@  rA  r  T)r   r   r  r   r	   r   r  r6   r  r"   rR   r   r,  r/  rG  rA   rH  r   r   ra  r  s                r   test_stopAllProcessesz=SupervisorNamespaceXMLRPCInterfaceTests.test_stopAllProcesses9  sz   .Z!L[1M4.wx/79  Wm6K6KL  Wm6K6KLMM+.	--/..0BC#!!JED--- 
 	-~~ "
 ~~ "
! 
	 --e4>>zJ--t4--e4>>zJ--t4r   c           	         t               }t        |dt        d      }t        |dt        d      }t        |d||      }ddlm} |j                  dd	|j                         |j                  dd	|j                         | j                  |      }|j                  d
      }ddl
m} | j                   |       d|j                  dddd|j                  dddg       y )Nr4  r>   r  r5  r6  rO   r   r   r   Fr'  r@  rA  rB  )r   r   r   r	   r  r   r   r  r6   r  rG  rA   r"   rH  rL  s	            r   test_stopAllProcesses_nowaitzDSupervisorNamespaceXMLRPCInterfaceTests.test_stopAllProcesses_nowait]  s    .XJXJ.wx/794  Wm6K6KL  Wm6K6KLMM+.	--5-9,J! " ! "		r   c                    t               }t        |dd      }ddlm} t	        |d|      }|j                  dd|j                         | j                  |      }|j                  dd      }| j                  |j                  d       | j                  |d       |j                  |j                     j                  d   }| j                  |j                  d       y 	NrO   rW  r   r   r   r   signalProcessT)r   r   r  r   r	   r   r  r6   r  r"   rR   r   
group_namer   sent_signalr   rT   r   r   rW   r:   r   ps           r   %test_signalProcess_with_signal_numberzMSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_with_signal_numberw  s    .wz:4.wwG  1F1FGMM+.	((3..@&&&{'='=>HHO+r   c                    t               }t        |dd      }ddlm} t	        |d|      }|j                  dd|j                         ddlm} d} ||      }| j                  |      }|j                  d|      }	| j                  |j                  d       | j                  |	d	       |j                  |j                     j                  d   }
| j                  |
j                   |       y )
NrO   rW  r   r   r   signal_numberquitr  T)r   r   r  r   r	   r   r  supervisor.datatypesr  r6   r  r"   rR   r   r  r   r  )r   rT   r   r   rW   r  signamesignumr:   r   r  s              r   #test_signalProcess_with_signal_namezKSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_with_signal_name  s    .wz:4.wwG  1F1FG6w'MM+.	((8..@&&&{'='=>HHO/r   c                    t               }t        |dd      }ddlm} t	        |d|      }|j                  dd|j                         | j                  |      }|j                  dd      }| j                  |j                  d       | j                  |d       |j                  |j                     j                  d   }| j                  |j                  d       y r  )r   r   r  r   r	   r   rl  r6   r  r"   rR   r   r  r   r  r  s           r   test_signalProcess_stoppingzCSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_stopping  s    .wz:4.wwG  1G1GHMM+.	((3..@&&&{'='=>HHO+r   c                 $   t               }t        |dd      }ddlm} ddlm} t        |d|      }|j                  dd|j                         | j                  |      }| j                  |j                  j                  |j                  dd       y )NrO   rW  r   r   r   r      )r   r   r  r   r   r   r	   r   r  r6   r(   rA   
BAD_SIGNALr  r   rT   r   r   r   rW   r:   s          r   test_signalProcess_badsignalzDSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_badsignal  sx    .wz:4%.wwG  1F1FGMM+.	MM$$i&=&=uc	r   c                 $   t               }t        |dd      }ddlm} ddlm} t        |d|      }|j                  dd|j                         | j                  |      }| j                  |j                  j                  |j                  dd       y )NrO   rW  r   r   r   r   r   )r   r   r  r   r   r   r	   r   r  r6   r(   rA   rw  r  r  s          r   test_signalProcess_notrunningzESupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_notrunning  sx    .wz:4%.wwG  1F1FGMM+.	MM%%y'>'>r	r   c                    t               }t        |dd      }ddlm} ddlm} t        |d|      }|j                  dd|j                         d }|j                  |j                     }|j                  d   }||_        | j                  |      }	| j                  |j                  j                   |	j"                  dd       y )	NrO   rW  r   r   r   r   c                      y)Nmsgr   )sigs    r   signalreturnzgSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_signal_returns_message.<locals>.signalreturn  s    r   r   )r   r   r  r   r   r   r	   r   r  r   r  r   signalr6   r(   rA   r   r  )
r   rT   r   r   r   rW   r  pgroupprocr:   s
             r   )test_signalProcess_signal_returns_messagezQSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_signal_returns_message  s    .wz:4%.wwG  1F1FG	++K,B,BC&"MM+.	MM  )"9"95"	r   c           	         t               }t        |dd      }t        |dd      }ddlm} t	        |d||      }|j                  dd|j                         |j                  dd|j                         | j                  |      }|j                  d	d
      }| j                  |j                  d       t        |t        j                  d            }ddlm} | j                  ||j"                  dddd|j"                  ddddg       |j$                  d   j&                  d   }	| j                  |	j(                  d
       |j$                  d   j&                  d   }
| j                  |
j(                  d
       y)z Test that sending foo:* works r4  rW  r5  r  r   r   rO   r   r9  r   signalProcessGrouprF  keyr@  rA  r  N)r   r   r  r   r	   r   r  rl  r6   r  r"   rR   sortedoperator
itemgetterrG  rA   rH  r   r   r  r   rT   r<  r=  r   rW   r:   r   rA   r4  r5  s              r   test_signalProcess_withgroupzDSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcess_withgroup  sc   .Z@[A4.wx/79  Wm6K6KL  Wm6L6LMMM+.	(("5..0DE H$7$7$?@,~~ "
 ~~ "
" 
	 --e4>>zJ--r2--e4>>zJ--r2r   c           	         t               }t        |dd      }t        |dd      }ddlm} t	        |d||      }|j                  dd|j                         |j                  dd|j                         | j                  |      }|j                  dd	      }| j                  |j                  d
       t        |t        j                  d            }ddlm} | j                  ||j                   dddd|j                   ddddg       |j"                  d   j$                  d   }	| j                  |	j&                  d	       |j"                  d   j$                  d   }
| j                  |
j&                  d	       y )Nr4  rW  r5  r  r   r   rO   r   r   r  rF  r  r@  rA  r  )r   r   r  r   r	   r   r  r6   r  r"   rR   r  r  r  rG  rA   rH  r   r   r  r  s              r   *test_signalProcessGroup_with_signal_numberzRSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcessGroup_with_signal_number  sa   .Z@[A4.wx/79  Wm6K6KL  Wm6K6KLMM+.	--eR8..0DEH$7$7$?@,~~ "
 ~~ "
" 
	 --e4>>zJ--r2--e4>>zJ--r2r   c                    t               }t        |dd      }ddlm} t	        |d|      }|j                  dd|j                         ddlm} d} ||      }| j                  |      }|j                  d|      }	| j                  |j                  d	       dd
lm}
 | j                  |	|
j                  ddddg       |j                   d   j"                  d   }| j                  |j$                  |       y )Nr4  rW  r   r   rO   r   r  termr  r@  rA  r  )r   r   r  r   r	   r   r  r  r  r6   r  r"   rR   rG  rA   rH  r   r   r  r   rT   r<  r   rW   r  r  r  r:   r   rA   r4  s               r   (test_signalProcessGroup_with_signal_namezPSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcessGroup_with_signal_name  s    .Z@4.wxH  Wm6K6KL6w'MM+.	--eW=..0DE,~~ "" 	 --e4>>zJ--v6r   c                 z   ddl m} t               }t        |dd      }t        |dd      }ddlm} t        |d||      }|j                  dd	|j                         |j                  dd	|j                         | j                  |      }| j                  |j                  j                  |j                  d
d       y )Nr   r   r4  rW  r5  r  r   rO   r   barr   )r   r   r   r   r  r   r	   r   r  r6   r(   rA   r   r  )r   r   rT   r<  r=  r   rW   r:   s           r   #test_signalProcessGroup_nosuchgroupzKSupervisorNamespaceXMLRPCInterfaceTests.test_signalProcessGroup_nosuchgroup0  s    %.Z@[A4.wx/79  Wm6K6KL  Wm6K6KLMM+.	V]]33((%	r   c           	         t               }t        |dd      }t        |dd      }ddlm} t	        |d||      }|j                  dd|j                         |j                  dd|j                         | j                  |      }|j                  d	      }| j                  |j                  d
       t        |t        j                  d            }ddlm} | j                  ||j                   dddd|j                   ddddg       |j"                  d   j$                  d   }	| j                  |	j&                  d	       |j"                  d   j$                  d   }
| j                  |
j&                  d	       y )Nr4  rW  r5  r  r   r   rO   r   r   signalAllProcessesrF  r  r@  rA  r  )r   r   r  r   r	   r   r  r6   r  r"   rR   r  r  r  rG  rA   rH  r   r   r  r  s              r   *test_signalAllProcesses_with_signal_numberzRSupervisorNamespaceXMLRPCInterfaceTests.test_signalAllProcesses_with_signal_number?  sa   .Z@[A4.wx/79  Wm6K6KL  Wm6K6KLMM+.	--b1..0DE H$7$7$?@,~~ "
 ~~ "
" 
	 --e4>>zJ--r2--e4>>zJ--r2r   c                    t               }t        |dd      }ddlm} t	        |d|      }|j                  dd|j                         ddlm} d} ||      }| j                  |      }|j                  |      }	| j                  |j                  d	       dd
lm}
 | j                  |	|
j                  ddddg       |j                   d   j"                  d   }| j                  |j$                  |       y )Nr4  rW  r   r   rO   r   r  hupr  r@  rA  r  )r   r   r  r   r	   r   r  r  r  r6   r  r"   rR   rG  rA   rH  r   r   r  r  s               r   (test_signalAllProcesses_with_signal_namezPSupervisorNamespaceXMLRPCInterfaceTests.test_signalAllProcesses_with_signal_name`  s    .Z@4.wxH  Wm6K6KL6w'MM+.	--g6..0DE,~~ "" 	 --e4>>zJ--v6r   c                 
   t               }t        |d      }t        |dt        t        t              }t        |dt        d d       }t        |d||g      }dt        |      i|_        |g|j                  _	        | j                  |      }|j                         }| j                  |d   d   d	       | j                  |d   d
   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d   d       | j                  |d   d    d!       | j                  |d   d"   d       | j                  |d   d#   d       | j                  |d   d   d       | j                  |d   d$   d	       | j                  |d   d%   d       | j                  |d   d&   d       d'|d   d(   v sJ | j                  |d)   d   d	       | j                  |d)   d
   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d       | j                  |d)   d   d*       | j                  |d)   d    d!       | j                  |d)   d"   d       | j                  |d)   d#   d       | j                  |d)   d   d       | j                  |d)   d$   d	       | j                  |d)   d%   d*       | j                  |d)   d&   d       d'|d   d(   v sJ y )+NrO   r4  )stdout_logfilestderr_logfiler5  r   r   r   r   Tstopwaitsecsr   stdout_events_enabledFstderr_events_enabledrC  stdout_capture_maxbytesrF  
stopsignal   stderr_syslogstdout_logfile_maxbytes
group_prioi  killasgroupprocess_priostdout_syslogstderr_logfile_maxbytesr  redirect_stderrr  auto	exitcodes)r   stderr_capture_maxbytesstartretriesinuser  stdout_logfile_backupsztest_rpcinterfaces.pycommandr>   none)r   r   r   r   r   r   r   r   rT   r   r6   getAllConfigInfor"   )r   rT   rW   r<  r=  r   r:   configss           r   test_getAllConfigInfoz=SupervisorNamespaceXMLRPCInterfaceTests.test_getAllConfigInfoy  s   .%gu5X/8/8"  X/3/3" $GX8@TU&.0A'0J%K"5<I1MM+.	,,.K0$7N3R8$;<eD$;<eDG,h7$=>BF+Z8L126O4e<$=>BL137M2E:N3S9O4e<$=>BK0"5$56>$45v>K0$7$=>BN3S9$=>BG,d3$45v>$<=qA&'!*Y*????K0$7N3R8$;<eD$;<eDG,h7$=>BF+Z8L126O4e<$=>BL137M2E:N3S9O4e<$=>BK0"5$56>$45v>K0$7$=>BN3S9$=>BG,d3$45v>$<=qA&'!*Y*????r   c           	         t               }t        |d      }t        |dt              }t        |dt              }t	        |d||g      }dt        |      i|_        |g|j                  _        | j                  |      }t        d       g}	 ddlm} |j                  |       |D ]K  }	|j                         D ]6  }
|
j!                         D ]!  \  }}| j#                  t%        ||	      |       # 8 M y # t        $ r Y \w xY w)NrO   r4  r5  r   r   r   )Enum)r   r   r   r   r   r   r   rT   r   r6   typeenumr  appendImportErrorr  itemsr[  
isinstance)r   rT   rW   r<  r=  r   r:   unmarshallablesr  typconfigkvs                r   >test_getAllConfigInfo_filters_types_not_compatible_with_xmlrpczfSupervisorNamespaceXMLRPCInterfaceTests.test_getAllConfigInfo_filters_types_not_compatible_with_xmlrpc  s   .%gu5X>X>#GX8@TU&.0A'0J%K"5<I1MM+.	:,	!""4( # 	<C#446 <"LLN <DAq$$Z3%7;<<	<  		s   C3 3	C?>C?c                    t               }| j                  |      }t        dz
  }t        dz
  }ddlm} dd|j
                  ||t        d}|j                  |      }| j                  |d       dd	|j                  ||t        d
d}|j                  |      }| j                  |d
       dd	|j                  ||t        dd}	|j                  |	      }| j                  |d       dd|j                  ||t        dd}
|j                  |
      }ddl
m
}  |t        j                  |      d d  }| j                  ||j                  t                     dd|j                  d|t        dd}|j                  |      }| j                  |d       y )Nr.  r>   r   r   runningrF  r   r   startrz  nowzpid 1, uptime 0:01:40fatalr6  Hosed)rF  r   r   r  rz  r  r   z unknown error (try "tail fatal")stopped   datetime   zNot started)r   r6   r
   r  r   r  _interpretProcessInfor"   FATALr  r   time	localtimestrftimer   )r   rW   r:   r  rz  r   r  rE  r  fatal2r  r   stoptimestopped2s                 r   test__interpretProcessInfozBSupervisorNamespaceXMLRPCInterfaceTests.test__interpretProcessInfo  s   %'MM+.	c	a4#(00   55g>&=>&,,#%  55e<g. '--"  55f=&HI#(00  #  55g>%T^^D1"156h&7&7&DE$(00 #  55h?m4r   c                     t               }| j                  |      }ddlm} dd|j                  t
        dz   d t
        d}|j                  |      }| j                  |d       y )Nr   r   r  *   r   r  zpid 42, uptime 0:00:00)r   r6   r  r   r  r
   r  r"   )r   rW   r:   r   r  rE  s         r   8test__interpretProcessInfo_doesnt_report_negative_uptimez`SupervisorNamespaceXMLRPCInterfaceTests.test__interpretProcessInfo_doesnt_report_negative_uptime  sa    %'MM+.	4$)11 2I   55g>&>?r   c                    ddl m} t               }t        |ddd      }t	        |      }d|_        d|_        d	|_        t        |d
      }t        |      }d|i|_
        t        d|i      }| j                  |      }|j                  d      }	| j                  |j                  d       | j                  |	d   d       | j                  |	d   d       | j                  |	d   d       | j                  |	d   d       | j                  |	d   d       | j                  |	d   d       | j                  |	d   d	       | j                  |	d   |j                          | j                  |	d   d       | j                  |	d   d       | j                  |	d   d       | j#                  |	d   j%                  d             y )Nr   r   rO   rW  z/tmp/fleeb.barr  o   r      rF  r   getProcessInfor   r  r  r  rF  r   r  rz  r   rm   r  
exitstatusr  rE  pid 111)r  r   r   r   r   r   	laststartlaststopr   r   r   r   r6   r  r"   rR   r  r   
startswith)
r   r   rT   r  r   pgroup_configr  rW   r:   r   s
             r   test_getProcessInfoz;SupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo$  s   4.guj-=?v&)'>"=1!'?%eF^DMM+.	''...0@Ai*:;./1AB./4fu-ec*g+fr*g(=(=>k*I6l+Q/j)2.]+66yABr   c                 l   t               }t        |ddd       }t        |      }d|_        d|_        d|_        t        |d      }t        |      }d|i|_        t        d|i      }| j                  |      }|j                  d      }| j                  |d	   d
       | j                  |d   d
       y )NrO   rW  r  r  r   r  r  r  r   r  r  )r   r   r   r   r  r  r   r   r   r   r6   r  r"   )	r   rT   r  r   r  r  rW   r:   r   s	            r    test_getProcessInfo_logfile_NONEzHSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_logfile_NONEC  s    .guj-13v&)'>"=1!'?%eF^DMM+.	''.i"-./4r   c                 *   ddl m} t               }t        |dd      }t	        |d|      }|j                  dd|j                         | j                  |      }|j                  d      }| j                  |d   d       | j                  |d   d	       y )
Nr   r   rO   rW  r   rm   r   rE  r  )
ro   r   r   r   r	   r   r   r6   r  r"   )r   r   rT   r   rW   r:   r   s          r   !test_getProcessInfo_unknown_statezISupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_unknown_stateT  s    3.wz:.wwG  1F1FGMM+.	''.k*I6m,b1r   c                     ddl m} t               }| j                  |      }| j	                  |j
                  j                  |j                  d       y )Nr   r   nonexistent)r   r   r   r6   r(   rA   r   r  r   s       r   -test_getProcessInfo_bad_name_when_bad_processzUSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_bad_name_when_bad_process_  sA    %%'MM+.	V]]33&55}	Fr   c                     ddl m} t               }t        |dd      }t	        |d|      }| j                  |      }| j                  |j                  j                  |j                  d       y )Nr   r   rO   rW  zfoo:)
r   r   r   r   r	   r6   r(   rA   r   r  r   s         r   ,test_getProcessInfo_bad_name_when_no_processzTSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_bad_name_when_no_processf  s[    %.wz:.wwGMM+.	V]]33&55v	?r   c                 >  	 ddl m	 t               }t        |ddd       }t	        |      }t        	j                  dz         |_        t        	j                  dz         |_        t        |d      }t        |      }d|i|_        t        d|i      }| j                  |      }	fd	|_        |j                  d      }| j!                  |d
   	j                         | j!                  |d   	j                         | j!                  |d   	j                         y )Nr   	xmlrpclibrO   rW  r  r>   r  r  c                  4    t         j                  dz         S Nr>   )floatMAXINTr&  s   r   r   zuSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_caps_timestamps_exceeding_xmlrpc_maxint.<locals>.<lambda>|  s    y'7'7!';!< r   r  rz  r  )supervisor.compatr'  r   r   r   r*  r+  r  r  r   r   r   r   r6   _nowr  r"   )
r   rT   r  r   r  r  rW   r:   r   r'  s
            @r   ;test_getProcessInfo_caps_timestamps_exceeding_xmlrpc_maxintzcSupervisorNamespaceXMLRPCInterfaceTests.test_getProcessInfo_caps_timestamps_exceeding_xmlrpc_maxinto  s    /.guj-13v&!)"2"2Q"67 !1!1A!56)'>"=1!'?%eF^DMM+.	<	''.g	(8(89fy'7'78ei&6&67r   c                    ddl m} t               }t        |dddd      }t        |dd	d
d      }t	        |d||      }|j                  ddd       |j                  ddd       |j                  ddd       |j                  dd|j                         |j                  ddd       |j                  ddd       |j                  ddd       |j                  dd|j                         | j                  |      }|j                         }| j                  |j                  d       | j                  t        |      d
       |d   }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   |j                         | j                  |d   d       | j                  |d   d       | j                  |d    d       | j                  |d!   d       | j                  |d"   j                  d#             |d   }	|j                  d   j                   d   }
| j                  |	d   d       | j                  |	d   d       | j                  |d   d       | j                  |	d   d       | j                  |	d   d       | j                  |	d   |
j"                         | j                  |	d   d       | j                  |	d   |j                         | j                  |	d   d$       | j                  |	d   d       | j                  |	d    d       | j                  |d!   d       dd%lm}  |t'        j(                  |
j"                        d d&  }| j                  |	d"   |j+                  t,                     y )'Nr   r   r4  /bin/process1r>   /tmp/process1.logr8  r  r5  z/bin/process2r6  z/tmp/process2.loggnamer   r  r  r   r  r  r      r  r   r  r  r  rF  r  rz  rm   r  r  r  rC  rE  r  r  r  r  )r  r   r   r   r	   r   r  r  r6   getAllProcessInfor"   rR   r^  r   r  r   r   r  r   r  r  r  r   )r   r   rT   p1configp2configrW   r:   infop1infop2infor5  r   	starttimes                r   test_getAllProcessInfoz>SupervisorNamespaceXMLRPCInterfaceTests.test_getAllProcessInfo  s   4._)*/BD  _)*/BD /w/79  UC8  ["=  Z<  Wm6K6KL  UA6  ["=  Z<  Wm6K6KLMM+.	**,..0@ATA&a	*,?@ 013FG 01264,"-,-*?*?@,i8-q1
+R0'2}-88CDa--g6@@L	*,?@ 013FG 01264*(*<*<=,-*?*?@,i8-q1
+R0'2%dnnX-?-?@!DE	.%..{;	=r   c                     ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }| j                  |j                  j                  |j                  ddd       y )	Nr   r   r4  r0  r>   r1  r2  r{   )
r   r   r   r   r	   r6   r(   rA   r~   readProcessStdoutLogr   s         r   $test_readProcessStdoutLog_unreadablezLSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLog_unreadable  m    %.w
Oa.AC.w
GLMM+.	V]]22&;;'! 	 	=r   c                 x   ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  d	       d d d        | j                  |j                  j                  |j                  dd
d       | j                  |j                  j                  |j                  dd
d
       t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   r   r4  r0  r>   r1  r2  r   r   r   r{   )r   r   r   r   r	   r6   r   r   r  r  r   r   r(   rA   r   r>  r   r   	r   r   rT   r   rW   r:   r   r   r   s	            r   !test_readProcessStdoutLog_badargszISupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLog_badargs     %.w
Oa-@B.w
GLMM+.	,,Z8BB:N..//
	gt$ $
#$  !<!<!*!?!?!+Bq ! B   !<!<!*!?!?(*2 ! 7 IIg$ $ IIg%   2D" >DA0D" DD" "D9c                     ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }| j                  |j                  j                  |j                  d	dd
       y Nr   r   r4  r0  r>   r1  r2  rO   r9  r{   )
r   r   r   r   r	   r6   r(   rA   r   r>  r   s         r   -test_readProcessStdoutLog_bad_name_no_processzUSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLog_bad_name_no_process  m    %.w
Oa.AC.wwGMM+.	V]]33&;;$Qq 	 	:r   c                 $   t               }t        |ddd      }t        |d|      }| j                  |      }|j                  d   j
                  d   }|j                  j                  }	 t        |d      5 }|j                  d       |j                  d       d d d        |j                  ddd	      }| j                  |j                  d
       | j                  |d       |j                  ddd	      }| j                  |d       |j                  ddd	      }| j                  |d       |j                  ddd	      }| j                  |d       t        j                  |       y # 1 sw Y   xY w# t        j                  |       w xY w)NrO   rW  /tmp/fooooooor  r   r   r   r   r{   r>  r   r   r   r   )r   r   r	   r6   r   r   r  r  r   r   r>  r"   rR   r   r   	r   rT   r   rW   r:   r   r   r   r   s	            r   test_readProcessStdoutLogzASupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStdoutLog  q   .wz-<>.wwGMM+.	,,U3==eD..//	gt$ $
#
#$ 11%!1LDY224JKT#>?11%Q1ODT:.11%$1ODT:.11%11MDT7+IIg$ $ IIg%   +E8 7#E,B<E8 ,E51E8 8Fc                     t               }t        |dd      }t        |d|      }| j                  |      }| j	                  |j
                  |j                         y NrO   rW  )r   r   r	   r6   r"   readProcessLogr>  r   rT   r   rW   r:   s        r   1test_readProcessLogAliasedTo_readProcessStdoutLogzYSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessLogAliasedTo_readProcessStdoutLog  R    .wz:.wwGMM+.	11"77	9r   c                     ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }| j                  |j                  j                  |j                  ddd       y )	Nr   r   r4  r0  r>   r1  r8  r  r{   )
r   r   r   r   r	   r6   r(   rA   r~   readProcessStderrLogr   s         r   $test_readProcessStderrLog_unreadablezLSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLog_unreadable  r@  r   c                 x   ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  d	       d d d        | j                  |j                  j                  |j                  dd
d       | j                  |j                  j                  |j                  dd
d
       t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   r   r4  r0  r>   r1  rW  r   r   r   r{   )r   r   r   r   r	   r6   r   r   r  r  r   r   r(   rA   r   rX  r   r   rB  s	            r   !test_readProcessStderrLog_badargszISupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLog_badargs  rD  rE  c                     ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }| j                  |j                  j                  |j                  d	dd
       y rG  )
r   r   r   r   r	   r6   r(   rA   r   rX  r   s         r   -test_readProcessStderrLog_bad_name_no_processzUSupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLog_bad_name_no_process1  rI  r   c                 $   t               }t        |ddd      }t        |d|      }| j                  |      }|j                  d   j
                  d   }|j                  j                  }	 t        |d      5 }|j                  d       |j                  d       d d d        |j                  ddd	      }| j                  |j                  d
       | j                  |d       |j                  ddd	      }| j                  |d       |j                  ddd	      }| j                  |d       |j                  ddd	      }| j                  |d       t        j                  |       y # 1 sw Y   xY w# t        j                  |       w xY w)NrO   rW  rK  r  r   r   r   r   r{   rX  r   r   r   r   )r   r   r	   r6   r   r   r  r  r   r   rX  r"   rR   r   r   rL  s	            r   test_readProcessStderrLogzASupervisorNamespaceXMLRPCInterfaceTests.test_readProcessStderrLog<  rN  rO  c                     ddl m} t               }| j                  |      }| j	                  |j
                  j                  |j                  ddd       y Nr   r   r   r   )r   r   r   r6   r(   rA   r   tailProcessStdoutLogr   s       r   "test_tailProcessStdoutLog_bad_namezJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_bad_nameT  E    %%'MM+.	V]]33&;;ZB	Pr   c                     ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }| j                  |j                  j                  |j                  d	dd
       y Nr   r   r4  r0  r>   r1  r2  rO   r9  r   )
r   r   r   r   r	   r6   r(   rA   r   rc  r   s         r   -test_tailProcessStdoutLog_bad_name_no_processzUSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_bad_name_no_process[  h    %.w
Oa.AC.wwGMM+.	V]]33&;;Wa	Mr   c                    ddl m} t               }t        |ddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  |       d d d        |j                  ddt        |            \  }	}
}| j                  |j                  d	       | j                  |d
       | j                  |
t        |             | j                  |	|       t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   lettersrO   rW  rK  r  r   r{   rc  Fr,  rl  r   r   r	   r6   r   r   r  r  r   r   rc  r^  r"   rR   r   r   r   rl  rT   r   rW   r:   r   r   r   r   r|   overflows               r   test_tailProcessStdoutLog_allzESupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_alle  +   -.wz.=?.wwGMM+.	,,U3==eD..//	gt$ ! ! &/%C%CE?@?B7| &D &M"D&( Y224JKXu-VS\2T7+IIg! ! IIg%   1D5 =D)BD5 )D2.D5 5Ec                    ddl m} t               }t        |ddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  |       d d d        |j                  dt        |      d	      \  }	}
}| j                  |j                  d
       | j                  |d       | j                  |
t        |             | j                  |	d       |j                  dt        |      dz   d	      \  }	}
}| j                  |j                  d
       | j                  |d       | j                  |
t        |             | j                  |	d       t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   rk  rO   rW  rK  r  r   r.  r{   rc  Fr     rm  rn  s               r   test_tailProcessStdoutLog_nonezFSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_none}     -.wz.=?.wwGMM+.	,,U3==eD..//	gt$ ! ! &/%C%CE?B7|?B &D &D"D&( Y224JKXu-VS\2T2& &/%C%CE?B7|A~?B &D &D"D&( Y224JKXu-VS\2T2&IIg+! !* IIg%   1F5 =F(DF5 (F2-F5 5Gc                    ddl m} t               }t        |ddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  |       d d d        |j                  ddd	      \  }	}
}| j                  |j                  d
       | j                  |d       | j                  |
t        |             | j                  |	|dd         t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   rk  rO   rW  rK  r  r   rt  r{   rc  T)r,  rl  r   r   r	   r6   r   r   r  r  r   r   rc  r"   rR   r^  r   r   rn  s               r   "test_tailProcessStdoutLog_overflowzJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_overflow  *   -.wz-<>.wwGMM+.	,,U3==eD..//	gt$ ! ! &/%C%CE?@ &D &L"D&(Y224JKXt,VS\2T723<0IIg! ! IIg%   1D/ =D#A>D/ #D,(D/ /Ec                 F   t               }t        |ddd      }t        |d|      }| j                  |      }|j	                  ddd      \  }}}| j                  |j                  d       | j                  |d	       | j                  |d       | j                  |d
       y )NrO   rW  rK  r  r   r.  r{   rc  Fr  )r   r   r	   r6   rc  r"   rR   r   rT   r   rW   r:   r   r|   ro  s           r   $test_tailProcessStdoutLog_unreadablezLSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStdoutLog_unreadable      .wz.=?.wwGMM+.	!*!?!?;<S "@ "Jfh..0FG5)#r"r   c                     t               }t        |dd      }t        |d|      }| j                  |      }| j	                  |j
                  |j                         y rQ  )r   r   r	   r6   r"   tailProcessLogrc  rS  s        r   1test_tailProcessLogAliasedTo_tailProcessStdoutLogzYSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessLogAliasedTo_tailProcessStdoutLog  rU  r   c                     ddl m} t               }| j                  |      }| j	                  |j
                  j                  |j                  ddd       y rb  )r   r   r   r6   r(   rA   r   tailProcessStderrLogr   s       r   "test_tailProcessStderrLog_bad_namezJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_bad_name  re  r   c                     ddl m} t               }t        |dddd      }t	        |d|      }| j                  |      }| j                  |j                  j                  |j                  d	dd
       y rg  )
r   r   r   r   r	   r6   r(   rA   r   r  r   s         r   -test_tailProcessStderrLog_bad_name_no_processzUSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_bad_name_no_process  ri  r   c                    ddl m} t               }t        |ddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  |       d d d        |j                  ddt        |            \  }	}
}| j                  |j                  d	       | j                  |d
       | j                  |
t        |             | j                  |	|       t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   rk  rO   rW  rK  r_  r   r{   r  Fr,  rl  r   r   r	   r6   r   r   r  r  r   r   r  r^  r"   rR   r   r   rn  s               r   test_tailProcessStderrLog_allzESupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_all  rq  rr  c                    ddl m} t               }t        |ddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  |       d d d        |j                  dt        |      d	      \  }	}
}| j                  |j                  d
       | j                  |d       | j                  |
t        |             | j                  |	d       |j                  dt        |      dz   d	      \  }	}
}| j                  |j                  d
       | j                  |d       | j                  |
t        |             | j                  |	d       t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   rk  rO   rW  rK  r_  r   r.  r{   r  Fr  rt  r  rn  s               r   test_tailProcessStderrLog_nonezFSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_none  rv  rw  c                    ddl m} t               }t        |ddd      }t	        |d|      }| j                  |      }|j                  d   j                  d   }|j                  j                  }	 t        |d      5 }|j                  |       d d d        |j                  ddd	      \  }	}
}| j                  |j                  d
       | j                  |d       | j                  |
t        |             | j                  |	|dd         t!        j"                  |       y # 1 sw Y   xY w# t!        j"                  |       w xY w)Nr   rk  rO   rW  rK  r_  r   rt  r{   r  Try  )r,  rl  r   r   r	   r6   r   r   r  r  r   r   r  r"   rR   r^  r   r   rn  s               r   "test_tailProcessStderrLog_overflowzJSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_overflow  r{  r|  c                 F   t               }t        |ddd      }t        |d|      }| j                  |      }|j	                  ddd      \  }}}| j                  |j                  d       | j                  |d	       | j                  |d       | j                  |d
       y )NrO   rW  rK  r_  r   r.  r{   r  Fr  )r   r   r	   r6   r  r"   rR   r~  s           r   $test_tailProcessStderrLog_unreadablezLSupervisorNamespaceXMLRPCInterfaceTests.test_tailProcessStderrLog_unreadable/  r  r   c                    ddl m} t               }t        |dd      }t	        |      }t        d       }d|i|_        t        d|i      }| j                  |      }| j                  |j                  j                  |j                  d       y )Nr   r   rO   r  badgroupr   r   r   r   r   r   r   r   r6   r(   rA   r   clearProcessLogsr   r   rT   r   r   r  rW   r:   s           r   'test_clearProcessLogs_bad_name_no_groupzOSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogs_bad_name_no_group>  s}    %.wu5w'"4(!7+%eF^DMM+.	V]]33&77'	)r   c                    ddl m} t               }t        |dd      }t	        |      }t        d       }d|i|_        t        d|i      }| j                  |      }| j                  |j                  j                  |j                  d       y )Nr   r   rO   r  r9  r  r  s           r   )test_clearProcessLogs_bad_name_no_processzQSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogs_bad_name_no_processK  s}    %.wu5w'"4(!7+%eF^DMM+.	V]]33&77$	&r   c                    t               }t        |dd      }t        |      }t        d       }d|i|_        t        d|i      }| j                  |      }|j                  d       | j                  |j                  d       y )NrO   r  T)
r   r   r   r   r   r   r6   r  r"   logsremoved)r   rT   r   r   r  rW   r:   s          r   test_clearProcessLogsz=SupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogsX  sx    .wu5w'"4(!7+%eF^DMM+.	""5),,d3r   c                    ddl m} t               }t        |dd      }t	        |      }t        d       }d|i|_        d|_        t        d|i      }| j                  |      }| j                  |j                  |j                  d       y )Nr   r   rO   Tr  )r   r   r   r   r   r   r   error_at_clearr   r6   r   r!   r  r  s           r   test_clearProcessLogs_failedzDSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogs_failedc  s{    %.wu5w'"4(!7+!%%eF^DMM+.	&//9+E+EuMr   c                     t               }t        |dd      }t        |d|      }| j                  |      }| j	                  |j
                  |j                         y rQ  )r   r   r	   r6   r"   clearProcessLogr  rS  s        r   .test_clearProcessLogAliasedTo_clearProcessLogszVSupervisorNamespaceXMLRPCInterfaceTests.test_clearProcessLogAliasedTo_clearProcessLogso  sR    .wz:.wwGMM+.	22"33	5r   c                 r   t               }t        |ddd      }t        |ddd      }t        |d||      }| j                  |      }|j	                         } |         |       }dd	lm} | j                  |d   dd|j                  j                  d
d       | j                  |d   dd|j                  j                  d
d       |j                  d   j                  d   }	| j                  |	j                  d       |j                  d   j                  d   }
| j                  |
j                  d       y )Nr4  rO   r>   r  r5  r  r6  r   r   rA  rF  rC  rD  rE  T)r   r   r	   r6   clearAllProcessLogsr   r   r"   rA   rH  r   r   r  )r   rT   r<  r=  rW   r:   r!  resultsr   r4  r5  s              r   test_clearAllProcessLogsz@SupervisorNamespaceXMLRPCInterfaceTests.test_clearAllProcessLogsw  s+   .UQGUQG.wx/79MM+.	002
*%!+"'#)==#8#8(,.	/
 	!+"'#)==#8#8(,.	/
 --e4>>zJ--t4--e4>>zJ--t4r   c                    t               }t        |ddd      }t        |ddd      }t        |d||      }|j                  ddd	       | j	                  |      }|j                         } |         |       }|j                  d   j                  d   }| j                  |j                  d
       |j                  d   j                  d   }	| j                  |	j                  d	       | j                  t        |      d       ddlm}
 | j                  |d   dd|
j                  j                  dd       | j                  |d   dd|
j                  j                  dd       y )Nr4  rO   r>   r  r5  r  r6  r  TFr   r   zFAILED: foo:process1r  rA  )r   r   r	   r   r6   r  r   r   r"   r  r^  r   r   rA   r   rH  )r   rT   r<  r=  rW   r:   r!  r  r4  r5  r   s              r   !test_clearAllProcessLogs_onefailszISupervisorNamespaceXMLRPCInterfaceTests.test_clearAllProcessLogs_onefails  sR   .UQGUQG.wx/79  -=tDMM+.	002
*--e4>>zJ--u5--e4>>zJ--t4Wq)%!+"'#)==#7#7(>@	A
 	!+"'#)==#8#8(,.	/r   c                     t               }| j                  |j                  i        | j                  |      }|j	                         } |       }| j                  |g        y r   )r   r"   r   r6   r  )r   rW   r:   r!  r  s        r   %test_clearAllProcessLogs_no_processeszMSupervisorNamespaceXMLRPCInterfaceTests.test_clearAllProcessLogs_no_processes  sS    %'33R8MM+.	002*"%r   c                     t               }t        |dd      }t        |d|      }| j                  |      }d}ddlm} | j                  |j                  j                  |j                  d|       y )Nr4  rO   r  r   r   )
r   r   r	   r6   r   r   r(   rA   rD   sendProcessStdin)r   rT   r<  rW   r:   thing_not_charsr   s          r   <test_sendProcessStdin_raises_incorrect_params_when_not_charszdSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_incorrect_params_when_not_chars  sc    .U;.wxHmmK0	%V]]??&77'	:r   c                     t               }| j                  |      }ddlm} | j	                  |j
                  j                  |j                  dd       y )Nr   r   r!  chars for stdin)r   r6   r   r   r(   rA   r   r  )r   rW   r:   r   s       r   6test_sendProcessStdin_raises_bad_name_when_bad_processz^SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_bad_name_when_bad_process  sD    %'MM+.	%V]]33&77*,=	?r   c                     t               }t        |d      }| j                  |      }ddlm} | j                  |j                  j                  |j                  dd       y )NrO   r   r   r9  r  )	r   r	   r6   r   r   r(   rA   r   r  )r   rT   rW   r:   r   s        r   5test_sendProcessStdin_raises_bad_name_when_no_processz]SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_bad_name_when_no_process  sO    ..w>MM+.	%V]]33&77$&7	9r   c                    t               }t        |dd      }t        |d|      }|j                  ddd       | j	                  |      }ddlm} | j                  |j                  j                  |j                  dd       y )Nr4  rO   r   r   r   r  r   r   r	   r   r6   r   r   r(   rA   rw  r  r   rT   r<  rW   r:   r   s         r   =test_sendProcessStdin_raises_not_running_when_not_process_pidzeSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_not_running_when_not_process_pid  sq    .U;.w
HM  UA6MM+.	%V]]66%66&(9	;r   c                 *   t               }t        |dd      }t        |d|      }|j                  ddd       |j                  ddd       | j	                  |      }ddlm} | j                  |j                  j                  |j                  dd	       y )
Nr4  rO   r   r  r\  Tr   r   r  r  r  s         r   5test_sendProcessStdin_raises_not_running_when_killingz]SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_not_running_when_killing  s    .U;.w
HM  UB7  Y=mmK0	%V]]66&77'):	<r   c           
         t               }t        |dd      }t        |d|      }|j                  ddd       |j                  ddd       |j                  ddt	        t
        j                  t        j                  t
        j                                     | j                  |      }dd	l
m} | j                  |j                  j                  |j                  dd
       y )Nr4  rO   r   r  r\  Fwrite_exceptionr   r   r  )r   r   r	   r   r   r   EPIPEr   r   r6   r   r   r(   rA   r~   r  r  s         r   <test_sendProcessStdin_raises_no_file_when_write_raises_epipezdSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_raises_no_file_when_write_raises_epipe  s    .U;.w
HM  UB7  Y>  ->EKKU[[!9:	<mmK0	%V]]22&77'):	<r   c           
         t               }t        |dd      }t        |d|      }|j                  ddd       |j                  ddd       |j                  ddt	        t
        j                  t        j                  t
        j                                     | j                  |      }| j                  t        |j                  dd       y )	Nr4  rO   r   r  r\  Fr  r  )r   r   r	   r   r   r   EINTRr   r   r6   r   r  )r   rT   r<  rW   r:   s        r   -test_sendProcessStdin_reraises_other_oserrorszUSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_reraises_other_oserrors  s    .U;.w
HM  UB7  Y>  ->EKKU[[!9:	<mmK0	'#44$&7	9r   c                    t               }t        |dd      }t        |d|      }|j                  ddd       | j	                  |      }d}| j                  |j                  d|             | j                  d|j                         |j                  d   j                  d   }| j                  |j                  |       y )Nr4  rO   r   r  s   chars for stdinr  )r   r   r	   r   r6   r   r  r"   rR   r   r   stdin_buffer)r   rT   r<  rW   r:   charsr4  s          r   3test_sendProcessStdin_writes_chars_and_returns_truez[SupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_writes_chars_and_returns_true  s    .U;.w
HM  UB7mmK0	"	22:uEF+Y-B-BC--j9CCJO..6r   c                 :   t               }t        |dd      }t        |d|      }|j                  ddd       | j	                  |      }|j                  dt        d             |j                  d   j                  d   }| j                  |j                  d       y )Nr4  rO   r   r  s   fií)r   r   r	   r   r6   r  r   r   r   r"   r  )r   rT   r<  rW   r:   r4  s         r   -test_sendProcessStdin_unicode_encoded_to_utf8zUSupervisorNamespaceXMLRPCInterfaceTests.test_sendProcessStdin_unicode_encoded_to_utf8  s    .U;.w
HM  UB7mmK0	"":y/GH--j9CCJO..>r   c                 "   t               }t        |      }| j                  |      }ddlm} g fd}	 |j
                  |fg|j                  d d  |j                  dd      }g |j                  d d  |j                          | j                  |       | j                  t              d       d   }| j                  |j                  d       | j                  |j                  d       y # g |j                  d d  |j                          w xY w)Nr   eventsc                 (    j                  |        y r   r  eventri  s    r   r!  zgSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_notifies_subscribers.<locals>.callback       HHUOr   rO   r  r>   )r   r   r6   r   r  RemoteCommunicationEvent	callbackssendRemoteCommEventclearr   r"   r^  r  r   	r   rT   rW   r:   r  r!  r   r  ri  s	           @r   -test_sendRemoteCommEvent_notifies_subscriberszUSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_notifies_subscribers  s    .%g.MM+.	%		$*$C$CX#N"OFQ225%@F"$FQLLNQ#!U+U+ #%FQLLNs   .C- -!Dc                    t               }t        |      }| j                  |      }ddlm} g fd}	 |j
                  |fg|j                  d d  |j                  t        d      t        d            }g |j                  d d  |j                          | j                  |       | j                  t              d       d   }t        r9| j                  |j                  d       | j                  |j                  d       y | j                  |j                  d       | j                  |j                  d       y # g |j                  d d  |j                          w xY w)	Nr   r  c                 (    j                  |        y r   r  r  s    r   r!  zjSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_unicode_encoded_to_utf8.<locals>.callback7  r  r   u	   fií onceu
   fií twicer>   u   fiÃ­ onceu   fiÃ­ twice)r   r   r6   r   r  r  r  r  r   r  r   r"   r^  r   r  r   r  s	           @r   0test_sendRemoteCommEvent_unicode_encoded_to_utf8zXSupervisorNamespaceXMLRPCInterfaceTests.test_sendRemoteCommEvent_unicode_encoded_to_utf80  s(   .%g.MM+.	%		$*$C$CX#N"OFQ22+&,'F
 #%FQLLNQ#!UZZ):;UZZ);<UZZ5UZZ6 #%FQLLNs   A D> >!EN){r)   r*   r+   r2   r6   rX   r]   ra   re   ri   rq   ru   ry   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)  r2  r>  rI  rM  rP  rS  rU  r_  rb  rm  rr  rt  rx  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?  rC  rH  rM  rT  rY  r[  r]  r`  rd  rh  rp  ru  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   rG   rG   B   s   <3	$AH
HE	<:C
1 (H	<
576IPN.FCE
1 CC
<
<
< 'B&+ @K,E 1D8A"1H8?&?$"?$;OJ"5H6@D"5H4,0&,

$ 3F3@743B72F@P<0<5|@C>5"	2F?8&@=D	=,	:09	=,	:0PM0 D.#9PM0 D.#)&	4
N554/8&	:?9	;
<<9
7?,.7r   rG   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)#SystemNamespaceXMLRPCInterfaceTestsc                 &    ddl m} |j                  S r/   )r   r   SystemNamespaceRPCInterfacer1   s     r   r2   z3SystemNamespaceXMLRPCInterfaceTests._getTargetClassP  s    %111r   c                 v    ddl m} t               }|j                  |      } | j	                         d|fg      S )Nr   rI   r   )r   rJ   r   rK   r2   )r   rJ   rW   r   s       r   r6   z,SystemNamespaceXMLRPCInterfaceTests._makeOneT  sB    +%'!AA+N
%t##%J'  	r   c                     | j                         }| j                  |j                  d          | j                  |j                  d          y )Nr   system)r6   r   
namespacesr9   s     r   r;   z-SystemNamespaceXMLRPCInterfaceTests.test_ctor]  s;    MMO		,,\:;	,,X67r   c                     | j                         }|j                         }|j                          t        |j	                         j                               }|j                          | j                  ||       y r   )r6   listMethodssortr   _listMethodsr   r"   )r   r:   methodsr   s       r   test_listMethodsz4SystemNamespaceXMLRPCInterfaceTests.test_listMethodsb  sY    MMO	'')I**,1134		$'r   c                     ddl m} | j                         }| j                  |j                  j
                  |j                  dg       |j                  d      }| j                  |ddg       y )Nr   r   foo.barzsystem.methodSignaturearraystring)r   r   r6   r(   rA   SIGNATURE_UNSUPPORTEDmethodSignaturer"   )r   r   r:   r   s       r   test_methodSignaturez8SystemNamespaceXMLRPCInterfaceTests.test_methodSignaturej  s`    %MMO	V]]@@&66'[	* **+CD'8!45r   c           
         ddl m} g d}| j                         }|j                         }|j	                         D ]S  }	 |j                  |       |j                  dd      \  }}|j                  |   }t        ||      }		 |	j                  }
|
j                  d|
j                   }|j!                  t#        |	j$                              }g }g }g }g }g }g }g }g }|D ]  }|d   dk(  rQ|j'                  |d          |j'                  |d          |j'                  |d	          |j'                  |d
          \|d   dk(  rQ|j'                  |d          |j'                  |d          |j'                  |d	          |j'                  |d
          |d   t        d|d   d|d|       t)        |      t)        |      k7  r&t        dt)        |      dt)        |      d|      |D ]1  }| j+                  t-        |      t.        k(  |t-        |      ||f       3 |D ]  }| j+                  ||v |        t1        t)        |            D ],  }||   ||   k7  sd||   d||   d|d|}t        |       |D ])  }| j+                  t-        |      t-        d      k(  |       + t)        |      dkD  rt        d|z        |D ]0  }| j+                  t-        |      t.        k(  |t-        |      |f       2 |D ]  }| j+                  ||v |        |D ]5  }| j+                  t-        |      t-        d      k(  |t-        |      |f       7 |D ]5  }| j+                  t-        |      t-        d      k(  |t-        |      |f       7 V y # |j                  $ r t        d|z        w xY w# t        $ r |	j                  }
Y >w xY w)Nr   r   )	intdoubler  booleanzdateTime.iso8601base64binaryr  structz=methodSignature for %s raises RPCError (missing @return doc?).r>   paramr6  r     returnzunknown tag type z for z	, parsed zIncorrect documentation (z args, z doc params) in zName wrong: (z vs. z in z)
r  z'Duplicate @return values in docs for %s)r   r   r6   r  r   r  r!   r    splitr  getattr	func_code	Exception__code__co_varnamesco_argcountgettagsstr__doc__r  r^  r   r  r  range)r   r   	_RPCTYPESr:   r  r  ns_namemethod_name	namespacemethr#   argnamesparsedplinesptypespnamesptextsrlinesrtypesrnamesrtextsthingdoclinedoctypexr  doctextdocnames                               r   test_allMethodDocsz6SystemNamespaceXMLRPCInterfaceTests.test_allMethodDocss  s'   %<	MMO	((* W	OAL))!, $%773? G[!,,W5I9k2D%~~ ''$*:*:;H^^C$56FFFFFFFFF L8w&MM%(+MM%(+MM%(+MM%(+1X)MM%(+MM%(+MM%(+MM%(+1X)(CH8CDCIKL LL$ 8}F+$(+Hs6{A&G H H " @W 4w7;G}787=7? @@
 " ?9 4g>?3v;' .!9+AGAI!ABAGIC )--. " DWb 97CD
 6{Q$=AC C! JW 4w7;G}a7I JJ " ?9 4g>?! @Wb 9G<@M<=<? @@ " OWb 9G<@M1<N OOkW	O
 ?? L$ &GIJ&K L LL  %}}%s    NN4N14OOc                     | j                         }|j                  ddgddg dg      }| j                  |d   |j                  d             | j                  |d   |j	                                y )Nsystem.methodHelp
methodNameparamszsystem.listMethodsr   r>   )r6   	multicallr"   
methodHelpr  )r   r:   r  s      r   test_multicall_simplevalsz=SystemNamespaceXMLRPCInterfaceTests.test_multicall_simplevals  su    MMO	%%-9L8MN.<'  	Y%9%9:M%NOY%:%:%<=r   c                     ddl m} | j                         }|j                  dg dg      }|j	                  |j
                  j                  d      }|j                  |j                  d}| j                  ||g       y )Nr   r   zsystem.multicallr  z$Recursive system.multicall forbidden)	faultCodefaultString)
r   r   r6   r  r!   rA   rD   r#   textr"   )r   r   r:   r  erecursion_faults         r   test_multicall_recursion_guardzBSystemNamespaceXMLRPCInterfaceTests.test_multicall_recursion_guard  sq    %MMO	%%-<'
  OOFMM>>68()qvvF?"34r   c                     ddl m} | j                         }|j                  ddig      }|j                  }||j                  u r |       }||j                  u r| j                  |d   g        y )Nr   r+  r  zsupervisor.stopAllProcesses)r   r,  r6   r  r/  r"   )r   r,  r:   r!  r  s        r   test_multicall_nested_callbackzBSystemNamespaceXMLRPCInterfaceTests.test_multicall_nested_callback  sr    #MMO	&&78(: ;##***jG ***R(r   c                    ddl m} | j                         }| j                  |j                  j
                  |j                  dg       |j                  d      }| j                  ||j                  j                         y )Nr   r   r  r  )	r   r   r6   r(   rA   r  r   r"   r  )r   r   r:   helps       r   test_methodHelpz3SystemNamespaceXMLRPCInterfaceTests.test_methodHelp  sg    %MMO	V]]@@&11'[	* ##$78y33;;<r   N)r)   r*   r+   r2   r6   r;   r  r  r  r!  r(  r*  r-  r   r   r   r  r  O  s7    28
(6_OB>
5)=r   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)Test_make_allfuncc                 $    ddl m}  ||||fi |S )Nr   )make_allfunc)supervisor.rpcinterfacer1  )r   r   	predicatefuncextra_kwargsr1  s         r   _callFUTzTest_make_allfunc._callFUT  s    8Iy$G,GGr   c                   	 ddl m	 	fd}t               }t        |dd      }t	        |      }t        |      }d }| j                  ||fg||      } |       }| j                  |ddd	j                  j                  dg       y )	Nr   r   c                 N    j                  j                  j                        r   r!   rA   r   )rF  r&   r   s     r   cbz7Test_make_allfunc.test_rpcerror_nocallbacks.<locals>.cb	  s    //&--"6"677r   r4  rO   c                      yr  r   r  s    r   predz9Test_make_allfunc.test_rpcerror_nocallbacks.<locals>.pred		      r   r   )rE  rC  rF  rD  )
r   r   r   r   r   r   r6  r"   rA   r   
r   r:  rT   r<  r  rC  r=  afr   r   s
            @r   test_rpcerror_nocallbacksz+Test_make_allfunc.test_rpcerror_nocallbacks	  s    %	8.U;H%!(+	]]UDM?D"5%mm**, -	.r   c                     d }t               }t        |dd      }t        |      }t        |      }d }| j	                  ||fg||      } |       }| j                  |dddddg       y )Nc                     d S )Nc                       yr)  r   r   r   r   r   zTTest_make_allfunc.test_func_callback_normal_return_val.<locals>.cb.<locals>.<lambda>	  r}  r   r   )rF  r&   s     r   r:  zBTest_make_allfunc.test_func_callback_normal_return_val.<locals>.cb	  s    r   r4  rO   c                      yr  r   r<  s    r   r=  zDTest_make_allfunc.test_func_callback_normal_return_val.<locals>.pred	  r>  r   rA  P   )rC  rE  rD  rF  )r   r   r   r   r6  r"   )	r   r:  rT   r<  r  rC  r=  r@  r   s	            r   $test_func_callback_normal_return_valz6Test_make_allfunc.test_func_callback_normal_return_val	  sz    	.U;H%!(+	]]UDM?D"5!!J0 1	r   c                    	 ddl m	 	fd}t               }t        |dd      }t	        |      }t        |      }d }| j                  ||fg||      } |       }| j                  |ddddd	g       y )
Nr   r   c                     fd}|S )Nc                  N     j                   j                  j                        r   r9  r   s   r   innerzOTest_make_allfunc.test_func_callback_raises_RPCError.<locals>.cb.<locals>.inner(	  s    oofmm&:&:;;r   r   )rF  r&   rK  r   s      r   r:  z@Test_make_allfunc.test_func_callback_raises_RPCError.<locals>.cb'	  s    <Lr   r4  rO   c                      yr  r   r<  s    r   r=  zBTest_make_allfunc.test_func_callback_raises_RPCError.<locals>.pred/	  r>  r   r      )rE  rC  rD  rF  )r   r   r   r   r   r   r6  r"   r?  s
            @r   "test_func_callback_raises_RPCErrorz4Test_make_allfunc.test_func_callback_raises_RPCError%	  s    %	 .U;H%!(+	]]UDM?D"5%! " #	r   c                    	 ddl m	 	fd}t               }t        |dd      }t	        |      }t        |      }d }| j                  ||fg||      } |       }| j                  |	       y )Nr   ro  c                     fd}|S )Nc                       S r   r   ro  s   r   rK  zTTest_make_allfunc.test_func_callback_returns_NOT_DONE_YET.<locals>.cb.<locals>.inner>	  s	    ##r   r   )rF  r&   rK  r/  s      r   r:  zETest_make_allfunc.test_func_callback_returns_NOT_DONE_YET.<locals>.cb=	  s    $Lr   r4  rO   c                      yr  r   r<  s    r   r=  zGTest_make_allfunc.test_func_callback_returns_NOT_DONE_YET.<locals>.predE	  r>  r   )rq  r/  r   r   r   r   r6  r"   )
r   r:  rT   r<  r  rC  r=  r@  r   r/  s
            @r   'test_func_callback_returns_NOT_DONE_YETz9Test_make_allfunc.test_func_callback_returns_NOT_DONE_YET;	  sn    0	 .U;H%!(+	]]UDM?D"5	r   N)r)   r*   r+   r6  rA  rG  rN  rS  r   r   r   r/  r/    s    H.$$,r   r/  c                       e Zd Zd Zd Zy)Test_make_main_rpcinterfacec                     ddl m}  ||      S )Nr   )make_main_rpcinterface)r2  rW  )r   rW   rW  s      r   r6  z$Test_make_main_rpcinterface._callFUTO	  s    B%k22r   c                 r    | j                  d       }| j                  |j                  j                  d       y )NrK   )r6  r"   	__class__r)   )r   r'   s     r   test_itz#Test_make_main_rpcinterface.test_itS	  s.    }}T"NN##-	r   N)r)   r*   r+   r6  rZ  r   r   r   rU  rU  N	  s    3r   rU  c                       e Zd Zd Zy)r@   c                      y)Nr?   r   r   s    r   hellozDummyRPCInterface.hello]	  s    r   N)r)   r*   r+   r]  r   r   r   r@   r@   \	  s    r   r@   c                  V    t        j                  t        j                  t                 S r   )unittestfindTestCasessysmodulesr)   r   r   r   
test_suiterc  `	  s    !!#++h"788r   __main__rc  )defaultTest) r_  ra  r  r   r  r   supervisor.tests.baser   r   r   r   r   r   r	   r
   r   r,  r   r   r  r   TestCaser   r-   rG   r  r/  rU  r@   rc  r)   mainr   r   r   <module>ri     s     
  	   . 1 . . 3 3 : & - , *1x   1 5x 58J 7h J 7Z@k=( k=ZP)) Pd
("3"3 
 9 zHMMl+ r   