403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.217.130
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_xmlrpc.cpython-36.opt-1.pyc
3

x2_���&@s&ddlZddlZddlZddlZddlZddlZddlmZddljZ	ddl
ZddlZ
ddl
Z
ddlZ
ddlZddlZddlZddlZddlmZyddlZWnek
r�dZYnXyddlZWnek
r�dZYnXdddMddge	jd	�d	ed	�d
dde	jd
�e	jdO�e	jejdddddd��d�gZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Z Gdd�dej�Z!Gdd �d ej�Z"da#a$a%dPd!d"�Z&dQd#d$�Z'd%d&�Z(d'd(�Z)ej*ed)�Gd*d+�d+ej��Z+Gd,d-�d-e+�Z,Gd.d/�d/e+�Z-Gd0d1�d1e+�Z.Gd2d3�d3e+�Z/Gd4d5�d5e/�Z0Gd6d7�d7e/�Z1ej2edkd8�Gd9d:�d:e+��Z3ej2edkd8�Gd;d<�d<ej��Z4Gd=d>�d>ej�Z5Gd?d@�d@e
jj6�Z7ej*ed)�GdAdB�dBej��Z8ej9dRdDdE��Z:GdFdG�dGej�Z;GdHdI�dIej�Z<ej=dJdK��Z>e?dLk�r"e>�dS)S�N)�mock)�supportzfoo@bar.baz.spamgH�zns�@��z.zyx.41smy dog has fleasFu	䀀怀耀z
regular valuez20050210T11:41:23���
��)��)ZastringZafloatZanintZ
ashortlongZanotherlistZabase64Zb64bytesZb64bytearrayZbooleanZunicodeuukey䀀Z	datetime1Z	datetime2Z	datetime3c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zejed)�d*d+��Zd,S)-�XMLRPCTestCasecCs.tjtf�}tj|�}|jt|dd�dS)Nr)�	xmlrpclib�dumps�alist�loads�assertEqual)�self�dump�load�r�5/opt/alt/python36/lib64/python3.6/test/test_xmlrpc.py�test_dump_load/s
zXMLRPCTestCase.test_dump_loadcCs6tjdddddd�}|j|tjd��tj|f�}tj|dd	�\}}|\}|j||�|jt|�tj�|j|�tj|d
d	�\}}|\}|j||�|jt|�tj�|j|�tj|dd�\}}|\}|j||�|jt|�tj�|j|�tj|d
d�\}}|\}|j||�|jt|�tj�|j|�dS)Ni�rrrr	r
z20050210T11:41:23T)�use_builtin_typesF)Zuse_datetime)	�datetimerr
�DateTimerr�assertIs�type�assertIsNone)r�dt�s�result�m�newdtrrr�test_dump_bare_datetime4s.


z&XMLRPCTestCase.test_dump_bare_datetimecCs�tjdddddd�}|j|tjd��tj|f�}tj|dd	�\}}|\}|j||�|jt|�tj�|j|�tj|d
d	�\}}|\}|j||�|jt|�tj�|j|�dS)Nrrrrr	r
z00010210T11:41:23T)rF)	rrr
rrrrrr)rrrr r!r"rrr�test_datetime_before_1900Vs
z(XMLRPCTestCase.test_datetime_before_1900cCsRtj�}tjtj|fdd��\\}}|j|jt�tj|fdd�}|j|t�dS)NT)�methodresponse)r
rrrZassertIsInstance�value�str)r�dZnew_d�dummyrrrr�test_bug_1164912hszXMLRPCTestCase.test_bug_1164912cCsLGdd�dt�}|�}d|_d|_tjtj|f��\\}}|j||j�dS)Nc@seZdZdS)z-XMLRPCTestCase.test_newstyle_class.<locals>.TN)�__name__�
__module__�__qualname__rrrr�Tssr.�dZHello)�object�x�yr
rrr�__dict__)rr.�t�t2r)rrr�test_newstyle_classrsz"XMLRPCTestCase.test_newstyle_classcCs|jttjddf�dS)Nr�c)�assertRaises�
OverflowErrorr
r)rrrr�test_dump_big_long{sz!XMLRPCTestCase.test_dump_big_longcCs|jttjddif�dS)Nrr�)rrr;)r8�	TypeErrorr
r)rrrr�test_dump_bad_dict~sz!XMLRPCTestCase.test_dump_bad_dictcCs6dddg}ddd|g}|j|�|jttj|f�dS)Nrrr;��)�appendr8r<r
r)r�lr4rrr�test_dump_recursive_seq�s

z&XMLRPCTestCase.test_dump_recursive_seqcCs2ddd�}d|d�}||d<|jttj|f�dS)Nr)�1�2r;)�3r(r4)r8r<r
r)rr(r4rrr�test_dump_recursive_dict�s

z'XMLRPCTestCase.test_dump_recursive_dictcCs�tjdkr |jttjtd	�f�tjtjtjf�|jttjtjdf�|jttjtjdf�dd�}tj	�}|j
tj|�|j
tj|�|jt|j
tjd|�|jt|j
tjd|�dS)
Nr�r�"cSsdS)Nr)rrrr�dummy_write�sz5XMLRPCTestCase.test_dump_big_int.<locals>.dummy_writeli���l)�sys�maxsizer8r9r
r�int�MAXINT�MININT�
MarshallerZdump_int)rrIr!rrr�test_dump_big_int�s 





z XMLRPCTestCase.test_dump_big_intcCs�tjtd�f�tjttj�ttj�f�tjttjd�ttjd�f�dd�}tj�}|jtj|�|jtj|�|jtjd|�|jtjd|�dS)NrrH�*cSsdS)Nr)rrrrrI�sz4XMLRPCTestCase.test_dump_double.<locals>.dummy_writel)r
r�floatrMrNrOZdump_double)rrIr!rrr�test_dump_double�szXMLRPCTestCase.test_dump_doublecCsTtdg}tdgf}tj|dd�}|j|tj|�dd�|jttj|f�dS)NT)�
allow_noner)rr
rrrr8r<)rr&Zarg1�strgrrr�test_dump_none�s
zXMLRPCTestCase.test_dump_nonecCs�ddi}tj|fdd�}d|}|jtj|�dd|�|jdd�}|jtj|�dd|�tj|fddd	�}|jtj|�dd|�|jdd�}|jtj|�dd|�d
}tj|fd|d�}|jtj|�dd|�|jtj|�d|�dS)
Nukey€¤u
value€¤ziso-8859-15)�encodingz,<?xml version='1.0' encoding='iso-8859-15'?>r�xmlcharrefreplaceT)rWr%umethod€¤)rW�
methodnamer)r
rrr�encode)rr&rUrYrrr�test_dump_encoding�s"

z!XMLRPCTestCase.test_dump_encodingcCs�d}|j|tj|��x�tttjfD]�}||�}tj|f�}tj|dd�\}}|\}|j||�|jt|�t�|j	|�tj|dd�\}}|\}|j||�|jt|�tj�|j	|�q$WdS)Nsmy dog has fleasT)rF)
rr
�Binary�bytes�	bytearrayrrrrr)rZsampleZtype_r&rr r!�newvaluerrr�test_dump_bytes�s
zXMLRPCTestCase.test_dump_bytescCsFtj}d}|j|tj|�d}|j|tj|�d}|j|tj|�dS)Nz6<params><param><value><spam/></value></param></params>zT<params><param><value><array><value><spam/></value></array></value></param></params>z�<params><param><value><struct><member><name>a</name><value><spam/></value></member><member><name>b</name><value><spam/></value></member></struct></value></param></params>)r
�
ResponseErrorr8r)rra�datarrr�test_loads_unsupported�sz%XMLRPCTestCase.test_loads_unsupportedcKsNd|}tj|f|�\}}|\}|j||�|jt|�t|��|j|�dS)Nz1<params><param><value>%s</value></param></params>)r
rrrrr)rrr&�kwargsrr r!r_rrr�check_loads�szXMLRPCTestCase.check_loadsc	Cs�|j}|dd�|dd�|dd�|dd�|dd�|dd�|d	d
�|dd�|d
tjd��|d
ddd�|dtjd��|dtjdddddd�dd�|dddg�|dddd��dS)N�stringz<string>string</string>u4<string>𝔘𝔫𝔦𝔠𝔬𝔡𝔢 string</string>u#𝔘𝔫𝔦𝔠𝔬𝔡𝔢 stringz<int>2056183947</int>i��zz<int>-2056183947</int>z<i4>2056183947</i4>z<double>46093.78125</double>g���@z<boolean>0</boolean>Fz%<base64>AGJ5dGUgc3RyaW5n/w==</base64>s
byte string�T)rz6<dateTime.iso8601>20050210T11:41:23</dateTime.iso8601>z20050210T11:41:23i�rrrr	r
zR<array><data><value><int>1</int></value><value><int>2</int></value></data></array>rz�<struct><member><name>b</name><value><int>2</int></value></member><member><name>a</name><value><int>1</int></value></member></struct>)�a�biuq�)rer
r\rr)r�checkrrr�test_load_standard_types�s,









z'XMLRPCTestCase.test_load_standard_typescCs`|j}|dd�|dd�|dd�|dd�|dd�|d	d
�|dd�|d
tjd��dS)Nz<nil/>z	<ex:nil/>z<i1>205</i1>��z<i2>20561</i2>iQPz<i8>9876543210</i8>l�`	z-<biginteger>98765432100123456789</biginteger>l5�?�4*UUz<float>93.78125</float>grW@z.<bigdecimal>9876543210.0123456789</bigdecimal>z9876543210.0123456789)re�decimalZDecimal)rrirrr�test_load_extension_typess





z(XMLRPCTestCase.test_load_extension_typescCs(tjj�}|j|jd�ddgif�dS)Nz
user@host.tldzhost.tld�
Authorization�Basic dXNlcg==)rnro)�xmlrpc�client�	TransportrZ
get_host_info)rZtransprrr�test_get_host_info!s
z!XMLRPCTestCase.test_get_host_infocCs�yddl}Wntk
r$d}YnXd}ytjjd�j�Wn<tk
r^|j|d�Yntk
rz|j	|�YnXdS)NrFTzhttps://localhost:9999z&xmlrpc client's error with SSL support)
�ssl�ImportErrorrprq�ServerProxyZbad_function�NotImplementedErrorZassertFalse�OSError�
assertTrue)rrtZhas_sslrrr�test_ssl_presence(s
z XMLRPCTestCase.test_ssl_presencez!Threading required for this test.c
s�Gdd�dtjj�}�fdd�}tjjtjdf|��|j�j�tj	|d�}|j
�|j|j�dj�j
�}tj|��&}|j|j�d�|j|j�d�WdQRXdS)	Nc@s$eZdZdZdZdd�Zdd�ZdS)z@XMLRPCTestCase.test_keepalive_disconnect.<locals>.RequestHandlerzHTTP/1.1FcSs�t|jjd��}|jj|�|jr,d|_dStjddd�}|j	�}|j
tjj
�|jdt|��|j�|jj|�d|_d|_dS)NzContent-LengthTr?)r%F)r?)rL�headers�getZrfile�read�handledZclose_connectionr
rrZZ
send_response�httpZ
HTTPStatusZOKZsend_header�lenZend_headersZwfile�write)rZlength�responserrr�do_POST<szHXMLRPCTestCase.test_keepalive_disconnect.<locals>.RequestHandler.do_POSTcWsdS)Nr)r�format�argsrrr�log_messageKszLXMLRPCTestCase.test_keepalive_disconnect.<locals>.RequestHandler.log_messageN)r+r,r-�protocol_versionr~r�r�rrrr�RequestHandler8sr�cs$�jjtd���j��j�dS)Nr)�socket�
settimeoutrR�handle_requestr)�serverrr�
run_serverOsz<XMLRPCTestCase.test_keepalive_disconnect.<locals>.run_serverr)�targetz
http://{}:{}/r?)rr�ZBaseHTTPRequestHandlerZ
HTTPServerrZHOST�
addCleanup�server_close�	threading�Thread�start�joinr�Zserver_addressr
rvr�method)rr�r��thread�url�pr)r�r�test_keepalive_disconnect6sz(XMLRPCTestCase.test_keepalive_disconnectN)r+r,r-rr#r$r*r6r:r=rBrFrPrSrVr[r`rcrerjrmrsrz�unittest�
skipUnlessr�r�rrrrr-s*"
	
rc@sLeZdZGdd�de�Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS)�SimpleXMLRPCDispatcherTestCasec@seZdZdZdS)z*SimpleXMLRPCDispatcherTestCase.DispatchExczSRaised inside the dispatched functions when checking for
        chained exceptionsN)r+r,r-�__doc__rrrr�DispatchExc`sr�c
szd}�fdd�}tjj�}|j|��j�j��}|jd|�WdQRX�j|jj	|f��j
|jj��j
|jj�dS)	z$Calls explicitly registered functionrrr;cs�j|��dS)N)r�)�params)rrr�dispatched_funckszQSimpleXMLRPCDispatcherTestCase.test_call_registered_func.<locals>.dispatched_funcr�N)rrr;)
rpr��SimpleXMLRPCDispatcher�register_functionr8r��	_dispatchr�	exceptionr�r�	__cause__�__context__)r�
exp_paramsr��
dispatcher�exc_ctxr)rr�test_call_registered_funcds

z8SimpleXMLRPCDispatcherTestCase.test_call_registered_funcc
Cs~d}Gdd�d�}tjj�}|j|��|j|j��}|jd|�WdQRX|j|jj	|f�|j
|jj�|j
|jj�dS)	z3Calls a registered instance attribute as a functionrrr;c@seZdZdd�ZdS)zOSimpleXMLRPCDispatcherTestCase.test_call_instance_func.<locals>.DispatchedClasscWstj|��dS)N)r�r�)rr�rrrr�~sz_SimpleXMLRPCDispatcherTestCase.test_call_instance_func.<locals>.DispatchedClass.dispatched_funcN)r+r,r-r�rrrr�DispatchedClass}sr�r�N)rrr;)
rpr�r��register_instancer8r�r�rr�r�rr�r�)rr�r�r�r�rrr�test_call_instance_funcvs
z6SimpleXMLRPCDispatcherTestCase.test_call_instance_funccCs�d}d}Gdd�d�}tjj�}|j|��|j|j��}|j||�WdQRX|j|jj	||f�|j
|jj�|j
|jj�dS)	z4Calls the registered instance's `_dispatch` functionr�rrr;c@seZdZdd�ZdS)zLSimpleXMLRPCDispatcherTestCase.test_call_dispatch_func.<locals>.TestInstancecSstj||��dS)N)r�r�)rr�r�rrrr��szVSimpleXMLRPCDispatcherTestCase.test_call_dispatch_func.<locals>.TestInstance._dispatchN)r+r,r-r�rrrr�TestInstance�sr�N)rrr;)
rpr�r�r�r8r�r�rr�r�rr�r�)rZ
exp_methodr�r�r�r�rrr�test_call_dispatch_func�s
z6SimpleXMLRPCDispatcherTestCase.test_call_dispatch_funcc
Cs@tjj�}|jddd�|jtd��|jdd�WdQRXdS)z2Calls explicitly registered function which is NoneNr�)�name�param)r�)rpr�r�r��assertRaisesRegex�	Exceptionr�)rr�rrr�test_registered_func_is_none�s
z;SimpleXMLRPCDispatcherTestCase.test_registered_func_is_nonec
Cs>tjj�}|jt��|jtd��|jdd�WdQRXdS)z>Attempts to call nonexistent function on a registered instancer�r�N)r�)rpr�r�r�r0r�r�r�)rr�rrr�test_instance_has_no_func�s
z8SimpleXMLRPCDispatcherTestCase.test_instance_has_no_funcc
Cs2tjj�}|jtd��|jdd�WdQRXdS)z2Calls a function that the dispatcher cannot locater�r�N)r�)rpr�r�r�r�r�)rr�rrr�test_cannot_locate_func�s
z6SimpleXMLRPCDispatcherTestCase.test_cannot_locate_funcN)r+r,r-r�r�r�r�r�r�r�r�rrrrr�_sr�c@seZdZdd�ZdS)�HelperTestCasecCs:|jtjd�d�|jtjd�d�|jtjd�d�dS)Nza&bza&amp;bza<bza&lt;bza>bza&gt;b)rr
�escape)rrrr�test_escape�szHelperTestCase.test_escapeN)r+r,r-r�rrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�
FaultTestCasecCs4tjdd�}|jt|�d�|jt|�t|��dS)NrQz
Test Faultz<Fault 42: 'Test Fault'>)r
�Faultr�reprr')r�frrr�	test_repr�szFaultTestCase.test_reprcCsjtjdd�}tj|f�}tj|�\\}}|j|ddd��|j|d�tj�j|�}|jtjtj|�dS)NrQz
Test Fault)�	faultCode�faultString)r
r�rrrrOr8)rr�rZnewfr!rrr�test_dump_fault�szFaultTestCase.test_dump_faultcCs,|jttjjtd�|jtjjtd��dS)N�__add�title)r8�AttributeErrorrpr��resolve_dotted_attributer'ry)rrrr�test_dotted_attribute�sz#FaultTestCase.test_dotted_attributeN)r+r,r-r�r�r�rrrrr��s
r�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�DateTimeTestCasecCsdtjd��P}tjdddddddddg	�}||_tj�}tj�}|jt	|�tj
d	|��WdQRXdS)
Nztime.localtimei���r��1��z%Y%m%dT%H:%M:%S)rZpatch�timeZstruct_timeZreturn_value�	localtimer
rrr'�strftime)rZlocaltime_mockZtime_structr�r4rrr�test_default�s
zDateTimeTestCase.test_defaultcCs0d}tj|�}|jt|�tjdtj|���dS)Ngl]�ޮ��Az%Y%m%dT%H:%M:%S)r
rrr'r�r�r�)rr(r4rrr�	test_time�s

zDateTimeTestCase.test_timec	Cs"d}tj|�}|jt|�d
�dS)N����	r�&�2r?�rz20070609T10:38:50)	r�r�r�rr�r�r?r�r)r
rrr')rr(r4rrr�test_time_tuple�s
z DateTimeTestCase.test_time_tuplecCs0tjd�}tj|�}|jt|�tjd|��dS)Ngl]�ޮ��Az%Y%m%dT%H:%M:%S)r�r�r
rrr'r�)rr(r4rrr�test_time_struct�s

z!DateTimeTestCase.test_time_structcCs2tjdddddd�}tj|�}|jt|�d�dS)Ni�rrr;r>r?z20070102T03:04:05)rr
rrr')rr(r4rrr�test_datetime_datetime�s
z'DateTimeTestCase.test_datetime_datetimecCs>tjdddddd�}tj|�}dt|�}|jt|�|�dS)Ni�rrr;r>r?z%<DateTime '20070102T03:04:05' at %#x>)rr
r�idrr�)rr(r4�valrrrr��s
zDateTimeTestCase.test_reprcCsVd}tj�}|j|�tjtjdddddd��}|j||�tj|�}|j||�dS)Nz 20070908T07:11:13  i�r��r�r�
)r
r�decoderrZ	_datetime)rr(�t1Ztrefr5rrr�test_decode�s

zDateTimeTestCase.test_decodec:Cs�tjj�}tj|j��}|j||k�|j||k�|tjdd�}|j||k�|j||k�|jd�}|j||k�|j||k�tj|j��}|j||k�|j||k�|jd�}|j�}|j	t
��|dkWdQRX|j	t
��||kWdQRX|j	t
��|t|�kWdQRX|j	t
��||kWdQRX|j	t
��|td�kWdQRX|j	t
��||kWdQRX|j	t
��|t|�kWdQRX|j	t
��||kWdQRXdS)Nr>)Zsecondsz%Y%m%dT%H:%M:%S�asciii�)
r�nowr
rZ	timetupleryZ	timedeltar�rZr8r<r^rR)rr�ZdtimeZthenZdstrZ
dtime_thenZdbytesZdtuplerrr�test_comparisons>


z DateTimeTestCase.test_comparisonN)r+r,r-r�r�r�r�r�r�r�r�rrrrr��s

r�c@s$eZdZdd�Zdd�Zdd�ZdS)�BinaryTestCasecCstj�}|jt|�d�dS)N�)r
r\rr')rr4rrrr�1szBinaryTestCase.test_defaultcCs(d}tj|�}|jt|�t|d��dS)Nsabc123��zlatin-1)r
r\rr')rr(r4rrr�test_string5s
zBinaryTestCase.test_stringcCsZd}tj|�}tj�}|j|�|jt|�t|d��tj|�}|jt|�t|d��dS)Nsabc123��zlatin-1)�base64Zencodebytesr
r\r�rr'Z_binary)rr(Zder�r5rrrr�:s


zBinaryTestCase.test_decodeN)r+r,r-r�r�r�rrrrr�*sr�c	Cs0Gdd�d�}dd�}Gdd�dtjj�}|s6tjj}|d||d	d	d
�}z�y�|j�|jj�\aadttfa	|j
�|j�|j�|j
t�|j
dd
�d�|j
dd
�d�|j
|�|�}|j|dd�|j�x|dkr�|j�|d8}q�WWntjk
�rYnXWd|jj�da|j�XdS)Nc@s*eZdZdd�Zdd�ZGdd�d�ZdS)z&http_server.<locals>.TestInstanceClasscSs||S)Nr)rr1r2rrr�divLsz*http_server.<locals>.TestInstanceClass.divcSs|dkrdSdS)Nr�zThis is the div functionr)rr�rrr�_methodHelpOsz2http_server.<locals>.TestInstanceClass._methodHelpc@seZdZedd��ZdS)z.http_server.<locals>.TestInstanceClass.FixturecSsdS)N�42rrrrr�getDataTsz6http_server.<locals>.TestInstanceClass.Fixture.getDataN)r+r,r-�staticmethodr�rrrr�FixtureSsr�N)r+r,r-r�r�r�rrrr�TestInstanceClassKsr�cSsdS)zThis is my functionTrrrrr�my_functionXsz http_server.<locals>.my_functionc@seZdZdd�ZdS)z#http_server.<locals>.MyXMLRPCServercSs |jj�\}}|jd�||fS)NT)r��accept�setblocking)rr�portrrr�get_request]s
z/http_server.<locals>.MyXMLRPCServer.get_requestN)r+r,r-r�rrrr�MyXMLRPCServer\sr��	localhostrF)rW�logRequests�bind_and_activatezhttp://%s:%dcSs||S)Nr)r1r2rrr�<lambda>vszhttp_server.<locals>.<lambda>�addcSs|S)Nr)r1rrrr�wsutêštT)Zallow_dotted_namesr)r�r)rpr��SimpleXMLRPCServer�SimpleXMLRPCRequestHandler�server_bindr��getsockname�ADDR�PORT�URL�server_activate� register_introspection_functions�register_multicall_functionsr��powr��setr��timeout�close)	�evt�numrequests�requestHandlerrWr�r�r��servZtestInstancerrr�http_serverJs<






r
cCsxGdd�d�}dd�}Gdd�dtjj�}|s6tjj}Gdd�d|�}Gd	d
�d
�}|d|d
d
d�}|jjd�|j�z�y�|jj�\aa	dtt	fa
|j�ddg}	x.|	D]&}
|j|
tjj
��}|j�|j�q�W|j|	d�jt�|j|	d�jdd�d�|jd|��|j�x |dk�r:|j�|d8}�qWWntjk
�rVYnXWd|jj�da	|j�XdS)Nc@seZdZdd�Zdd�ZdS)z,http_multi_server.<locals>.TestInstanceClasscSs||S)Nr)rr1r2rrrr��sz0http_multi_server.<locals>.TestInstanceClass.divcSs|dkrdSdS)Nr�zThis is the div functionr)rr�rrrr��sz8http_multi_server.<locals>.TestInstanceClass._methodHelpN)r+r,r-r�r�rrrrr��sr�cSsdS)zThis is my functionTrrrrrr��sz&http_multi_server.<locals>.my_functionc@seZdZdd�ZdS)z)http_multi_server.<locals>.MyXMLRPCServercSs |jj�\}}|jd�||fS)NT)r�r�r�)rrr�rrrr��s
z5http_multi_server.<locals>.MyXMLRPCServer.get_requestN)r+r,r-r�rrrrr��sr�c@seZdZgZdS)z+http_multi_server.<locals>.MyRequestHandlerN)r+r,r-Z	rpc_pathsrrrr�MyRequestHandler�src@seZdZddd�ZdS)z+http_multi_server.<locals>.BrokenDispatcherNcSstd��dS)Nzbroken dispatcher)�RuntimeError)rrbZdispatch_method�pathrrr�_marshaled_dispatch�sz?http_multi_server.<locals>.BrokenDispatcher._marshaled_dispatch)NN)r+r,r-rrrrr�BrokenDispatcher�srr�rF)r�r�r;zhttp://%s:%dz/fooz/foo/barrcSs||S)Nr)r1r2rrrr��sz#http_multi_server.<locals>.<lambda>r�z
/is/broken)r�r)rpr�ZMultiPathXMLRPCServerr�r�r�r�r�r�rrrZadd_dispatcherr�rrZget_dispatcherr�rrr�rr)r	r
rr�r�r�rrr�pathsrr(rrr�http_multi_server�s@



rcCs^y(|jdks|jdkrdS|jjd�}Wntk
rDt|�}YnX|rZd|j�krZdSdS)z�Returns True if the given ProtocolError is the product of a server-side
       exception caused by the 'temporarily unavailable' response sometimes
       given by operations on non-blocking sockets.rNTzX-exceptionztemporarily unavailable���)Zerrcoder{r|r�r'�lower)�eZexc_messrrr�is_unavailable_exception�srcs|sdd�S�fdd�}|S)NcSs|S)Nr)�funcrrrr��sz)make_request_and_skipIf.<locals>.<lambda>cs�fdd�}|S)NcsTytjt�j�Wn2tjtfk
rD}zt|�s4�WYdd}~XnXtj���dS)N)	r
rvrr��
ProtocolErrorrxrr�ZSkipTest)rr)�reasonrr�make_request_and_skip�szImake_request_and_skipIf.<locals>.decorator.<locals>.make_request_and_skipr)rr)rrr�	decorator�sz*make_request_and_skipIf.<locals>.decoratorr)Z	conditionrrr)rr�make_request_and_skipIf�s	rz!Threading required for this test.c@s,eZdZdZdZee�Zdd�Zdd�Z	dS)�BaseServerTestCaseNrcCs`dtjj_tj�|_|j|j|jf}tj	|j
|d�}|j�|j|j
�|jj�|jj�dS)NT)r�r�)rpr�r��_send_traceback_headerr��Eventr	�
request_countrr��
threadFuncr�r�r��wait�clear)r�	serv_argsr�rrr�setUp�s


zBaseServerTestCase.setUpcCs|jj�dtjj_dS)NF)r	r$rpr�r�r )rrrr�tearDowns
zBaseServerTestCase.tearDown)
r+r,r-rr"r�r
r#r'r(rrrrr�s
rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
ejj
dkd�dd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%S)&�SimpleServerTestCasecCsry"tjt�}|j|jdd�d�WnJtjtfk
rl}z(t|�s\|jd|t	|dd�f�WYdd}~XnXdS)Nr�r�z%s
%sr{r�i�)
r
rvrrrrrxr�fail�getattr)rr�rrrr�test_simple1
s
z!SimpleServerTestCase.test_simple1cCs~d}d}y&tjt�}|j|j||�||�WnJtjtfk
rx}z(t|�sh|jd|t	|dd�f�WYdd}~XnXdS)NuPŷtuhơnz%s
%sr{r�)
r
rvrrr�rrxrr*r+)r�start_string�
end_stringr�rrrr�
test_nonasciis
z"SimpleServerTestCase.test_nonasciicCs�d}d}y*tjtdd�}|j|j||�||�WnLtjtjfk
r~}z(t|�sn|j	d|t
|dd�f�WYdd}~XnXdS)Nu€�¤ziso-8859-15)rWz%s
%sr{r�)r
rvrrr�rr��errorrr*r+)rr-r.r�rrrr�test_client_encoding!sz)SimpleServerTestCase.test_client_encodingcCsvy$tjtdd�}|j|jd�d�WnLtjtjfk
rp}z(t|�s`|j	d|t
|dd�f�WYdd}~XnXdS)Nr�)rWrQz%s
%sr{r�)r
rvrrttêštrr�r1rr*r+)rr�rrrr�test_nonascii_methodname/sz-SimpleServerTestCase.test_nonascii_methodnamecCsJtjjtt�}|jdd�|j�}|j�|j|j	d�|j|j
d�dS)NZPOSTz/this-is-not-validi�z	Not Found)Zhttplibrq�HTTPConnectionr�rZrequestZgetresponserr�statusr)r�connr�rrr�XXXtest_404:sz SimpleServerTestCase.XXXtest_404cCs�tddddddddd	d
g
�}y(tjt�}|jj�}|jt|�|�WnJtjtfk
r�}z(t	|�s~|j
d|t|dd
�f�WYdd}~XnXdS)Nrr�r�r�utêštzsystem.listMethodszsystem.methodHelpzsystem.methodSignaturezsystem.multicallr�z%s
%sr{r�)rr
rvr�systemZlistMethodsrrrxrr*r+)rZexpected_methodsr��methrrrr�test_introspection1Es

z(SimpleServerTestCase.test_introspection1cCsvy&tjt�}|jjd�}|j|d�WnJtjtfk
rp}z(t|�s`|j	d|t
|dd�f�WYdd}~XnXdS)Nr�zThis is the div functionz%s
%sr{r�)r
rvrr8�
methodHelprrrxrr*r+)rr�Zdivhelprrrr�test_introspection2Us
z(SimpleServerTestCase.test_introspection2rz)Docstrings are omitted with -O2 and abovecCsvy&tjt�}|jjd�}|j|d�WnJtjtfk
rp}z(t|�s`|j	d|t
|dd�f�WYdd}~XnXdS)Nr�zThis is my functionz%s
%sr{r�)r
rvrr8r;rrrxrr*r+)rr�Z
myfunctionrrrr�test_introspection3as
z(SimpleServerTestCase.test_introspection3cCsvy&tjt�}|jjd�}|j|d�WnJtjtfk
rp}z(t|�s`|j	d|t
|dd�f�WYdd}~XnXdS)Nr�zsignatures not supportedz%s
%sr{r�)r
rvrr8ZmethodSignaturerrrxrr*r+)rr�Zdivsigrrrr�test_introspection4os
z(SimpleServerTestCase.test_introspection4cCs�yltjt�}tj|�}|jdd�|jdd�|jdd�|�\}}}|j|d
�|j|d�|j|d�WnJtjt	fk
r�}z(t
|�s�|jd|t|dd	�f�WYdd}~XnXdS)
Nrr;r�r��rQz%s
%sr{r�r?i�r;)
r
rvr�	MultiCallr�rr�rrrxrr*r+)rr��	multicallZ
add_resultZ
pow_resultZ
div_resultrrrr�test_multicall|s

z#SimpleServerTestCase.test_multicallcCs�yRtjt�}tj|�}|j�|�}|j|jddd�|j|jddd�WnJtjtfk
r�}z(t	|�s�|j
d|t|dd�f�WYdd}~XnXdS)	Nrr�rr�z@<class 'Exception'>:method "this_is_not_exists" is not supportedz%s
%sr{r�)r
rvrr@Zthis_is_not_existsrZresultsrrxrr*r+)rr�rAr rrrr�test_non_existing_multicall�s


z0SimpleServerTestCase.test_non_existing_multicallcCs4|jttjjtd�|jtjjtd��|j�dS)Nr�r�)r8r�rpr�r�r'ryr,)rrrrr��sz*SimpleServerTestCase.test_dotted_attributecCs,tjdttf�}|jj�}|j|d�dS)Nzhttp://%s:%d/RPC2r�)r
rvr�rr�r�r)rr�rbrrr�test_allow_dotted_names_true�s
z1SimpleServerTestCase.test_allow_dotted_names_truecCs*tjdttf�}|j|jdd�d�dS)Nzhttp://%s:%d/RPC2rg�éuaé)r
rvr�rrr�)rr�rrr�test_unicode_host�sz&SimpleServerTestCase.test_unicode_hostcCs8tjjtt�}|jdt�dt�d�jd��|j�dS)Nz@POST /RPC2 HTTP/1.0
Content-Length: 100

bye HTTP/1.1
Host: �:z2
Accept-Encoding: identity
Content-Length: 0

r�)rrqr4r�r�sendrZr)rr6rrr�test_partial_post�sz&SimpleServerTestCase.test_partial_postcCsJtjt��$}|jdd�|j|d�jd�WdQRX|j|d�jd�dS)Nrr;�	transport)NN)NN)r
rvrr�ZassertNotEqual�_connectionr)rr�rrr�test_context_manager�sz)SimpleServerTestCase.test_context_managercCsTy&tjt��}|jdd�WdQRXWntjk
r<YnX|j|d�jd�dS)NrrgrJ)NN)r
rvrr�r�rrK)rr�rrr�!test_context_manager_method_error�sz6SimpleServerTestCase.test_context_manager_method_errorN)r+r,r-r,r/r2r3r7r:r<rrJ�flags�optimizer=r>rBrCr�rDrFrIrLrMrrrrr)	s$




r)c@s"eZdZeddd��Zdd�ZdS)�SimpleServerEncodingTestCaseNcCst|||d�dS)Nziso-8859-15)r
)r	r
rrWrrrr#�sz'SimpleServerEncodingTestCase.threadFunccCs�d}d}y&tjt�}|j|j||�||�WnLtjtjfk
rz}z(t|�sj|j	d|t
|dd�f�WYdd}~XnXdS)Nu€r0z%s
%sr{r�)r
rvrrr�rr�r1rr*r+)rr-r.r�rrrr�test_server_encoding�s
z1SimpleServerEncodingTestCase.test_server_encoding)NN)r+r,r-r�r#rQrrrrrP�srPc@s0eZdZee�ZdZdd�Zdd�Zdd�Z	dS)	�MultiPathServerTestCasercCs:tjtd�}|j|jdd�d�|jtj|jdd�dS)Nz/foor�r�i�)r
rvrrrr8r�r�)rr�rrr�
test_path1�sz"MultiPathServerTestCase.test_path1cCs:tjtd�}|j|jdd�d�|jtj|jdd�dS)Nz/foo/barr�r��)r
rvrrr�r8r�r)rr�rrr�
test_path2�sz"MultiPathServerTestCase.test_path2cCs&tjtd�}|jtj|jdd�dS)Nz
/is/brokenr�r�)r
rvrr8r�r�)rr�rrr�
test_path3�sz"MultiPathServerTestCase.test_path3N)
r+r,r-r�rr#r"rSrUrVrrrrrR�s
rRc@s,eZdZGdd�dejj�ZeZdd�ZdS)�BaseKeepaliveServerTestCasec@s,eZdZejjZdZgZdd�Z	dd�Z
dS)z*BaseKeepaliveServerTestCase.RequestHandlerzHTTP/1.1cCs(|jjg�t|j�d|_|jj|�S)Nr)�
myRequestsr@r��reqidx�parentClass�handle)rrrrr[sz1BaseKeepaliveServerTestCase.RequestHandler.handlecCs$|jj|�}|j|jj|j�|S)N)rZ�handle_one_requestrXrYr@Zraw_requestline)rr rrrr\sz=BaseKeepaliveServerTestCase.RequestHandler.handle_one_requestN)r+r,r-rpr�r�rZr�rXr[r\rrrrr��s
r�cCsg|j_tj|�S)N)r�rXrr')rrrrr'sz!BaseKeepaliveServerTestCase.setUpN)	r+r,r-rpr�r�r�rr'rrrrrW�s
rWc@seZdZdd�ZdS)�KeepaliveServerTestCase1cCs�tjt�}|j|jdd�d�|j|jdd�d�|j|jdd�d�|d��|jt|jj�d�|jt|jjd	�d�dS)
Nr�r�rrri�i�i�r)	r
rvrrrr�r�rX�assertGreaterEqual)rr�rrr�test_twos

z!KeepaliveServerTestCase1.test_twoN)r+r,r-r_rrrrr]sr]c@s eZdZdZdd�Zdd�ZdS)�KeepaliveServerTestCase2rcCs�tjt�}|j|jdd�d�|j|jdd�d�|j|jdd�d�|d��|j|jdd�d	�|j|jdd�d
�|j|jdd�d�|d��|jt|jj�d�|jt|jjd�d�|jt|jjd
�d�dS)Nr�r�rrri�i�i�i�i�i�r���)	r
rvrrrr�r�rXr^)rr�rrr�
test_close)s


z#KeepaliveServerTestCase2.test_closecCs`tjt�}|j|jdd�d�|d�j�|j|jdd�d�|d��|jt|jj�d�dS)Nr�r�rJrri�i�)	r
rvrrrrr�r�rX)rr�rrr�test_transport<s

z'KeepaliveServerTestCase2.test_transportN)r+r,r-r"rbrcrrrrr`%sr`z
requires gzipc@sVeZdZGdd�dejj�ZeZGdd�dej	�Z	dd�Z
dd�Zd	d
�Zdd�Z
d
S)�GzipServerTestCasec@s eZdZejjZdZdd�ZdS)z!GzipServerTestCase.RequestHandlerzHTTP/1.1cCst|jd�|j_|jj|�S)Nzcontent-length)rLr{�	__class__�content_lengthrZr�)rrrrr�Osz)GzipServerTestCase.RequestHandler.do_POSTN)	r+r,r-rpr�r�rZr�r�rrrrr�Ksr�c@s eZdZdZdd�Zdd�ZdS)zGzipServerTestCase.TransportFcCs t|jdd��|_tjj||�S)Nzcontent-lengthr)rLZ	getheader�response_lengthr
rr�parse_response)rr�rrrrhXsz+GzipServerTestCase.Transport.parse_responsecCs"|jr|jdd�tjj|||�S)NzContent-Encoding�gzip)�	fake_gzipZ	putheaderr
rr�send_content)rZ
connectionZbodyrrrrk\sz)GzipServerTestCase.Transport.send_contentN)r+r,r-rjrhrkrrrrrrUsrrcCstj|�dS)N)rr')rrrrr'bszGzipServerTestCase.setUpcCsv|j�}d|_tjt|d�}|j|jdd�d�|jj}d|_|j|jdd�d�|jj}|j	||k�|d��dS)N)rJr�r�rri�i�)
rr�encode_thresholdr
rvrrrr�rfry)rr4r�rgrhrrr�test_gzip_requestesz$GzipServerTestCase.test_gzip_requestc
Cs`|j�}d|_d|_tjt|d�}|jtjtj	d��}|�|j
dd�WdQRX|d��dS)NT)rJz\b400\br�r�r)rrrlrjr
rvrr�r�re�compiler)rr4r��cmrrr�test_bad_gzip_requestqsz(GzipServerTestCase.test_bad_gzip_requestcCs�|j�}tjt|d�}|jj}d|j_|j|jdd�d�|j}d|j_|j|jdd�d�|d��|j}||j_|j	||k�dS)N)rJr�r�rri�i�)
rrr
rvrrrlrrrgry)rr4r��oldrgrhrrr�test_gzip_response|s
z%GzipServerTestCase.test_gzip_responseN)r+r,r-rpr�r�r�rr
rrr'rmrqrsrrrrrdGs
rdc@seZdZdd�ZdS)�GzipUtilTestCasecCszd}d|}tj|�}tj|�}|jt|�|�d|d}tj|�}|jtd��tj|�WdQRXtj|d	d�dS)
Nri�rz#max gzipped payload length exceeded)Z
max_decodeiPi@r)r
Zgzip_encodeZgzip_decoderr�r��
ValueError)rZmax_gzip_decoderbZencodedZdecodedrrr�test_gzip_decode_limit�s


z'GzipUtilTestCase.test_gzip_decode_limitN)r+r,r-rwrrrrrt�srtc@s$eZdZdd�Zdd�Zdd�ZdS)�ServerProxyTestCasecCstjj|�d|_dS)Nzhttp://fake.localhost)r��TestCaser'r�)rrrrr'�szServerProxyTestCase.setUpcCs"tj|j�}|j|d��d�dS)Nr)r
rvr�r)rr�rrrrb�szServerProxyTestCase.test_closecCs,tj�}tj|j|d�}|j|d�|�dS)N)rJrJ)r
rrrvr�r)rr4r�rrrrc�sz"ServerProxyTestCase.test_transportN)r+r,r-r'rbrcrrrrrx�srxcseZdZd�fdd�	Z�ZS)�FailingMessageClassNcs"|j�}|dkrdSt�j||�S)Nzcontent-lengthzI am broken)r�superr|)r�keyZfailobj)rerrr|�szFailingMessageClass.get)N)r+r,r-r|�
__classcell__rr)rerrz�srzc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�FailingServerTestCasecCsNtj�|_|jdf}tjt|d�}|j�|j|j�|jj�|jj	�dS)Nr)r�r�)
r�r!r	r�r
r�r�r�r$r%)rr&r�rrrr'�s


zFailingServerTestCase.setUpcCs*|jj�dtjj_tjj}|tjj	_
dS)NF)r	r$rpr�r�r rrq�HTTPMessager��MessageClass)rZ
default_classrrrr(�s

zFailingServerTestCase.tearDowncCs�tjjj}|j|d�dtjj_y"tjt�}|j|jdd�d�WnJtj	t
fk
r�}z(t|�s||jd|t
|dd�f�WYdd}~XnXdS)	NFTr�r�z%s
%sr{r�i�)rpr�r�r rr
rvrrrrxrr*r+)rZflagvalr�rrrr�
test_basic�s


z FailingServerTestCase.test_basiccCs�ttjj_ytjt�}|jdd�Wnhtj	t
fk
r�}zFt|�r|t|d�r||j
|jjd�dk�|j
|jjd�dk�WYdd}~XnX|jd�dS)Nr�r�r{zX-exceptionzX-tracebackzProtocolError not raised)rzrpr�r�r�r
rvrrrrxr�hasattrryr{r|r*)rr�rrrr�test_fail_no_info�s

(z'FailingServerTestCase.test_fail_no_infocCs�ttjj_dtjj_ytjt	�}|j
dd�Wnjtjtfk
r�}zHt
|�r�t|d�r�d}|j|jjd�|�|j|jjd�dk	�WYdd}~XnX|jd�dS)	NTr�r�r{z5invalid literal for int() with base 10: 'I am broken'zX-exceptionzX-tracebackzProtocolError not raised)rzrpr�r�r�r�r r
rvrrrrxrr�rr{r|ryr*)rr�rZexpected_errrrr�test_fail_with_info�s


(z)FailingServerTestCase.test_fail_with_infoN)r+r,r-r'r(r�r�r�rrrrr~�s
	r~�utf-8ccs4tj}tjtj�|d�t_ztjVWd|t_XdS)zhA variation on support.captured_stdout() which gives a text stream
    having a `buffer` attribute.
    )rWN)rJ�stdout�io�
TextIOWrapper�BytesIO)rWZorig_stdoutrrr�captured_stdout
s
r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�CGIHandlerTestCasecCstjj�|_dS)N)rpr��CGIXMLRPCRequestHandler�cgi)rrrrr'szCGIHandlerTestCase.setUpcCs
d|_dS)N)r�)rrrrr(szCGIHandlerTestCase.tearDowncCs�tj��~}d|d<t|jjd��}|jj�WdQRX|jd�|j�}|j�d}dj	|j�dd��}|j
|d	�|j
|d
�WdQRXdS)NZGETZREQUEST_METHOD)rWrr� rr>Z400zBad Request)r�EnvironmentVarGuardr�r�rWr��seekr}�splitr�r)r�env�data_outr[r5�messagerrr�test_cgi_gets

zCGIHandlerTestCase.test_cgi_getcCs�d}tj��b}t|jjd��H}tj��4}|j|�|jd�tt	|��|d<|jj
�WdQRXWdQRXWdQRX|jd�|j�}|jt
jt
j|dd��||jd�d�}|jttjd|�jd��t	|��dS)	Naw<?xml version='1.0'?>
        <methodCall>
            <methodName>test_method</methodName>
            <params>
                <param>
                    <value><string>foo</string></value>
                </param>
                <param>
                    <value><string>bar</string></value>
                </param>
            </params>
        </methodCall>
        )rWrZCONTENT_LENGTH�,z<?xmlzContent-Length: (\d+)r)rr�r�r�rWZcaptured_stdinr�r�r'r�r�r}r8r
r�r�findrrLrn�search�group)rrbr�r�Zdata_inr[Zcontentrrr�test_cgi_xmlrpc_response0s




(
z+CGIHandlerTestCase.test_cgi_xmlrpc_responseN)r+r,r-r'r(r�r�rrrrr�sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�UseBuiltinTypesTestCasecs�g�_d}tjdddddd�}tj||fd�}�fd	d
�}tjjdddd�}|j|�|j|��j	t
�j�d
��j\}}�j	�j||g��jt|�tj��jt|�t
�dS)Nsmy dog has fleasi�r?�����foobarcs�jj|�dS)N)�log�extend)r�)rrrr�esz>UseBuiltinTypesTestCase.test_use_builtin_types.<locals>.foobarT)rTrWrr)r�rr
rrpr�r�r�rrr�rrr])rZexpected_bytesZ
expected_dateZ	marshaledr��handlerZmybytesZmydater)rr�test_use_builtin_types]s


z.UseBuiltinTypesTestCase.test_use_builtin_typescCstjjdd�}|j|j�dS)NT)r)rpr�r�ryr)rr�rrr�*test_cgihandler_has_use_builtin_types_flagqszBUseBuiltinTypesTestCase.test_cgihandler_has_use_builtin_types_flagcCs(tjjddd�}|j�|j|j�dS)Nr�rT)r)r�r)rpr�r�r�ryr)rr�rrr�,test_xmlrpcserver_has_use_builtin_types_flaguszDUseBuiltinTypesTestCase.test_xmlrpcserver_has_use_builtin_types_flagN)r+r,r-r�r�r�rrrrr�[sr�cCs.tjtttttttt	t
ttt
ttttt�dS)N)rZrun_unittestrr�r�r�r�r�r)rPr]r`rdrtrRrxr~r�r�rrrr�	test_main|s
r��__main__ir)	rrrrr	r
rrr)NN)N)r�)@r�rrlrJr�r�rZ
xmlrpc.clientrqr
Z
xmlrpc.serverrpZhttp.clientrZhttp.serverr�rnr��
contextlibZtestrrirur�r\r^rrryrr�r�r�r�r�r�rrr
rrrr�rr)rPrRrWr]r`ZskipIfrdrtrxrrzr~�contextmanagerr�r�r�Zreap_threadsr�r+rrrr�<module>s�


4WW
?
C
K"C

ND!


Youez - 2016 - github.com/yon3zu
LinuXploit