HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/supervisor/tests/__pycache__/test_xmlrpc.cpython-36.pyc
3

�k�`ۋ�@s(ddlZddlmZddlmZddlmZddlmZddlmZGdd�dej�Z	Gd	d
�d
ej�Z
Gdd�dej�ZGd
d�dej�ZGdd�dej�Z
Gdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�d�ZGdd�de�ZGdd �d �ZdS)!�N)�DummySupervisor)�DummyRequest)�DummySupervisorRPCNamespace)�	xmlrpclib)�httplibc@seZdZdd�Zdd�ZdS)�GetFaultDescriptionTestscCs*ddlm}|j|jj�}|j|d�dS)Nr)�xmlrpc�SHUTDOWN_STATE)�
supervisorr�getFaultDescription�Faultsr	�assertEqual)�selfr�desc�r�!/usr/lib/python3.6/test_xmlrpc.py�(test_returns_description_for_known_faultszAGetFaultDescriptionTests.test_returns_description_for_known_faultcCs&ddlm}|jd�}|j|d�dS)Nr)ri?BZUNKNOWN)r
rrr
)rrrrrr�&test_returns_unknown_for_unknown_faults
z?GetFaultDescriptionTests.test_returns_unknown_for_unknown_faultN)�__name__�
__module__�__qualname__rrrrrrr
src@s6eZdZdd�Zddd�Zdd�Zdd	�Zd
d�ZdS)
�
RPCErrorTestscCsddlm}|S)Nr)�RPCError)�supervisor.xmlrpcr)rrrrr�_getTargetClassszRPCErrorTests._getTargetClassNcCs|j�||�S)N)r)r�code�extrarrr�_makeOneszRPCErrorTests._makeOnecCs,ddlm}|j|jj�}|j|jd�dS)Nr)r�FAILED)r
rrrrr
�text)rr�errr�#test_sets_text_with_fault_name_onlysz1RPCErrorTests.test_sets_text_with_fault_name_onlycCs.ddlm}|j|jjd�}|j|jd�dS)Nr)rZoopszFAILED: oops)r
rrrrr
r)rrr rrr�(test_sets_text_with_fault_name_and_extra"sz6RPCErrorTests.test_sets_text_with_fault_name_and_extracCs8ddlm}|j|jjd�}|jt|�d|jj�dS)Nr)rz/nonexistentz%code=%r, text='NO_FILE: /nonexistent')r
rrrZNO_FILEr
�str)rrr rrr� test___str___shows_code_and_text's
z.RPCErrorTests.test___str___shows_code_and_text)N)rrrrrr!r"r$rrrrrs

rc@seZdZdd�ZdS)�XMLRPCMarshallingTestscCsXddlm}|jd�}|j|tjddd��tjdd�}|j|�}|j|tj|��dS)Nr)r�T)Zmethodresponse�foo)r&)r
rZxmlrpc_marshalr
r�dumps�Fault)rr�dataZfaultrrr�test_xmlrpc_marshal/s

z*XMLRPCMarshallingTests.test_xmlrpc_marshalN)rrrr+rrrrr%.sr%c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�XMLRPCHandlerTestscCsddlm}|S)Nr)�supervisor_xmlrpc_handler)rr-)rr-rrrr8sz"XMLRPCHandlerTests._getTargetClasscCs|j�||�S)N)r)r�supervisord�
subinterfacesrrrr<szXMLRPCHandlerTests._makeOnecCsLt�}dt�fg}|j||�}|j|j|�ddlm}|j|jj|�dS)Nr
r)�RootRPCInterface)	rrrr
r.rr0Zrpcinterface�	__class__)rr
r/�handlerr0rrr�	test_ctor?szXMLRPCHandlerTests.test_ctorcCs\Gdd�d�}t�}dt�fg}|j||�}|j|j|d��d�|j|j|d��d�dS)Nc@seZdZdd�ZdS)z4XMLRPCHandlerTests.test_match.<locals>.DummyRequest2cSs
||_dS)N)�uri)rr4rrr�__init__Isz=XMLRPCHandlerTests.test_match.<locals>.DummyRequest2.__init__N)rrrr5rrrr�
DummyRequest2Hsr6r
z/RPC2Tz/nopeF)rrrr
�match)rr6r
r/r2rrr�
test_matchGszXMLRPCHandlerTests.test_matchcCs�t�}dt�fg}|j||�}tjdd�}tdddd�}|j||�|jjj	}|j
t|�d�|j
|dd�|j
|d
d	�|j
t|j�d�|jd
}|j
tjtj|�dS)Nr
�a�bzsupervisor.noSuchMethodz
/what/ever�z0XML-RPC method called: supervisor.noSuchMethod()r&zKXML-RPC method supervisor.noSuchMethod() returned fault: [1] UNKNOWN_METHODr)r9r:������)rrrrr(r�continue_request�options�loggerr*r
�len�	producers�assertRaisesr)�loads)rr
r/r2r*�request�logdata�xml_responserrr�"test_continue_request_nosuchmethodQs



z5XMLRPCHandlerTests.test_continue_request_nosuchmethodc
Cs�t�}dt�fg}|j||�}tjfd�}tdddd�}|j||�|jjj	}|j
t|�d�|j
|dd�|j
|dd�|j
t|j�d�|jd}tj
|�}dd	lm}	|j
|dd|	�|j
|jd
�|j
|jdd�|j
|jd
t|��dS)Nr
zsupervisor.getAPIVersionz
/what/everr;z1XML-RPC method called: supervisor.getAPIVersion()r&z?XML-RPC method supervisor.getAPIVersion() returned successfullyr)�API_VERSIONTzContent-Typeztext/xmlzContent-Lengthr<r=)rrrrr(rr>r?r@r*r
rArBrD�supervisor.rpcinterfacerI�_done�headers)
rr
r/r2r*rErFrG�responserIrrr�#test_continue_request_methodsuccesscs(




z6XMLRPCHandlerTests.test_continue_request_methodsuccessc
Cs�t�}dt�fg}|j||�}d}tdddd�}|j||�|jjj}|jt	|�d�|j|dd�|j|dd�|jt	|j
�d�|j
d}tj|�}dd	l
m}	|j|dd|	�|j|jd
�|j|jdd�|j|jd
t	|��dS)Nr
zp<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>supervisor.getAPIVersion</methodName></methodCall>z
/what/everr;z1XML-RPC method called: supervisor.getAPIVersion()r&z?XML-RPC method supervisor.getAPIVersion() returned successfullyr)rITzContent-Typeztext/xmlzContent-Lengthr<r=)rrrrr>r?r@r*r
rArBrrDrJrIrKrL)
rr
r/r2r*rErFrGrMrIrrr�*test_continue_request_no_params_in_requestys(




z=XMLRPCHandlerTests.test_continue_request_no_params_in_requestcCs�t�}dt�fg}|j||�}d}tdddd�}|j||�|jjj}|jt	|�d�|j
|djd��|j
t|�|dk�|j
|dj
d��|j|jd�dS)	Nr
zX<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName></methodName></methodCall>z
/what/everr&rzXML-RPC request datazis invalid: no method namei�)rrrrr>r?r@r*r
rA�
assertTrue�
startswith�repr�endswith�_error)rr
r/r2r*rErFrrr�1test_continue_request_400_if_method_name_is_empty�s
zDXMLRPCHandlerTests.test_continue_request_400_if_method_name_is_emptycCs�t�}dt�fg}|j||�}d}tdddd�}|j||�|jjj}|jt	|�d�|j
|djd��|j
t|�|dk�|j
|dj
d��|j|jd�dS)	Nr
z#this is not an xml-rpc request bodyz
/what/everr&rzXML-RPC request datazis invalid: unmarshallablei�)rrrrr>r?r@r*r
rArPrQrRrSrT)rr
r/r2r*rErFrrr�1test_continue_request_400_if_loads_raises_not_xml�s
zDXMLRPCHandlerTests.test_continue_request_400_if_loads_raises_not_xmlcCs�t�}dt�fg}|j||�}d}tdddd�}|j||�|jjj}|jt	|�d�|j
|djd��|j
t|�|dk�|j
|dj
d��|j|jd�dS)	Nr
z&<methodName></methodName><junk></junk>z
/what/everr&rzXML-RPC request datazis invalid: unmarshallablei�)rrrrr>r?r@r*r
rArPrQrRrSrT)rr
r/r2r*rErFrrr�3test_continue_request_400_if_loads_raises_weird_xml�s
zFXMLRPCHandlerTests.test_continue_request_400_if_loads_raises_weird_xmlcCs�t�}dt�fg}|j||�}tjfd�}tdddd�}|j||�|jjj	}|j
t|�d�|j
|dd�|jd|dk�|jt
|�|dk�|jd	|dk�|jd
|dk�|j
|jd�dS)Nr
zsupervisor.raiseErrorz
/what/everr;rz.XML-RPC method called: supervisor.raiseError()zunexpected exceptionr&�	TracebackzValueError: errori�)rrrrr(rr>r?r@r*r
rArPrRrT)rr
r/r2r*rErFrrr�<test_continue_request_500_if_rpcinterface_method_call_raises�s

zOXMLRPCHandlerTests.test_continue_request_500_if_rpcinterface_method_call_raisescCs�t�}dt�fg}|j||�}tjfd�}tdddd�}|j||�|jjj	}|j
t|�d�|j
|dd�|j
|dd�|jd	|d
k�|jt
|�|d
k�|jd|d
k�|jd|d
k�|j
|jd
�dS)Nr
z"supervisor.getXmlRpcUnmarshallablez
/what/ever�rz;XML-RPC method called: supervisor.getXmlRpcUnmarshallable()r&zIXML-RPC method supervisor.getXmlRpcUnmarshallable() returned successfullyzunexpected exceptionr;rXzTypeError: cannot marshali�)rrrrr(rr>r?r@r*r
rArPrRrT)rr
r/r2r*rErFrrr�0test_continue_request_500_if_xmlrpc_dumps_raises�s"


zCXMLRPCHandlerTests.test_continue_request_500_if_xmlrpc_dumps_raisescCs�Gdd�dt�}t�}dt�fd|�fg}|j||�}tjfd�}tdddd�}|j||�|jj	j
}|jt|�d�|j|d
d�|j|dd
�|jt|j
�d�|j|jd�dS)Nc@seZdZdd�ZdS)zUXMLRPCHandlerTests.test_continue_request_value_is_function.<locals>.DummyRPCNamespacecSsdd�}d|_|S)NcSsdS)Nr&r)rrrr�inner�szhXMLRPCHandlerTests.test_continue_request_value_is_function.<locals>.DummyRPCNamespace.foo.<locals>.innerg�������?)�delay)rr\rrrr'�szYXMLRPCHandlerTests.test_continue_request_value_is_function.<locals>.DummyRPCNamespace.fooN)rrrr'rrrr�DummyRPCNamespace�sr^r
�ns1zns1.fooz
/what/everr;z XML-RPC method called: ns1.foo()r&z.XML-RPC method ns1.foo() returned successfullyrFr<r=)�objectrrrrr(rr>r?r@r*r
rArBrK)rr^r
r/r2r*rErFrrr�'test_continue_request_value_is_function�s 


z:XMLRPCHandlerTests.test_continue_request_value_is_functionc		Cs2d}t�}dt�fg}|j||�}|j|�}|\}}ddl}|j|d�|j|dd�|j|dd�|j|dd	�|j|d
d�|j|dd	�|j|d
d�|j|dd!�|j|d|jdddddd��|j|dd�|j|dd
dd��|j|dddddg�|j|dd digi�dS)"Na�<?xml version="1.0"?>
        <methodCall>
        <methodName>examples.getStateName</methodName>
        <params>
        <param>
        <value><i4>41</i4></value>
        </param>
        <param>
        <value><string>foo</string></value>
        </param>
        <param>
        <value><string></string></value>
        </param>
        <param>
        <!-- xml-rpc spec allows strings without <string> tag -->
        <value>bar</value>
        </param>
        <param>
        <value></value>
        </param>
        <param>
        <value><boolean>1</boolean></value>
        </param>
        <param>
        <value><double>-12.214</double></value>
        </param>
        <param>
        <value>
        <dateTime.iso8601>19980717T14:08:55</dateTime.iso8601>
        </value>
        </param>
        <param>
        <value><base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64></value>
        </param>
        <param>
        <struct>
        <member><name>j</name><value><i4>5</i4></value></member>
        <member><name>k</name><value>abc</value></member>
        </struct>
        </param>
        <param>
        <array>
          <data>
            <value><i4>12</i4></value>
            <value><string>abc</string></value>
            <value>def</value>
            <value><i4>34</i4></value>
          </data>
        </array>
        </param>
        <param>
        <struct>
          <member>
            <name>k</name>
            <value><array><data>
              <value><i4>1</i4></value>
              <struct></struct>
            </data></array></value>
          </member>
        </struct>
        </param>
        </params>
        </methodCall>
        r
rzexamples.getStateName�)r&r'r;�rZZbar��T�g!�rh�m(@�i�����7zyou can't read this!�	�abc)�j�k�
��def�"�rog!�rh�m(�)rrrrD�datetimer
)	r�sr
r/r2�result�params�methodrurrr�test_iterparse_loads_methodcall�s(@
 z2XMLRPCHandlerTests.test_iterparse_loads_methodcallN)rrrrrr3r8rHrNrOrUrVrWrYr[rarzrrrrr,7s
r,c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�
TraverseTestscCsPddlm}Gdd�d�}Gdd�d�}|�}|�|_|j|j|j|dg�dS)Nr)rc@seZdZdS)zFTraverseTests.test_security_disallows_underscore_methods.<locals>.RootN)rrrrrrr�RootQsr|c@seZdZdd�ZdS)zCTraverseTests.test_security_disallows_underscore_methods.<locals>.AcSsdS)NTr)rrrr�_dangerTszKTraverseTests.test_security_disallows_underscore_methods.<locals>.A._dangerN)rrrr}rrrr�ASsr~z	a._danger)r
rr9rCr�traverse)rrr|r~�rootrrr�*test_security_disallows_underscore_methodsOsz8TraverseTests.test_security_disallows_underscore_methodscCshddlm}Gdd�d�}Gdd�d�}Gdd�d�}|�}|�|_|�|j_|j|j|j|d	g�dS)
Nr)rc@seZdZdS)zDTraverseTests.test_security_disallows_object_traversal.<locals>.RootN)rrrrrrrr|]sr|c@seZdZdS)zATraverseTests.test_security_disallows_object_traversal.<locals>.AN)rrrrrrrr~_sr~c@seZdZdd�ZdS)zATraverseTests.test_security_disallows_object_traversal.<locals>.BcSsdS)NTr)rrrr�dangerbszHTraverseTests.test_security_disallows_object_traversal.<locals>.B.dangerN)rrrr�rrrr�Basr�z
a.b.danger)r
rr9r:rCrr)rrr|r~r�r�rrr�(test_security_disallows_object_traversal[s
z6TraverseTests.test_security_disallows_object_traversalcCs:ddlm}Gdd�d�}|�}|j|j|j|dd�dS)Nr)rc@seZdZdS)z9TraverseTests.test_namespace_name_not_found.<locals>.RootN)rrrrrrrr|lsr|znotfound.hello)r
rrCrr)rrr|r�rrr�test_namespace_name_not_foundjs
z+TraverseTests.test_namespace_name_not_foundcCsPddlm}Gdd�d�}Gdd�d�}|�}|�|_|j|j|j|dg�dS)Nr)rc@seZdZdS)z6TraverseTests.test_method_name_not_found.<locals>.RootN)rrrrrrrr|tsr|c@seZdZdS)z3TraverseTests.test_method_name_not_found.<locals>.AN)rrrrrrrr~vsr~z
a.notfound)r
rr9rCrr)rrr|r~r�rrr�test_method_name_not_foundrsz(TraverseTests.test_method_name_not_foundcCshddlm}Gdd�d�}Gdd�d�}Gdd�d�}|�}|�|_|�|j_|j|j|j|d	g�dS)
Nr)rc@seZdZdS)zGTraverseTests.test_method_name_exists_but_is_not_a_method.<locals>.RootN)rrrrrrrr|sr|c@seZdZdS)zDTraverseTests.test_method_name_exists_but_is_not_a_method.<locals>.AN)rrrrrrrr~�sr~c@seZdZdS)zDTraverseTests.test_method_name_exists_but_is_not_a_method.<locals>.BN)rrrrrrrr��sr�za.b)r
rr9r:rCrr)rrr|r~r�r�rrr�+test_method_name_exists_but_is_not_a_method}s
z9TraverseTests.test_method_name_exists_but_is_not_a_methodcCsTddlm}Gdd�d�}Gdd�d�}|�}|�|_|j|j|j|ddd	g�dS)
Nr)rc@seZdZdS)z+TraverseTests.test_bad_params.<locals>.RootN)rrrrrrrr|�sr|c@seZdZdd�ZdS)z(TraverseTests.test_bad_params.<locals>.AcSsd|S)NzHello %sr)r�namerrr�hello�sz.TraverseTests.test_bad_params.<locals>.A.helloN)rrrr�rrrrr~�sr~za.hello�therer)r
rr9rCrr)rrr|r~r�rrr�test_bad_params�szTraverseTests.test_bad_paramscCsVddlm}Gdd�d�}Gdd�d�}|�}|�|_|j|ddg�}|j|d	�dS)
Nr)rc@seZdZdS)z(TraverseTests.test_success.<locals>.RootN)rrrrrrrr|�sr|c@seZdZdd�ZdS)z%TraverseTests.test_success.<locals>.AcSsd|S)NzHello %sr)rr�rrrr��sz+TraverseTests.test_success.<locals>.A.helloN)rrrr�rrrrr~�sr~za.hellor�zHello there)r
rr9rr
)rrr|r~r�rwrrr�test_success�szTraverseTests.test_successN)
rrrr�r�r�r�r�r�r�rrrrr{Nsr{c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�SupervisorTransportTestscCsddlm}|S)Nr)�SupervisorTransport)rr�)rr�rrrr�sz(SupervisorTransportTests._getTargetClasscOs|j�||�S)N)r)r�arg�kwrrrr�sz!SupervisorTransportTests._makeOnecCsTddlm}|jddd�}|j�}|jt||j��|j|jd�|j|j	d�dS)Nr)r�user�passzunix:///foo/bar�	localhostz/foo/bar)
r
rr�_get_connectionrP�
isinstanceZUnixStreamHTTPConnectionr
�hostZ
socketfile)rr�	transport�connrrr�test_ctor_unix�sz'SupervisorTransportTests.test_ctor_unixcCs|jt|jddd�dS)Nr�r�zunknown:///foo/bar)rC�
ValueErrorr)rrrr�test_ctor_unknown�sz*SupervisorTransportTests.test_ctor_unknowncCsH|jddd�}|j�}|jt|tj��|j|jd�|j|jd�dS)Nr�r�zhttp://127.0.0.1:9001/z	127.0.0.1i)#)	rr�rPr�r�HTTPConnectionr
r��port)rr�r�rrr�test__get_connection_http_9001�s
z7SupervisorTransportTests.test__get_connection_http_9001cCsH|jddd�}|j�}|jt|tj��|j|jd�|j|jd�dS)Nr�r�zhttp://127.0.0.1/z	127.0.0.1�P)	rr�rPr�rr�r
r�r�)rr�r�rrr�test__get_connection_http_80�s
z5SupervisorTransportTests.test__get_connection_http_80cs`|jddd�}tdd���fdd�}||_|jtj|jdd	d�|j|jd�|j�j	d
�dS)Nr�r�zhttp://127.0.0.1/i�rccs�S)Nrr)�
dummy_connrr�getconn�szGSupervisorTransportTests.test_request_non_200_response.<locals>.getconnr��/T)
r�DummyConnectionr�rCr�
ProtocolErrorrEr
�
connection�closed)rr�r�r)r�r�test_request_non_200_response�s
z6SupervisorTransportTests.test_request_non_200_responsecs�|jddd�}tdd���fdd�}||_|jtj|jdd	d�|j|jd�|j�j	d
�|j�j
dd�|j�j
d
d	�|j�j
dd�|j�j
ddd�|j�j
ddd�|j�j
ddd�|j�j
ddd�dS)Nr�r�zhttp://127.0.0.1/i�rccs�S)Nrr)r�rrr��szCSupervisorTransportTests.test_request_400_response.<locals>.getconnr�r�Tr�POSTr&r;�rZzContent-Length�0zContent-Typeztext/xml�
AuthorizationzBasic dXNlcjpwYXNz�Accept)rr�r�rCrr�rEr
r�r��requestargs)rr�r�r)r�r�test_request_400_response�s 
z2SupervisorTransportTests.test_request_400_responsecs�|jddd�}d}td|���fdd�}||_|jdd	d
�}|j|j��|j�jd�|j�jdd
�|j�jdd	�|j�jdd�|j�jddd�|j�jddd�|j�jddd�|j�jddd�|j|d�dS)Nr�r�zhttp://127.0.0.1/z�<?xml version="1.0"?>
        <methodResponse>
        <params>
        <param>
        <value><string>South Dakota</string></value>
        </param>
        </params>
        </methodResponse>��cs�S)Nrr)r�rrr��szCSupervisorTransportTests.test_request_200_response.<locals>.getconnr�r�rcFrr�r&r;r�rZzContent-Lengthr�zContent-Typeztext/xmlr�zBasic dXNlcjpwYXNzr��South Dakota)r�)rr�r�rEr
r�r�r�)rr�rMr�rwr)r�r�test_request_200_response�s"
z2SupervisorTransportTests.test_request_200_responsecsP|jddd�}tdd���fdd�}||_|jdd	d
�|j�|j�j�dS)Nr�r�zhttp://127.0.0.1/r�zH<?xml version="1.0"?>
        <methodResponse><params/></methodResponse>cs�S)Nrr)r�rrr�sz4SupervisorTransportTests.test_close.<locals>.getconnr�r�rc)rr�r�rE�closerPr�)rr�r�r)r�r�
test_close�sz#SupervisorTransportTests.test_closeN)
rrrrrr�r�r�r�r�r�r�r�rrrrr��sr�c@sveZdZdd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestDeferredXMLRPCResponsecCsddlm}|S)Nr)�DeferredXMLRPCResponse)rr�)rr�rrrrsz*TestDeferredXMLRPCResponse._getTargetClassNcCs:|dkrtddddd�}|dkr,t�}d|_|j�||�S)Nr&)r�Dummyr]r)rrE�callbackrrrrsz#TestDeferredXMLRPCResponse._makeOnecCsVt�}d|_|jd|d�}|j|j|�|j|jd�|j|jd�|j|jd�dS)Nr&rE)rEr�g�?F)r�r]rr
r�rE�finished)rr��instrrrr3sz$TestDeferredXMLRPCResponse.test_ctorcCs&|j�}d|_|j�}|j|d�dS)NTrc)rr��morer
)rr�rwrrr�test_more_finished sz-TestDeferredXMLRPCResponse.test_more_finishedcs>ddlm��fdd�}d|_|j|d�}|j|j���dS)Nr)�NOT_DONE_YETcs�S)Nrr)r�rrr�(szTTestDeferredXMLRPCResponse.test_more_callback_returns_not_done_yet.<locals>.callbackr&)r�)�supervisor.httpr�r]rr
r�)rr�r�r)r�r�'test_more_callback_returns_not_done_yet&s
zBTestDeferredXMLRPCResponse.test_more_callback_returns_not_done_yetcszddlm�m���fdd�}d|_|j|d�}|j|j�d�|jt|jj	�d�|j
d|jj	dk�|j
|j�dS)Nr)rrcs��j��dS)N)�UNKNOWN_METHODr)rrrrr�0szOTestDeferredXMLRPCResponse.test_more_callback_raises_RPCError.<locals>.callbackr&)r�r�)rrrr]rr
r�rArErBrPr�)rr�r�r)rrr�"test_more_callback_raises_RPCError.sz=TestDeferredXMLRPCResponse.test_more_callback_raises_RPCErrorcCsddd�}d|_|j|d�}|j|j�d�|jt|jj�d�|jd|jjdk�|j|j�dS)NcSsdS)Nrmrrrrrr�:szMTestDeferredXMLRPCResponse.test_more_callback_returns_value.<locals>.callbackr&)r�rmr)	r]rr
r�rArErBrPr�)rr�r�rrr� test_more_callback_returns_value9sz;TestDeferredXMLRPCResponse.test_more_callback_returns_valuecCs�dd�}d|_|j|d�}|j|j�d�|j|jjd�|j|j�|jjj	j
j}|jt|�d�|d\}}|j|d�|jd|k�dS)	NcSstd��dS)Nr')r�rrrrr�Dsz[TestDeferredXMLRPCResponse.test_more_callback_raises_unexpected_exception.<locals>.callbackr&)r�i�rzXML-RPC response callback errorrX)
r]rr
r�rErTrPr�ZchannelZserverr@�loggedrA)rr�r�r��src�msgrrr�.test_more_callback_raises_unexpected_exceptionCszITestDeferredXMLRPCResponse.test_more_callback_raises_unexpected_exceptioncCsT|j�}d|j_|jjjd�|jd�|jt|jj�d�|j|jj	dd�dS)Nz1.0zConnection: keep-alivermr&�
Connectionz
Keep-Alive)
rrE�version�header�append�getresponser
rArBrL)rr�rrr�'test_getresponse_http_10_with_keepaliveQs
zBTestDeferredXMLRPCResponse.test_getresponse_http_10_with_keepalivecCsF|j�}d|j_|jd�|jt|jj�d�|j|jjdd�dS)Nz1.0rmr&r�r�)rrEr�r�r
rArBrL)rr�rrr�%test_getresponse_http_10_no_keepaliveYs

[email protected]_getresponse_http_10_no_keepalivecCsD|j�}d|j_|jd�|jt|jj�d�|jd|jjk�dS)Nz1.1rmr&r�)	rrEr�r�r
rArBrPrL)rr�rrr�&test_getresponse_http_11_without_close`s

zATestDeferredXMLRPCResponse.test_getresponse_http_11_without_closecCsT|j�}|jjjd�d|j_|jd�|jt|jj�d�|j|jj	dd�dS)NzConnection: closez1.1rmr&r�r�)
rrEr�r�r�r�r
rArBrL)rr�rrr�#test_getresponse_http_11_with_closegs
z>TestDeferredXMLRPCResponse.test_getresponse_http_11_with_closecCsF|j�}d|j_|jd�|jt|jj�d�|j|jjdd�dS)Nrmr&r�r�)rrEr�r�r
rArBrL)rr�rrr�test_getresponse_http_unknownos

z8TestDeferredXMLRPCResponse.test_getresponse_http_unknown)NN)rrrrrr3r�r�r�r�r�r�r�r�r�r�rrrrr�
s
	
r�c@s�eZdZffdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)$�TestSystemNamespaceRPCInterfacecCsddlm}||�S)Nr)�SystemNamespaceRPCInterface)rr�)rZ
namespacesr�rrrrwsz(TestSystemNamespaceRPCInterface._makeOnecCs(|j�}|j�}|j|ddddg�dS)Nzsystem.listMethodszsystem.methodHelpzsystem.methodSignaturezsystem.multicall)r�listMethodsr
)rr�rwrrr�test_listMethods_gardenpath{sz;TestSystemNamespaceRPCInterface.test_listMethods_gardenpathcCsHGdd�dt�}|�}|jd|fg�}|j�}|j|dddddg�dS)	Nc@seZdZdd�Zdd�ZdS)z_TestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrs.<locals>.DummyNamespacecSsdS)Nr)rrrrr'�szcTestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrs.<locals>.DummyNamespace.foocSsdS)Nr)rrrr�_bar�szdTestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrs.<locals>.DummyNamespace._barN)rrrr'r�rrrr�DummyNamespace�sr�r_zns1.foozsystem.listMethodszsystem.methodHelpzsystem.methodSignaturezsystem.multicall)r`rr�r
)rr�r_r�rwrrr�'test_listMethods_omits_underscore_attrs�szGTestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrscCs$|j�}|jd�}|jd|k�dS)Nzsystem.listMethods�array)r�
methodHelprP)rr�rwrrr�test_methodHelp_known_method�s
z<TestSystemNamespaceRPCInterface.test_methodHelp_known_methodcCs(ddlm}|j�}|j||jd�dS)Nr)rz
wont.be.found)rrrrCr�)rrr�rrr�test_methodHelp_unknown_method�sz>TestSystemNamespaceRPCInterface.test_methodHelp_unknown_methodcCs&|j�}|jd�}|j|ddg�dS)Nzsystem.methodSignaturer��string)r�methodSignaturer
)rr�rwrrr�!test_methodSignature_known_method�s
zATestSystemNamespaceRPCInterface.test_methodSignature_known_methodcCs(ddlm}|j�}|j||jd�dS)Nr)rz
wont.be.found)rrrrCr�)rrr�rrr�#test_methodSignature_unknown_method�szCTestSystemNamespaceRPCInterface.test_methodSignature_unknown_methodcCsFddlm}Gdd�dt�}|�}|jd|fg�}|j||jd�dS)Nr)rc@seZdZdd�ZdS)zYTestSystemNamespaceRPCInterface.test_methodSignature_with_bad_sig.<locals>.DummyNamespacecSsdS)z @param string name The thingNr)rrrrr'�sz]TestSystemNamespaceRPCInterface.test_methodSignature_with_bad_sig.<locals>.DummyNamespace.fooN)rrrr'rrrrr��sr�r_zns1.foo)rrr`rrCr�)rrr�r_r�rrr�!test_methodSignature_with_bad_sig�s
zATestSystemNamespaceRPCInterface.test_methodSignature_with_bad_sigcCsBddlm}|j�}ddig}|j|�}|j||jdd�g�dS)Nr)r�
methodNamezsystem.multicallz:INCORRECT_PARAMETERS: Recursive system.multicall forbidden)�	faultCode�faultString)rrr�	multicallr
�INCORRECT_PARAMETERS)rrr��calls�resultsrrr�#test_multicall_faults_for_recursion�s

zCTestSystemNamespaceRPCInterface.test_multicall_faults_for_recursioncCs>ddlm}|j�}ig}|j|�}|j||jdd�g�dS)Nr)rz#INCORRECT_PARAMETERS: No methodName)r�r�)rrrr�r
r�)rrr�r�r�rrr�,test_multicall_faults_for_missing_methodName�s
zLTestSystemNamespaceRPCInterface.test_multicall_faults_for_missing_methodNamecCsBddlm}|j�}ddig}|j|�}|j||jdd�g�dS)Nr)rr�zbad.stopProcessr�)r�r�)rrrr�r
r�)rrr�r�r�rrr�2test_multicall_faults_for_methodName_bad_namespace�s

zRTestSystemNamespaceRPCInterface.test_multicall_faults_for_methodName_bad_namespacecCs`ddlm}Gdd�dt�}|�}|jd|fg�}ddig}|j|�}|j||jdd	�g�dS)
Nr)rc@seZdZdS)zoTestSystemNamespaceRPCInterface.test_multicall_faults_for_methodName_good_ns_bad_method.<locals>.DummyNamespaceN)rrrrrrrr��sr�r_r�zns1.badr�)r�r�)rrr`rr�r
r�)rrr�r_r�r�r�rrr�7test_multicall_faults_for_methodName_good_ns_bad_method�s

zWTestSystemNamespaceRPCInterface.test_multicall_faults_for_methodName_good_ns_bad_methodcCs&|j�}g}|j|�}|j|g�dS)N)rr�r
)rr�r�r�rrr�4test_multicall_returns_empty_results_for_empty_calls�s
zTTestSystemNamespaceRPCInterface.test_multicall_returns_empty_results_for_empty_callscCshGdd�dt�}|�}|jd|fg�}ddgd�ddgd�ddgd�g}|j|�}|j|dddg�dS)	Nc@seZdZdd�ZdS)znTestSystemNamespaceRPCInterface.test_multicall_performs_noncallback_functions_serially.<locals>.DummyNamespacecSs|S)z  @param string name Process namer)rr�rrr�say�szrTestSystemNamespaceRPCInterface.test_multicall_performs_noncallback_functions_serially.<locals>.DummyNamespace.sayN)rrrr�rrrrr��sr�r_zns1.sayZAlvin)r�rxZSimonZTheodore)r`rr�r
)rr�r_r�r�r�rrr�6test_multicall_performs_noncallback_functions_serially�s


zVTestSystemNamespaceRPCInterface.test_multicall_performs_noncallback_functions_seriallycs�ddl�ddlm�m�G���fdd�dt�}|�}|jd|fg�}ddiddig}|j|�}�jd	d
�}�jdt	d
�}|j
|||g�dS)Nr)rrcs&eZdZ��fdd�Z�fdd�ZdS)zeTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptions.<locals>.DummyNamespacecs��jd��dS)Nr')�BAD_NAME)r)rrrr�bad_name�sznTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptions.<locals>.DummyNamespace.bad_namecst�j��dS)N)�OSError�ENOENT)r)�errnorr�os_errorsznTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptions.<locals>.DummyNamespace.os_errorN)rrrr�r�r)rrr�rrr��sr�r_r�zns1.bad_namezns1.os_errorz
BAD_NAME: foo)r�r�zFAILED: %s:2)r�rrrr`rr�r�rr�r
)rr�r_r�r�r�r�r�r)rrr�r�-test_multicall_catches_noncallback_exceptions�s
zMTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptionsc
s�ddl�ddlm�m�ddlm}G���fdd�dt�}|�}|jd|fg�}ddidd	ig}|j|�}|}x||kr�|�}qrW�j	d
d�}�j
dtd�}	|j|||	g�dS)
Nr)rr)r�cs&eZdZ��fdd�Z�fdd�ZdS)zbTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespacecs��fdd�}|S)Ncs��jd��dS)Nr')r�r)rrrrr\szzTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.bad_name.<locals>.innerr)rr\)rrrrr�szkTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.bad_namecs�fdd�}|S)Ncst�j��dS)N)r�r�r)r�rrr\szzTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.os_error.<locals>.innerr)rr\)r�rrr�szkTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.os_errorN)rrrr�r�r)rrr�rrr�sr�r_r�zns1.bad_namezns1.os_errorz
BAD_NAME: foo)r�r�zFAILED: %s:2)
r�rrrr�r�r`rr�r�rr�r
)
rr�r�r_r�r�r�r�r�r�r)rrr�r�*test_multicall_catches_callback_exceptions
s 	


zJTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptionscs�ddlm�G�fdd�dt�}|�}|jd|fg�}dddid	�d
ddid	�g}|j|�}�}x|�krr|�}qbW|j|ddg�dS)
Nr)r�cs,eZdZ�fdd�Z�fdd�Zdd�ZdS)zkTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespacecs���dg|_dg|_dS)Nzstop resultzstart result)�stop_results�
start_results)r)r�rrr5+s
ztTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.__init__cs��fdd�}|S)Ncs�jjd�}|�k	rd�_|S)NrT)r��pop�stopped)rw)r�rrrr\0sz�TestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.stopProcess.<locals>.innerr)rr�r\)r�)rr�stopProcess/szwTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.stopProcesscs�fdd�}|S)Ncs�jstd���jjd�S)NzThis should not raiser)r��	Exceptionr�r�r)rrrr\7sz�TestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.startProcess.<locals>.innerr)rr�r\r)rr�startProcess6szxTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.startProcessN)rrrr5r�r�r)r�rrr�*sr�r_zns1.stopProcessr�r')r�rxzns1.startProcesszstop resultzstart result)r�r�r`rr�r
)rr�r_r�r�r�r�r)r�r�3test_multicall_performs_callback_functions_serially(s



zSTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_seriallyN)rrrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�vs"	r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�Test_gettagscCsddlm}||�S)Nr)�gettags)rr)rZcommentrrrr�_callFUTIszTest_gettags._callFUTcCs"d}|j|�}|j|ddg�dS)Nz@foorrcr')rNNNrc)rr'rcrcrc)rr
)r�linesrwrrr�test_one_atpartMs

zTest_gettags.test_one_atpartcCs"d}|j|�}|j|ddg�dS)Nz
@foo arrayrrcr'r�)rNNNrc)rr'r�rcrc)rr
)rrrwrrr�test_two_atpartsUs

zTest_gettags.test_two_atpartscCs"d}|j|�}|j|ddg�dS)	Nz@foo array namerrcr'r�r�)rNNNrc)rr'r�r�rc)rr
)rrrwrrr�test_three_atparts]s

zTest_gettags.test_three_atpartscCs"d}|j|�}|j|dd	g�dS)
Nz@foo array name textrrcr'r�r�r)rNNNrc)rr'r�r�r)rr
)rrrwrrr�test_four_atpartses

zTest_gettags.test_four_atpartsN)rrrrrrrrrrrrr�Hs
r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�Test_capped_intcCsddlm}||�S)Nr)�
capped_int)rr)r�valuerrrrrnszTest_capped_int._callFUTcCs|j|jd�d�dS)NZ42�*)r
r)rrrr�test_converts_value_to_integerrsz.Test_capped_int.test_converts_value_to_integercCs*ddlm}|j|j|jd�|j�dS)Nr)rr&)�supervisor.compatrr
rZMININT)rrrrr�test_caps_value_below_minintusz,Test_capped_int.test_caps_value_below_minintcCs*ddlm}|j|j|jd�|j�dS)Nr)rr&)rrr
rZMAXINT)rrrrr�test_caps_value_above_maxintysz,Test_capped_int.test_caps_value_above_maxintN)rrrrrr
rrrrrrmsrc@seZdZd	dd�Zdd�ZdS)
�
DummyResponser�rc�reasoncCs||_||_||_dS)N)�status�bodyr)rrrrrrrr5szDummyResponse.__init__cCs|jS)N)r)rrrr�read�szDummyResponse.readN)r�rcr)rrrr5rrrrrr~s
rc@seZdZdS)r�N)rrrrrrrr��sr�c@s2eZdZdZddd�Zdd�Zd	d
�Zdd�Zd
S)r�Fr�rcrcCst|||�|_dS)N)rrM)rrrrrrrr5�szDummyConnection.__init__cCs|jS)N)rM)rrrrr��szDummyConnection.getresponsecOs||_||_dS)N)r�Z	requestkw)rr�r�rrrrE�szDummyConnection.requestcCs
d|_dS)NT)r�)rrrrr��szDummyConnection.closeN)r�rcr)rrrr�r5r�rEr�rrrrr��s

r�)ZunittestZsupervisor.tests.baserrrrrrZTestCaserrr%r,r{r�r�r�r�rrr`r�r�rrrr�<module>s*	UglS%