
    `iڋ                        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  G d de j                  Z	 G d	 d
e j                  Z
 G d de j                  Z G d de j                  Z G d de j                  Z G d de j                  Z G d de j                  Z G d de j                  Z G d de j                  Z G d de j                  Z G d d          Z G d de          Z G d d           ZdS )!    N)DummySupervisor)DummyRequest)DummySupervisorRPCNamespace	xmlrpclib)httplibc                       e Zd Zd Zd ZdS )GetFaultDescriptionTestsc                 |    ddl m} |                    |j        j                  }|                     |d           d S )Nr   xmlrpcSHUTDOWN_STATE)
supervisorr   getFaultDescriptionFaultsr   assertEqualselfr   descs      p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/supervisor/tests/test_xmlrpc.py(test_returns_description_for_known_faultzAGetFaultDescriptionTests.test_returns_description_for_known_fault   sI    %%%%%%))&-*FGG/00000    c                 h    ddl m} |                    d          }|                     |d           d S )Nr   r   i?B UNKNOWN)r   r   r   r   r   s      r   &test_returns_unknown_for_unknown_faultz?GetFaultDescriptionTests.test_returns_unknown_for_unknown_fault   sC    %%%%%%))&11y)))))r   N)__name__
__module____qualname__r   r    r   r   r
   r
   
   s2        1 1 1
* * * * *r   r
   c                   .    e Zd Zd ZddZd Zd Zd ZdS )RPCErrorTestsc                     ddl m} |S )Nr   RPCError)supervisor.xmlrpcr$   )r   r$   s     r   _getTargetClasszRPCErrorTests._getTargetClass   s    ......r   Nc                 >     |                                  ||          S Nr&   )r   codeextras      r   _makeOnezRPCErrorTests._makeOne   s     %t##%%dE222r   c                     ddl m} |                     |j        j                  }|                     |j        d           d S )Nr   r   FAILEDr   r   r,   r   r.   r   textr   r   es      r   #test_sets_text_with_fault_name_onlyz1RPCErrorTests.test_sets_text_with_fault_name_only   sH    %%%%%%MM&-.//*****r   c                     ddl m} |                     |j        j        d          }|                     |j        d           d S )Nr   r   oopszFAILED: oopsr/   r1   s      r   (test_sets_text_with_fault_name_and_extraz6RPCErrorTests.test_sets_text_with_fault_name_and_extra"   sJ    %%%%%%MM&-.7700000r   c                     ddl m} |                     |j        j        d          }|                     t          |          d|j        j        z             d S )Nr   r   z/nonexistentz%code=%r, text='NO_FILE: /nonexistent')r   r   r,   r   NO_FILEr   strr1   s      r    test___str___shows_code_and_textz.RPCErrorTests.test___str___shows_code_and_text'   sc    %%%%%%MM&-/@@Q3fm6KK	 	 	 	 	r   r(   )r   r   r   r&   r,   r3   r6   r:   r   r   r   r!   r!      sd          3 3 3 3+ + +
1 1 1
    r   r!   c                       e Zd Zd ZdS )XMLRPCMarshallingTestsc                 4   ddl m} |                    d          }|                     |t	          j        dd                     t	          j        dd          }|                    |          }|                     |t	          j        |                     d S )Nr   r      )r>   T)methodresponsefoo)r   r   xmlrpc_marshalr   r   dumpsFault)r   r   datafaults       r   test_xmlrpc_marshalz*XMLRPCMarshallingTests.test_xmlrpc_marshal/   s    %%%%%%$$Q''ytDIIIJJJ5))$$U++yu5566666r   N)r   r   r   rF   r   r   r   r<   r<   .   s#        7 7 7 7 7r   r<   c                   b    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S )XMLRPCHandlerTestsc                     ddl m} |S )Nr   )supervisor_xmlrpc_handler)r%   rJ   )r   rJ   s     r   r&   z"XMLRPCHandlerTests._getTargetClass8   s    ??????((r   c                 >     |                                  ||          S r(   r)   )r   supervisordsubinterfacess      r   r,   zXMLRPCHandlerTests._makeOne<   s     %t##%%k=AAAr   c                     t                      }dt                      fg}|                     ||          }|                     |j        |           ddlm} |                     |j        j        |           d S )Nr   r   )RootRPCInterface)	r   r   r,   r   rL   r%   rO   rpcinterface	__class__)r   r   rM   handlerrO   s        r   	test_ctorzXMLRPCHandlerTests.test_ctor?   s    $&&
&(C(E(EFG--
M::,j999666666-79IJJJJJr   c                 R    G d d          }t                      }dt                      fg}|                     ||          }|                     |                     |d                    d           |                     |                     |d                    d           d S )Nc                       e Zd Zd ZdS )4XMLRPCHandlerTests.test_match.<locals>.DummyRequest2c                     || _         d S r(   )uri)r   rX   s     r   __init__z=XMLRPCHandlerTests.test_match.<locals>.DummyRequest2.__init__I   s    r   N)r   r   r   rY   r   r   r   DummyRequest2rV   H   s#            r   rZ   r   z/RPC2Tz/nopeF)r   r   r,   r   match)r   rZ   r   rM   rR   s        r   
test_matchzXMLRPCHandlerTests.test_matchG   s    	 	 	 	 	 	 	 	 %&&
&(C(E(EFG--
M::}}W'='=>>EEE}}W'='=>>FFFFFr   c                    t                      }dt                      fg}|                     ||          }t          j        dd          }t          dd d d           }|                    ||           |j        j        j	        }| 
                    t          |          d           | 
                    |d         d           | 
                    |d         d	           | 
                    t          |j                  d
           |j        d         }|                     t          j        t          j        |           d S )Nr   )abzsupervisor.noSuchMethod
/what/ever   z0XML-RPC method called: supervisor.noSuchMethod()zKXML-RPC method supervisor.noSuchMethod() returned fault: [1] UNKNOWN_METHODr>   r   )r   r   r,   r   rB   r   continue_requestoptionsloggerrD   r   len	producersassertRaisesrC   loads)r   r   rM   rR   rD   requestlogdataxml_responses           r   "test_continue_request_nosuchmethodz5XMLRPCHandlerTests.test_continue_request_nosuchmethodQ   s2   $&&
&(C(E(EFG--
M::z+DEE|T4>>  w///$+0Wq)))K	M 	M 	M!	# 	# 	# 	W.//333(+)/9?LIIIIIr   c                 x   t                      }dt                      fg}|                     ||          }t          j        dd          }t          dd d d           }|                    ||           |j        j        j	        }| 
                    t          |          d           | 
                    |d         d           | 
                    |d         d	           | 
                    t          |j                  d
           |j        d         }t          j        |          }ddlm}	 | 
                    |d         d         |	           | 
                    |j        d           | 
                    |j        d         d           | 
                    |j        d         t          |                     d S )Nr   r   zsupervisor.getAPIVersionr`   ra   rb   1XML-RPC method called: supervisor.getAPIVersion()rc   ?XML-RPC method supervisor.getAPIVersion() returned successfullyr>   r   API_VERSIONTContent-Typetext/xmlContent-Length)r   r   r,   r   rB   r   rd   re   rf   rD   r   rg   rh   rj   supervisor.rpcinterfacers   _doneheaders
r   r   rM   rR   rD   rk   rl   rm   responsers   s
             r   #test_continue_request_methodsuccessz6XMLRPCHandlerTests.test_continue_request_methodsuccessc   s   $&&
&(C(E(EFG--
M::r#=>>|T4>>  w///$+0Wq)))B	D 	D 	DM	O 	O 	OW.//333(+?<00777777!Q555---8*EEE)9:C<M<MNNNNNr   c                 R   t                      }dt                      fg}|                     ||          }d}t          dd d d           }|                    ||           |j        j        j        }|                     t          |          d           |                     |d         d           |                     |d         d           |                     t          |j
                  d	           |j
        d
         }t          j        |          }d
dlm}	 |                     |d
         d
         |	           |                     |j        d           |                     |j        d         d           |                     |j        d         t          |                     d S )Nr   zp<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>supervisor.getAPIVersion</methodName></methodCall>r`   ra   rb   rp   rc   rq   r>   r   rr   Trt   ru   rv   )r   r   r,   r   rd   re   rf   rD   r   rg   rh   r   rj   rw   rs   rx   ry   rz   s
             r   *test_continue_request_no_params_in_requestz=XMLRPCHandlerTests.test_continue_request_no_params_in_requesty   s   $&&
&(C(E(EFG--
M:: |T4>>  w///$+0Wq)))B	D 	D 	DM	O 	O 	OW.//333(+?<00777777!Q555---8*EEE)9:C<M<MNNNNNr   c                 n   t                      }dt                      fg}|                     ||          }d}t          dd d d           }|                    ||           |j        j        j        }|                     t          |          d           | 
                    |d                             d                     | 
                    t          |          |d         v            | 
                    |d                             d                     |                     |j        d           d S )	Nr   zX<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName></methodName></methodCall>r`   r>   r   XML-RPC request datazis invalid: no method name  r   r   r,   r   rd   re   rf   rD   r   rg   
assertTrue
startswithreprendswith_errorr   r   rM   rR   rD   rk   rl   s          r   1test_continue_request_400_if_method_name_is_emptyzDXMLRPCHandlerTests.test_continue_request_400_if_method_name_is_empty   s   $&&
&(C(E(EFG--
M::D|T4>>  w///$+0Wq)))
--.DEEFFFT

gaj0111
++,HIIJJJ-----r   c                 n   t                      }dt                      fg}|                     ||          }d}t          dd d d           }|                    ||           |j        j        j        }|                     t          |          d           | 
                    |d                             d                     | 
                    t          |          |d         v            | 
                    |d                             d                     |                     |j        d           d S )	Nr   z#this is not an xml-rpc request bodyr`   r>   r   r   is invalid: unmarshallabler   r   r   s          r   1test_continue_request_400_if_loads_raises_not_xmlzDXMLRPCHandlerTests.test_continue_request_400_if_loads_raises_not_xml   s   $&&
&(C(E(EFG--
M::4|T4>>  w///$+0Wq)))
--.DEEFFFT

gaj0111
++,HIIJJJ-----r   c                 n   t                      }dt                      fg}|                     ||          }d}t          dd d d           }|                    ||           |j        j        j        }|                     t          |          d           | 
                    |d                             d                     | 
                    t          |          |d         v            | 
                    |d                             d                     |                     |j        d           d S )	Nr   z&<methodName></methodName><junk></junk>r`   r>   r   r   r   r   r   r   s          r   3test_continue_request_400_if_loads_raises_weird_xmlzFXMLRPCHandlerTests.test_continue_request_400_if_loads_raises_weird_xml   s   $&&
&(C(E(EFG--
M::7|T4>>  w///$+0Wq)))
--.DEEFFFT

gaj0111
++,HIIJJJ-----r   c                    t                      }dt                      fg}|                     ||          }t          j        dd          }t          dd d d           }|                    ||           |j        j        j	        }| 
                    t          |          d           | 
                    |d         d           |                     d|d	         v            |                     t          |          |d	         v            |                     d
|d	         v            |                     d|d	         v            | 
                    |j        d           d S )Nr   r   zsupervisor.raiseErrorr`   ra   r   z.XML-RPC method called: supervisor.raiseError()unexpected exceptionr>   	TracebackzValueError: error  r   r   r,   r   rB   r   rd   re   rf   rD   r   rg   r   r   r   r   s          r   <test_continue_request_500_if_rpcinterface_method_call_raiseszOXMLRPCHandlerTests.test_continue_request_500_if_rpcinterface_method_call_raises   sO   $&&
&(C(E(EFG--
M::r#:;;|T4>>  w///$+0Wq)))?	A 	A 	A.'!*<===T

gaj0111wqz1222+wqz9:::-----r   c                    t                      }dt                      fg}|                     ||          }t          j        dd          }t          dd d d           }|                    ||           |j        j        j	        }| 
                    t          |          d           | 
                    |d         d           | 
                    |d         d	           |                     d
|d         v            |                     t          |          |d         v            |                     d|d         v            |                     d|d         v            | 
                    |j        d           d S )Nr   r   z"supervisor.getXmlRpcUnmarshallabler`      r   z;XML-RPC method called: supervisor.getXmlRpcUnmarshallable()r>   zIXML-RPC method supervisor.getXmlRpcUnmarshallable() returned successfullyr   ra   r   zTypeError: cannot marshalr   r   r   s          r   0test_continue_request_500_if_xmlrpc_dumps_raiseszCXMLRPCHandlerTests.test_continue_request_500_if_xmlrpc_dumps_raises   st   $&&
&(C(E(EFG--
M::r#GHH|T4>>  w///$+0Wq)))L	N 	N 	N'	( 	( 	( 	.'!*<===T

gaj0111wqz12223wqzABBB-----r   c                     G d dt                     }t                      }dt                      fd |            fg}|                     ||          }t	          j        dd          }t          dd d d           }|                    ||           |j        j	        j
        }|                     t          |          d           |                     |d	         d
           |                     |d         d           |                     t          |j                  d           |                     |j        d           d S )Nc                       e Zd Zd ZdS )UXMLRPCHandlerTests.test_continue_request_value_is_function.<locals>.DummyRPCNamespacec                     d }d|_         |S )Nc                     dS Nr>   r   r   s    r   innerzhXMLRPCHandlerTests.test_continue_request_value_is_function.<locals>.DummyRPCNamespace.foo.<locals>.inner   s    1r   g?)delay)r   r   s     r   r@   zYXMLRPCHandlerTests.test_continue_request_value_is_function.<locals>.DummyRPCNamespace.foo   s      !r   Nr   r   r   r@   r   r   r   DummyRPCNamespacer      s#            r   r   r   ns1r   ns1.foor`   ra   rb   z XML-RPC method called: ns1.foo()rc   z.XML-RPC method ns1.foo() returned successfullyr   F)objectr   r   r,   r   rB   r   rd   re   rf   rD   r   rg   rh   rx   )r   r   r   rM   rR   rD   rk   rl   s           r   'test_continue_request_value_is_functionz:XMLRPCHandlerTests.test_continue_request_value_is_function   sY   	 	 	 	 	 	 	 	 %&&
&(C(E(EF "3"3"5"568--
M::r9--|T4>>  w///$+0Wq)))1	3 	3 	3<	> 	> 	>W.//333.....r   c                    d}t                      }dt                      fg}|                     ||          }|                    |          }|\  }}dd l}|                     |d           |                     |d         d           |                     |d         d           |                     |d         d	           |                     |d
         d           |                     |d         d	           |                     |d         d           |                     |d         d           |                     |d         |                    dddddd                     |                     |d         d           |                     |d         ddd           |                     |d         g d           |                     |d         ddi gi           d S )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   r   zexamples.getStateName)   r>   r@   ra    r   bar      T   g!rhm(   i           7   zyou can't read this!	   abc)jk
   )   r   def"      r   )r   r   r,   rj   datetimer   )	r   sr   rM   rR   resultparamsmethodr   s	            r   test_iterparse_loads_methodcallz2XMLRPCHandlerTests.test_iterparse_loads_methodcall   s   ?@ %&&
&(C(E(EFG--
M::q!!!8999B'''E***B'''E***B'''D)))G,,,H$5$5dAr2q"$M$MNNN$:;;;!%$8$8999%;%;%;<<<cAr7^44444r   N)r   r   r   r&   r,   rS   r\   rn   r|   r~   r   r   r   r   r   r   r   r   r   r   rH   rH   7   s        ) ) )B B BK K KG G GJ J J$O O O,O O O2. . .. . .. . .. . .". . .(/ / /.S5 S5 S5 S5 S5r   rH   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TraverseTestsc                     ddl m}  G d d          } G d d          } |            } |            |_        |                     |j        |j        |dg            d S )Nr   r   c                       e Zd ZdS )FTraverseTests.test_security_disallows_underscore_methods.<locals>.RootNr   r   r   r   r   r   Rootr   Q          Dr   r   c                       e Zd Zd ZdS )CTraverseTests.test_security_disallows_underscore_methods.<locals>.Ac                     dS NTr   r   s    r   _dangerzKTraverseTests.test_security_disallows_underscore_methods.<locals>.A._dangerT      tr   N)r   r   r   r   r   r   r   Ar   S  #            r   r   z	a._dangerr   r   r^   ri   r$   traverser   r   r   r   roots        r   *test_security_disallows_underscore_methodsz8TraverseTests.test_security_disallows_underscore_methodsO  s    %%%%%%	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 tvv&/6?+r	# 	# 	# 	# 	#r   c                     ddl m}  G d d          } G d d          } G d d          } |            } |            |_         |            |j        _        |                     |j        |j        |d	g            d S )
Nr   r   c                       e Zd ZdS )DTraverseTests.test_security_disallows_object_traversal.<locals>.RootNr   r   r   r   r   r   ]  r   r   r   c                       e Zd ZdS )ATraverseTests.test_security_disallows_object_traversal.<locals>.ANr   r   r   r   r   r   _  r   r   r   c                       e Zd Zd ZdS )ATraverseTests.test_security_disallows_object_traversal.<locals>.Bc                     dS r   r   r   s    r   dangerzHTraverseTests.test_security_disallows_object_traversal.<locals>.B.dangerb  r   r   N)r   r   r   r   r   r   r   Br   a  r   r   r   z
a.b.dangerr   r   r^   r_   ri   r$   r   r   r   r   r   r   r   s         r   (test_security_disallows_object_traversalz6TraverseTests.test_security_disallows_object_traversal[  s    %%%%%%	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	 tvv133&/6?,	$ 	$ 	$ 	$ 	$r   c                     ddl m}  G d d          } |            }|                     |j        |j        |dd            d S )Nr   r   c                       e Zd ZdS )9TraverseTests.test_namespace_name_not_found.<locals>.RootNr   r   r   r   r   r   l  r   r   r   znotfound.hello)r   r   ri   r$   r   )r   r   r   r   s       r   test_namespace_name_not_foundz+TraverseTests.test_namespace_name_not_foundj  sy    %%%%%%	 	 	 	 	 	 	 	tvv&/6?"D	* 	* 	* 	* 	*r   c                     ddl m}  G d d          } G d d          } |            } |            |_        |                     |j        |j        |dg            d S )Nr   r   c                       e Zd ZdS )6TraverseTests.test_method_name_not_found.<locals>.RootNr   r   r   r   r   r   t  r   r   r   c                       e Zd ZdS )3TraverseTests.test_method_name_not_found.<locals>.ANr   r   r   r   r   r   v  r   r   r   z
a.notfoundr   r   s        r   test_method_name_not_foundz(TraverseTests.test_method_name_not_foundr  s    %%%%%%	 	 	 	 	 	 	 		 	 	 	 	 	 	 	tvv&/6?,	$ 	$ 	$ 	$ 	$r   c                     ddl m}  G d d          } G d d          } G d d          } |            } |            |_         |            |j        _        |                     |j        |j        |d	g            d S )
Nr   r   c                       e Zd ZdS )GTraverseTests.test_method_name_exists_but_is_not_a_method.<locals>.RootNr   r   r   r   r   r     r   r   r   c                       e Zd ZdS )DTraverseTests.test_method_name_exists_but_is_not_a_method.<locals>.ANr   r   r   r   r   r     r   r   r   c                       e Zd ZdS )DTraverseTests.test_method_name_exists_but_is_not_a_method.<locals>.BNr   r   r   r   r   r     r   r   r   za.br   r   s         r   +test_method_name_exists_but_is_not_a_methodz9TraverseTests.test_method_name_exists_but_is_not_a_method}  s    %%%%%%	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	tvv133&/6?%	 	 	 	 	r   c                     ddl m}  G d d          } G d d          } |            } |            |_        |                     |j        |j        |ddd	g           d S )
Nr   r   c                       e Zd ZdS )+TraverseTests.test_bad_params.<locals>.RootNr   r   r   r   r   r     r   r   r   c                       e Zd Zd ZdS )(TraverseTests.test_bad_params.<locals>.Ac                     d|z  S NzHello %sr   r   names     r   helloz.TraverseTests.test_bad_params.<locals>.A.hello      !D((r   Nr   r   r   r   r   r   r   r   r     #        ) ) ) ) )r   r   a.hellotherer+   r   r   s        r   test_bad_paramszTraverseTests.test_bad_params  s    %%%%%%	 	 	 	 	 	 	 		) 	) 	) 	) 	) 	) 	) 	) tvv&/6?)gw/	1 	1 	1 	1 	1r   c                     ddl m}  G d d          } G d d          } |            } |            |_        |                    |ddg          }|                     |d	           d S )
Nr   r   c                       e Zd ZdS )(TraverseTests.test_success.<locals>.RootNr   r   r   r   r   r    r   r   r   c                       e Zd Zd ZdS )%TraverseTests.test_success.<locals>.Ac                     d|z  S r   r   r   s     r   r   z+TraverseTests.test_success.<locals>.A.hello  r   r   Nr  r   r   r   r   r
    r  r   r   r  r  zHello there)r   r   r^   r   r   )r   r   r   r   r   r   s         r   test_successzTraverseTests.test_success  s    %%%%%%	 	 	 	 	 	 	 		) 	) 	) 	) 	) 	) 	) 	) tvvy7)<</////r   N)
r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   N  s}        
# 
# 
#$ $ $* * *	$ 	$ 	$  
1 
1 
1
0 
0 
0 
0 
0r   r   c                   J    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S )SupervisorTransportTestsc                     ddl m} |S )Nr   )SupervisorTransport)r%   r  )r   r  s     r   r&   z(SupervisorTransportTests._getTargetClass  s    999999""r   c                 6     |                                  |i |S r(   r)   r   argkws      r   r,   z!SupervisorTransportTests._makeOne  s#    %t##%%s1b111r   c                 $   ddl m} |                     ddd          }|                                }|                     t          ||j                             |                     |j        d           |                     |j	        d           d S )Nr   r   userpasszunix:///foo/bar	localhostz/foo/bar)
r   r   r,   _get_connectionr   
isinstanceUnixStreamHTTPConnectionr   host
socketfile)r   r   	transportconns       r   test_ctor_unixz'SupervisorTransportTests.test_ctor_unix  s    %%%%%%MM&&2CDD	((**
4)HIIJJJK000*55555r   c                 L    |                      t          | j        ddd           d S )Nr  r  zunknown:///foo/bar)ri   
ValueErrorr,   r   s    r   test_ctor_unknownz*SupervisorTransportTests.test_ctor_unknown  s2    *M66+?	 	 	 	 	r   c                 "   |                      ddd          }|                                }|                     t          |t          j                             |                     |j        d           |                     |j        d           d S )Nr  r  zhttp://127.0.0.1:9001/	127.0.0.1i)#  	r,   r  r   r  r   HTTPConnectionr   r  portr   r  r  s      r   test__get_connection_http_9001z7SupervisorTransportTests.test__get_connection_http_9001  s~    MM&&2JKK	((**
4)?@@AAAK000D)))))r   c                 "   |                      ddd          }|                                }|                     t          |t          j                             |                     |j        d           |                     |j        d           d S )Nr  r  http://127.0.0.1/r%  P   r&  r)  s      r   test__get_connection_http_80z5SupervisorTransportTests.test__get_connection_http_80  s~    MM&&2EFF	((**
4)?@@AAAK000B'''''r   c                 *   |                      ddd          }t          dd          fd}||_        |                     t          j        |j        ddd           |                     |j        d            |                     j	        d	           d S )
Nr  r  r,  r   r   c                       S r(   r   
dummy_conns   r   getconnzGSupervisorTransportTests.test_request_non_200_response.<locals>.getconn  	    r   r  /T)
r,   DummyConnectionr  ri   r   ProtocolErrorrk   r   
connectionclosedr   r  r3  r2  s      @r   test_request_non_200_responsez6SupervisorTransportTests.test_request_non_200_response  s    MM&&2EFF	$S"--
	 	 	 	 	$+	!)1#+[#r	C 	C 	C-t444*D11111r   c                 (   |                      ddd          }t          dd          fd}||_        |                     t          j        |j        ddd           |                     |j        d            |                     j	        d	           |                     j
        d
         d           |                     j
        d         d           |                     j
        d         d           |                     j
        d         d         d           |                     j
        d         d         d           |                     j
        d         d         d           |                     j
        d         d         d           d S )Nr  r  r,  r   r   c                       S r(   r   r1  s   r   r3  zCSupervisorTransportTests.test_request_400_response.<locals>.getconn  r4  r   r  r5  Tr   POSTr>   ra   r   r   rv   0rt   ru   AuthorizationBasic dXNlcjpwYXNzAccept)r,   r6  r  ri   r   r7  rk   r   r8  r9  requestargsr:  s      @r   test_request_400_responsez2SupervisorTransportTests.test_request_400_response  s   MM&&2EFF	$S"--
	 	 	 	 	$+	!)1#+[#r	C 	C 	C-t444*D111/2F;;;/2C888/2C888/23CDcJJJ/2>BJOOO/2?C-	/ 	/ 	//28<jIIIIIr   c                 6   |                      ddd          }d}t          d|          fd}||_        |                    ddd	          }|                     |j                   |                     j        d
           |                     j        d         d           |                     j        d         d           |                     j        d         d           |                     j        d         d         d           |                     j        d         d         d           |                     j        d         d         d           |                     j        d         d         d           |                     |d           d S )Nr  r  r,  z<?xml version="1.0"?>
        <methodResponse>
        <params>
        <param>
        <value><string>South Dakota</string></value>
        </param>
        </params>
        </methodResponse>   c                       S r(   r   r1  s   r   r3  zCSupervisorTransportTests.test_request_200_response.<locals>.getconn  r4  r   r  r5  r   Fr   r>  r>   ra   r   r   rv   r?  rt   ru   r@  rA  rB  )zSouth Dakota)r,   r6  r  rk   r   r8  r9  rC  )r   r  r{   r3  r   r2  s        @r   test_request_200_responsez2SupervisorTransportTests.test_request_200_response  s   MM&&2EFF	 %S(33
	 	 	 	 	$+	!"";R88-z:::*E222/2F;;;/2C888/2C888/23CDcJJJ/2>BJOOO/2?C-	/ 	/ 	//28<jIII!233333r   c                     |                      ddd          }t          dd          fd}||_        |                    ddd	           |                                 |                     j                   d S )
Nr  r  r,  rF  zH<?xml version="1.0"?>
        <methodResponse><params/></methodResponse>c                       S r(   r   r1  s   r   r3  z4SupervisorTransportTests.test_close.<locals>.getconn  r4  r   r  r5  r   )r,   r6  r  rk   closer   r9  r:  s      @r   
test_closez#SupervisorTransportTests.test_close  s    MM&&2EFF	$S +6 7 7
	 	 	 	 	$+	!+sB///
)*****r   N)r   r   r   r&   r,   r   r#  r*  r.  r;  rD  rH  rL  r   r   r   r  r    s        # # #2 2 26 6 6  
* * *( ( (	2 	2 	2J J J&4 4 46	+ 	+ 	+ 	+ 	+r   r  c                   ^    e Zd Zd ZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd ZdS )TestDeferredXMLRPCResponsec                     ddl m} |S )Nr   )DeferredXMLRPCResponse)r%   rP  )r   rP  s     r   r&   z*TestDeferredXMLRPCResponse._getTargetClass  s    <<<<<<%%r   Nc                     |t          d d d d d           }|t                      }d|_         |                                 ||          S r   )r   Dummyr   r&   )r   rk   callbacks      r   r,   z#TestDeferredXMLRPCResponse._makeOne  sP    ?"4tT4@@GwwHHN%t##%%gx888r   c                 6   t                      }d|_        |                     d|          }|                     |j        |           |                     |j        d           |                     |j        d           |                     |j        d           d S )Nr>   rk   )rk   rS  g      ?F)rR  r   r,   r   rS  rk   finishedr   rS  insts      r   rS   z$TestDeferredXMLRPCResponse.test_ctor  s    77}}Y}BB111S)))y111.....r   c                     |                                  }d|_        |                                }|                     |d           d S )NTr   )r,   rU  morer   r   rW  r   s      r   test_more_finishedz-TestDeferredXMLRPCResponse.test_more_finished   s?    }}"%%%%%r   c                     ddl m fd}d|_        |                     |          }|                     |                                           d S )Nr   NOT_DONE_YETc                       S r(   r   r]  s   r   rS  zTTestDeferredXMLRPCResponse.test_more_callback_returns_not_done_yet.<locals>.callback(  s	    r   r>   rS  )supervisor.httpr^  r   r,   r   rY  )r   rS  rW  r^  s      @r   'test_more_callback_returns_not_done_yetzBTestDeferredXMLRPCResponse.test_more_callback_returns_not_done_yet&  sl    000000	  	  	  	  	 }}h}//l33333r   c                    ddl mm fd}d|_        |                     |          }|                     |                                d            |                     t          |j        j	                  d           | 
                    d|j        j	        d         v            | 
                    |j                   d S )Nr   r$   r   c                  $      j                   r(   )UNKNOWN_METHODr   r$   s   r   rS  zOTestDeferredXMLRPCResponse.test_more_callback_raises_RPCError.<locals>.callback0  s    (60111r   r>   r`  rf  )r%   r$   r   r   r,   r   rY  rg   rk   rh   r   rU  )r   rS  rW  r   r$   s      @@r   "test_more_callback_raises_RPCErrorz=TestDeferredXMLRPCResponse.test_more_callback_raises_RPCError.  s    66666666	2 	2 	2 	2 	2 	2}}h}//d+++T\344a888(DL,B1,EEFFF&&&&&r   c                 r   d }d|_         |                     |          }|                     |                                d            |                     t	          |j        j                  d           |                     d|j        j        d         v            |                     |j                   d S )Nc                      dS )Nr   r   r   r   r   rS  zMTestDeferredXMLRPCResponse.test_more_callback_returns_value.<locals>.callback:  s    5r   r>   r`  r   r   )	r   r,   r   rY  rg   rk   rh   r   rU  rV  s      r    test_more_callback_returns_valuez;TestDeferredXMLRPCResponse.test_more_callback_returns_value9  s    	 	 	}}h}//d+++T\344a888!7!::;;;&&&&&r   c                    d }d|_         |                     |          }|                     |                                d            |                     |j        j        d           |                     |j                   |j        j        j	        j
        j        }|                     t          |          d           |d         \  }}|                     |d           |                     d|v            d S )Nc                       t          d          Nr@   )r"  r   r   r   rS  z[TestDeferredXMLRPCResponse.test_more_callback_raises_unexpected_exception.<locals>.callbackD  s    U###r   r>   r`  r   r   zXML-RPC response callback errorr   )r   r,   r   rY  rk   r   r   rU  channelserverrf   loggedrg   )r   rS  rW  rq  srcmsgs         r   .test_more_callback_raises_unexpected_exceptionzITestDeferredXMLRPCResponse.test_more_callback_raises_unexpected_exceptionC  s    	$ 	$ 	$}}h}//d+++,c222&&&%,3:Va(((!9S?@@@s*+++++r   c                 T   |                                  }d|j        _        |j        j                            d           |                    d           |                     t          |j        j                  d           |                     |j        j	        d         d           d S )N1.0zConnection: keep-aliver   r>   
Connectionz
Keep-Alive)
r,   rk   versionheaderappendgetresponser   rg   rh   ry   r   rW  s     r   'test_getresponse_http_10_with_keepalivezBTestDeferredXMLRPCResponse.test_getresponse_http_10_with_keepaliveQ  s    }}$""#;<<<T\344a888-l;\JJJJJr   c                    |                                  }d|j        _        |                    d           |                     t          |j        j                  d           |                     |j        j        d         d           d S )Nrv  r   r>   rw  rK  r,   rk   rx  r{  r   rg   rh   ry   r|  s     r   %test_getresponse_http_10_no_keepalivez@TestDeferredXMLRPCResponse.test_getresponse_http_10_no_keepaliveY  sv    }}$T\344a888-l;WEEEEEr   c                    |                                  }d|j        _        |                    d           |                     t          |j        j                  d           |                     d|j        j        v           d S )N1.1r   r>   rw  )	r,   rk   rx  r{  r   rg   rh   r   ry   r|  s     r   &test_getresponse_http_11_without_closezATestDeferredXMLRPCResponse.test_getresponse_http_11_without_close`  sr    }}$T\344a888DL,@@AAAAAr   c                 T   |                                  }|j        j                            d           d|j        _        |                    d           |                     t          |j        j                  d           |                     |j        j	        d         d           d S )NzConnection: closer  r   r>   rw  rK  )
r,   rk   ry  rz  rx  r{  r   rg   rh   ry   r|  s     r   #test_getresponse_http_11_with_closez>TestDeferredXMLRPCResponse.test_getresponse_http_11_with_closeg  s    }}""#6777$T\344a888-l;WEEEEEr   c                    |                                  }d |j        _        |                    d           |                     t          |j        j                  d           |                     |j        j        d         d           d S )Nr   r>   rw  rK  r  r|  s     r   test_getresponse_http_unknownz8TestDeferredXMLRPCResponse.test_getresponse_http_unknowno  sv    }}#T\344a888-l;WEEEEEr   )NN)r   r   r   r&   r,   rS   r[  rb  rh  rk  rt  r}  r  r  r  r  r   r   r   rN  rN  
  s        & & &9 9 9 9/ / /& & &4 4 4	' 	' 	'' ' ', , ,K K KF F FB B BF F FF F F F Fr   rN  c                   v    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestSystemNamespaceRPCInterfacer   c                 $    ddl m}  ||          S )Nr   )SystemNamespaceRPCInterface)r%   r  )r   
namespacesr  s      r   r,   z(TestSystemNamespaceRPCInterface._makeOnew  s%    AAAAAA**:666r   c                     |                                  }|                                }|                     |g d           d S )N)system.listMethodssystem.methodHelpsystem.methodSignaturesystem.multicall)r,   listMethodsr   rZ  s      r   test_listMethods_gardenpathz;TestSystemNamespaceRPCInterface.test_listMethods_gardenpath{  sT    }}!!##  	 	 	 	 	r   c                      G d dt                     } |            }|                     d|fg          }|                                }|                     |g d           d S )Nc                       e Zd Zd Zd ZdS )_TestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrs.<locals>.DummyNamespacec                     d S r(   r   r   s    r   r@   zcTestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrs.<locals>.DummyNamespace.foo        r   c                     d S r(   r   r   s    r   _barzdTestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrs.<locals>.DummyNamespace._bar  r  r   N)r   r   r   r@   r  r   r   r   DummyNamespacer    s"             r   r  r   )r   r  r  r  r  )r   r,   r  r   )r   r  r   rW  r   s        r   'test_listMethods_omits_underscore_attrszGTestSystemNamespaceRPCInterface.test_listMethods_omits_underscore_attrs  s    	! 	! 	! 	! 	!V 	! 	! 	! n}}ucl^,,!!##  	 	 	 	 	r   c                     |                                  }|                    d          }|                     d|v            d S )Nr  array)r,   
methodHelpr   rZ  s      r   test_methodHelp_known_methodz<TestSystemNamespaceRPCInterface.test_methodHelp_known_method  s>    }}!5666)*****r   c                 r    ddl m} |                                 }|                     ||j        d           d S Nr   r#   zwont.be.found)r%   r$   r,   ri   r  r   r$   rW  s      r   test_methodHelp_unknown_methodz>TestSystemNamespaceRPCInterface.test_methodHelp_unknown_method  sA    ......}}(DO_EEEEEr   c                     |                                  }|                    d          }|                     |ddg           d S )Nr  r  string)r,   methodSignaturer   rZ  s      r   !test_methodSignature_known_methodzATestSystemNamespaceRPCInterface.test_methodSignature_known_method  sD    }}%%&>??'8!455555r   c                 r    ddl m} |                                 }|                     ||j        d           d S r  )r%   r$   r,   ri   r  r  s      r   #test_methodSignature_unknown_methodzCTestSystemNamespaceRPCInterface.test_methodSignature_unknown_method  sB    ......}}(D$8/JJJJJr   c                     ddl m}  G d dt                    } |            }|                     d|fg          }|                     ||j        d           d S )Nr   r#   c                       e Zd Zd ZdS )YTestSystemNamespaceRPCInterface.test_methodSignature_with_bad_sig.<locals>.DummyNamespacec                     dS )z @param string name The thingNr   r   s    r   r@   z]TestSystemNamespaceRPCInterface.test_methodSignature_with_bad_sig.<locals>.DummyNamespace.foo  r  r   Nr   r   r   r   r  r    s#        4 4 4 4 4r   r  r   r   )r%   r$   r   r,   ri   r  )r   r$   r  r   rW  s        r   !test_methodSignature_with_bad_sigzATestSystemNamespaceRPCInterface.test_methodSignature_with_bad_sig  s    ......	4 	4 	4 	4 	4V 	4 	4 	4 n}}ucl^,,(D$8)DDDDDr   c                     ddl m} |                                 }ddig}|                    |          }|                     ||j        ddg           d S )Nr   r   
methodNamer  z:INCORRECT_PARAMETERS: Recursive system.multicall forbidden	faultCodefaultStringr%   r   r,   	multicallr   INCORRECT_PARAMETERSr   r   rW  callsresultss        r   #test_multicall_faults_for_recursionzCTestSystemNamespaceRPCInterface.test_multicall_faults_for_recursion  s    ,,,,,,}}123..''!6;= = >	 	 	 	 	r   c                     ddl m} |                                 }i g}|                    |          }|                     ||j        ddg           d S )Nr   r  z#INCORRECT_PARAMETERS: No methodNamer  r  r  s        r   ,test_multicall_faults_for_missing_methodNamezLTestSystemNamespaceRPCInterface.test_multicall_faults_for_missing_methodName  sy    ,,,,,,}}..''!6BD D E	 	 	 	 	r   c                     ddl m} |                                 }ddig}|                    |          }|                     ||j        ddg           d S )Nr   r  r  zbad.stopProcessrf  r  )r%   r   r,   r  r   rf  r  s        r   2test_multicall_faults_for_methodName_bad_namespacezRTestSystemNamespaceRPCInterface.test_multicall_faults_for_methodName_bad_namespace  s}    ,,,,,,}} 123..''!0-/ / 0	 	 	 	 	r   c                     ddl m}  G d dt                    } |            }|                     d|fg          }ddig}|                    |          }|                     ||j        dd	g           d S )
Nr   r  c                       e Zd ZdS )oTestSystemNamespaceRPCInterface.test_multicall_faults_for_methodName_good_ns_bad_method.<locals>.DummyNamespaceNr   r   r   r   r  r    r   r   r  r   r  zns1.badrf  r  )r%   r   r   r,   r  r   rf  )r   r   r  r   rW  r  r  s          r   7test_multicall_faults_for_methodName_good_ns_bad_methodzWTestSystemNamespaceRPCInterface.test_multicall_faults_for_methodName_good_ns_bad_method  s    ,,,,,,	 	 	 	 	V 	 	 	n}}ucl^,,	*+..''!0-/ / 0	 	 	 	 	r   c                     |                                  }g }|                    |          }|                     |g            d S r(   )r,   r  r   )r   rW  r  r  s       r   4test_multicall_returns_empty_results_for_empty_callszTTestSystemNamespaceRPCInterface.test_multicall_returns_empty_results_for_empty_calls  sA    }}..''"%%%%%r   c                      G d dt                     } |            }|                     d|fg          }ddgdddgdddgdg}|                    |          }|                     |g d	           d S )
Nc                       e Zd Zd ZdS )nTestSystemNamespaceRPCInterface.test_multicall_performs_noncallback_functions_serially.<locals>.DummyNamespacec                     |S )z  @param string name Process namer   r   s     r   sayzrTestSystemNamespaceRPCInterface.test_multicall_performs_noncallback_functions_serially.<locals>.DummyNamespace.say  s    r   N)r   r   r   r  r   r   r   r  r    s#            r   r  r   zns1.sayAlvinr  r   SimonTheodore)r  r  r  )r   r,   r  r   )r   r  r   rW  r  r  s         r   6test_multicall_performs_noncallback_functions_seriallyzVTestSystemNamespaceRPCInterface.test_multicall_performs_noncallback_functions_serially  s    	 	 	 	 	V 	 	 	 n}}ucl^,,$	::$	::$==

 ..''"@"@"@AAAAAr   c                 8  	
 dd l 
ddlm	m  G 	
fddt                    } |            }|                     d|fg          }ddiddig}|                    |          }j        d	d
}j        dt          z  d
}| 
                    |||g           d S )Nr   rd  c                   &    e Zd Z fdZfdZdS )eTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptions.<locals>.DummyNamespacec                 &     j         d          rn  BAD_NAME)r   r   r$   s    r   bad_nameznTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptions.<locals>.DummyNamespace.bad_name  s    hv666r   c                 ,    t          j                  r(   OSErrorENOENT)r   errnos    r   os_errorznTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptions.<locals>.DummyNamespace.os_error   s    el+++r   Nr   r   r   r  r  r   r$   r  s   r   r  r    sL        7 7 7 7 7 7, , , , , , ,r   r  r   r  ns1.bad_namens1.os_errorBAD_NAME: foor  FAILED: %s:2)r  r%   r$   r   r   r,   r  r  r.   r  r   )r   r  r   rW  r  r  r  r  r   r$   r  s           @@@r   -test_multicall_catches_noncallback_exceptionszMTestSystemNamespaceRPCInterface.test_multicall_catches_noncallback_exceptions  s    66666666	, 	, 	, 	, 	, 	, 	, 	, 	,V 	, 	, 	,
 n}}ucl^,,/,1OP..''!'#24 4!'#1G#;= =8X"677777r   c                 l  
 dd l ddlmm
 ddlm}  G 
fddt                    } |            }|                     d|fg          }ddidd	ig}|                    |          }|}||u r |            }||u 
j	        d
d}
j
        dt          z  d}	|                     |||	g           d S )Nr   rd  r]  c                   &    e Zd Z fdZfdZdS )bTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespacec                     fd}|S )Nc                  &      j         d          rn  r  rg  s   r   r   zzTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.bad_name.<locals>.inner  s    "(6?E:::r   r   )r   r   r   r$   s     r   r  zkTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.bad_name  s&    ; ; ; ; ; ;r   c                     fd}|S )Nc                  ,    t           j                  r(   r  )r  s   r   r   zzTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.os_error.<locals>.inner  s    !%,///r   r   )r   r   r  s     r   r  zkTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions.<locals>.DummyNamespace.os_error  s!    0 0 0 0 0r   Nr  r  s   r   r  r    sL                   r   r  r   r  r  r  r  r  r  )r  r%   r$   r   ra  r^  r   r,   r  r  r.   r  r   )r   r^  r  r   rW  r  rS  r  r  r  r   r$   r  s             @@@r   *test_multicall_catches_callback_exceptionszJTestSystemNamespaceRPCInterface.test_multicall_catches_callback_exceptions  s9   66666666000000	 	 	 	 	 	 	 	 	V 	 	 	 n}}ucl^,,/,1OP>>%((%%hjjG %% "(#24 4!'#1G#;= =8X"677777r   c                     ddl m  G fddt                    } |            }|                     d|fg          }dddid	d
ddid	g}|                    |          }}|u r |            }|u |                     |ddg           d S )Nr   r]  c                   *    e Zd Z fdZ fdZd ZdS )kTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespacec                 .    dg| _         dg| _        d S )Nstop resultstart result)stop_resultsstart_results)r   r^  s    r   rY   ztTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.__init__+  s(    %1< -%1!&4%5"""r   c                       fd}|S )Nc                  R    j                             d          } | urd_        | S )Nr   T)r  popstopped)r   r^  r   s    r   r   zTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.stopProcess.<locals>.inner0  s0    !.22155F\11'+!Mr   r   )r   r   r   r^  s   `  r   stopProcesszwTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.stopProcess/  s)    " " " " " "
 r   c                       fd}|S )Nc                  d     j         st          d           j                            d          S )NzThis should not raiser   )r  	Exceptionr  r  r   s   r   r   zTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.startProcess.<locals>.inner7  s4    < A'(?@@@-11!444r   r   )r   r   r   s   `  r   startProcesszxTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially.<locals>.DummyNamespace.startProcess6  s#    5 5 5 5 5 r   N)r   r   r   rY   r  r  r]  s   r   r  r  *  sV        6 6 6 6 6        r   r  r   zns1.stopProcessr   r@   r  zns1.startProcessr  r  )ra  r^  r   r,   r  r   )r   r  r   rW  r  rS  r  r^  s          @r   3test_multicall_performs_callback_functions_seriallyzSTestSystemNamespaceRPCInterface.test_multicall_performs_callback_functions_serially(  s    000000	 	 	 	 	 	 	V 	 	 	$ n}}ucl^,, 1#UO- - 2#UO- -. >>%((%%hjjG %%=."ABBBBBr   N)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  v  s)       7 7 7 7
 
 
  "+ + +
F F F
6 6 6
K K K
E E E
 
 
	 	 		 	 	  & & &B B B8 8 8&8 8 86C C C C Cr   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )Test_gettagsc                 $    ddl m}  ||          S )Nr   )gettags)r%   r  )r   commentr  s      r   _callFUTzTest_gettags._callFUTI  s$    ------wwr   c                 d    d}|                      |          }|                     |ddg           d S )Nz@foor   NNNr   )r   r@   r   r   r   r  r   r   linesr   s      r   test_one_atpartzTest_gettags.test_one_atpartM  sF    u%%&(>?	 	 	 	 	r   c                 d    d}|                      |          }|                     |ddg           d S )Nz
@foo arrayr  )r   r@   r  r   r   r  r  s      r   test_two_atpartszTest_gettags.test_two_atpartsU  sF    u%%&(CD	 	 	 	 	r   c                 d    d}|                      |          }|                     |ddg           d S )Nz@foo array namer  )r   r@   r  r   r   r  r  s      r   test_three_atpartszTest_gettags.test_three_atparts]  sF    !u%%&(GH	 	 	 	 	r   c                 d    d}|                      |          }|                     |ddg           d S )Nz@foo array name textr  )r   r@   r  r   r0   r  r  s      r   test_four_atpartszTest_gettags.test_four_atpartse  sF    &u%%&(KL	 	 	 	 	r   N)r   r   r   r  r
  r  r  r  r   r   r   r   r   H  s_                       r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )Test_capped_intc                 $    ddl m}  ||          S )Nr   )
capped_int)r%   r  )r   valuer  s      r   r  zTest_capped_int._callFUTn  s$    000000z%   r   c                 X    |                      |                     d          d           d S )N42*   )r   r  r   s    r   test_converts_value_to_integerz.Test_capped_int.test_converts_value_to_integerr  s*    t,,b11111r   c                 ~    ddl m} |                     |                     |j        dz
            |j                   d S Nr   r   r>   )supervisor.compatr   r   r  MININTr   r   s     r   test_caps_value_below_minintz,Test_capped_int.test_caps_value_below_minintu  G    //////y'7!';<<i>NOOOOOr   c                 ~    ddl m} |                     |                     |j        dz             |j                   d S r  )r  r   r   r  MAXINTr  s     r   test_caps_value_above_maxintz,Test_capped_int.test_caps_value_above_maxinty  r   r   N)r   r   r   r  r  r  r#  r   r   r   r  r  m  sX        ! ! !2 2 2P P PP P P P Pr   r  c                       e Zd ZddZd ZdS )DummyResponserF  r   reasonc                 0    || _         || _        || _        d S r(   )statusbodyr&  r   r(  r)  r&  s       r   rY   zDummyResponse.__init__  s    	r   c                     | j         S r(   )r)  r   s    r   readzDummyResponse.read  s
    yr   NrF  r   r&  )r   r   r   rY   r,  r   r   r   r%  r%  ~  s7           
    r   r%  c                       e Zd ZdS )rR  Nr   r   r   r   rR  rR    s        Dr   rR  c                   ,    e Zd ZdZd
dZd Zd Zd Zd	S )r6  FrF  r   r&  c                 2    t          |||          | _        d S r(   )r%  r{   r*  s       r   rY   zDummyConnection.__init__  s    %fdF;;r   c                     | j         S r(   )r{   r   s    r   r{  zDummyConnection.getresponse  s
    }r   c                 "    || _         || _        d S r(   )rC  	requestkwr  s      r   rk   zDummyConnection.request  s    r   c                     d| _         d S r   )r9  r   s    r   rK  zDummyConnection.close  s    r   Nr-  )r   r   r   r9  rY   r{  rk   rK  r   r   r   r6  r6    sZ        F< < < <        r   r6  )unittestsupervisor.tests.baser   r   r   r  r   r   TestCaser
   r!   r<   rH   r   r  rN  r  r   r  r%  r   rR  r6  r   r   r   <module>r8     s    1 1 1 1 1 1 . . . . . . = = = = = = ' ' ' ' ' ' % % % % % %	* 	* 	* 	* 	*x0 	* 	* 	*    H%   27 7 7 7 7X. 7 7 7U5 U5 U5 U5 U5* U5 U5 U5nS0 S0 S0 S0 S0H% S0 S0 S0je+ e+ e+ e+ e+x0 e+ e+ e+NjF jF jF jF jF!2 jF jF jFXPC PC PC PC PCh&7 PC PC PCd# # # # #8$ # # #JP P P P Ph' P P P"       	 	 	 	 	F 	 	 	         r   