Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_docxmlrpc.cpython-311.opt-2.pyc
�

�Kee$����ddlmZddlZddlZddlZddlZddlZddlm	Z	e	j
d���d�Zd�ZGd�d	ej
��Zed
krej��dSdS)�)�DocXMLRPCServerN)�supportT)�modulec���|sd�S�fd�}|S)Nc��|S�N�)�funcs �=/usr/local/apps/python3/lib/python3.11/test/test_docxmlrpc.py�<lambda>z)make_request_and_skipIf.<locals>.<lambda>s��D��c����fd�}|S)Nc���|j�dd��|j���tj����)N�GET�/)�client�request�getresponse�unittest�SkipTest)�self�reasons �r�make_request_and_skipzImake_request_and_skipIf.<locals>.decorator.<locals>.make_request_and_skips@����K����s�+�+�+��K�#�#�%�%�%��#�F�+�+�+r
r	)r
rrs  �r�	decoratorz*make_request_and_skipIf.<locals>.decorators$���	,�	,�	,�	,�	,�%�$r
r	)�	conditionrrs ` r�make_request_and_skipIfrs7����!� � � �%�%�%�%�%��r
c�T�tdd���}	|�d��|�d��|�d��Gd�dt��}|���|�|����d	�}d
tfd�}Gd�d
��}|�|��|�d���|�|��|�|����|S#|�	���xYw)N)�	localhostrF)�logRequestsz"DocXMLRPCServer Test DocumentationzDocXMLRPCServer Test DocszmThis is an XML-RPC server's documentation, but the server can be used by POSTing to /RPC2. Try self.add, too.c��eZdZd�ZdS)�make_server.<locals>.TestClassc��	||_dSr)�arg)rr#s  r�test_methodz*make_server.<locals>.TestClass.test_method&s��M�����r
N)�__name__�
__module__�__qualname__r$r	r
r�	TestClassr!%s#������
�
�
�
�
r
r(c��	||zSrr	��x�ys  r�addzmake_server.<locals>.add-s��
�
�q�5�Lr
r+c��	|Srr	)r+s r�
annotationzmake_server.<locals>.annotation5s
��-��Hr
c��eZdZdefd�ZdS)�(make_server.<locals>.ClassWithAnnotationr+c�*�|���Sr)�decode)rr+s  r�method_annotationz:make_server.<locals>.ClassWithAnnotation.method_annotation:s���x�x�z�z�!r
N)r%r&r'�bytesr4r	r
r�ClassWithAnnotationr19s/������
"�5�
"�
"�
"�
"�
"�
"r
r6c��||z
Srr	r*s  rrzmake_server.<locals>.<lambda>>s
��A�a�C�r
)
r�set_server_title�set_server_name�set_server_documentation�object� register_introspection_functions�register_instance�int�register_function�server_close)�servr(r-r/r6s     r�make_serverrBs����+��?�?�?�D�(����B�C�C�C����8�9�9�9��%�%�
B�	C�	C�	C�
	�	�	�	�	��	�	�	�
	
�-�-�/�/�/����y�y�{�{�+�+�+�	�	�	�	�#�	�	�	�	�	"�	"�	"�	"�	"�	"�	"�	"�	
���s�#�#�#����/�/�0�0�0����z�*�*�*����2�2�4�4�5�5�5�����������
���s�C<D�D'c���eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	e
jjdkd��d	���Z
e	e
jjdkd��d
���Zd�Zd�Zd
�ZdS)�DocXMLRPCHTTPGETServerc�0�dt_t��|_t	j|jj���|_|j���|jj	d}tj�d|z��|_dS)NT)�target�zlocalhost:%d)
r�_send_traceback_headerrBrA�	threading�Thread�
serve_forever�thread�start�server_address�httpr�HTTPConnection)r�PORTs  r�setUpzDocXMLRPCHTTPGETServer.setUpGsr��15��.��M�M��	��&�d�i�.E�F�F�F�����������y�'��*���k�0�0��$�1F�G�G����r
c���|j���dt_|j���|j���|j���dS)NF)	r�closerrHrA�shutdownrL�joinr@)rs r�tearDownzDocXMLRPCHTTPGETServer.tearDownRsb���������27��.��	��������������	��� � � � � r
c��|j�dd��|j���}|�|jd��|�|�d��d��|���dS)Nrr���Content-typeztext/html; charset=UTF-8�rrr�assertEqual�status�	getheader�read�r�responses  r�test_valid_get_responsez.DocXMLRPCHTTPGETServer.test_valid_get_response[s}������E�3�'�'�'��;�*�*�,�,�������#�.�.�.�����+�+�N�;�;�=W�X�X�X�	�
�
�����r
c��|j�dd��|j���}|�|jd��|�|�d��d��|���dS)Nrz
/pydoc.cssrYrZztext/css; charset=UTF-8r[r`s  r�test_get_cssz#DocXMLRPCHTTPGETServer.test_get_csses}������E�<�0�0�0��;�*�*�,�,�������#�.�.�.�����+�+�N�;�;�=V�W�W�W�	�
�
�����r
c��|j�dd��|j���}|�|jd��|�|�d��d��|���dS)Nrz/spami�rZz
text/plainr[r`s  r�test_invalid_get_responsez0DocXMLRPCHTTPGETServer.test_invalid_get_responseosz������E�7�+�+�+��;�*�*�,�,�������#�.�.�.�����+�+�N�;�;�\�J�J�J��
�
�����r
c��	|j�dd��|j���}|�d|�����dS)NrrsU<dl><dt><a name="-&lt;lambda&gt;"><strong>&lt;lambda&gt;</strong></a>(x, y)</dt></dl>�rrr�assertInr_r`s  r�test_lambdaz"DocXMLRPCHTTPGETServer.test_lambdaxse��	�	
����E�3�'�'�'��;�*�*�,�,���
�
�F��m�m�o�o�	'�	'�	'�	'�	'r
�z)Docstrings are omitted with -O2 and abovec��	|j�dd��|j������}|�d|��dS)NrrsG<dl><dt><a name="-add"><strong>add</strong></a>(x, y)</dt><dd><tt>Add&nbsp;two&nbsp;instances&nbsp;together.&nbsp;This&nbsp;follows&nbsp;<a href="https://peps.python.org/pep-0008/">PEP008</a>,&nbsp;but&nbsp;has&nbsp;nothing<br>
to&nbsp;do&nbsp;with&nbsp;<a href="https://www.rfc-editor.org/rfc/rfc1952.txt">RFC1952</a>.&nbsp;Case&nbsp;should&nbsp;matter:&nbsp;pEp008&nbsp;and&nbsp;rFC1952.&nbsp;&nbsp;Things<br>
that&nbsp;start&nbsp;with&nbsp;http&nbsp;and&nbsp;ftp&nbsp;should&nbsp;be&nbsp;auto-linked,&nbsp;too:<br>
<a href="http://google.com">http://google.com</a>.</tt></dd></dl>�rrrr_rir`s  r�test_autolinkingz'DocXMLRPCHTTPGETServer.test_autolinking�sp��	�	
����E�3�'�'�'��;�*�*�,�,�1�1�3�3���
�
�	6�9A�
	B�
	B�
	B�
	B�
	Br
c��	|j�dd��|j������}|�d|��dS)Nrrs�<dl><dt><a name="-system.methodHelp"><strong>system.methodHelp</strong></a>(method_name)</dt><dd><tt><a href="#-system.methodHelp">system.methodHelp</a>('add')&nbsp;=&gt;&nbsp;"Adds&nbsp;two&nbsp;integers&nbsp;together"<br>
&nbsp;<br>
Returns&nbsp;a&nbsp;string&nbsp;containing&nbsp;documentation&nbsp;for&nbsp;the&nbsp;specified&nbsp;method.</tt></dd></dl>
<dl><dt><a name="-system.methodSignature"><strong>system.methodSignature</strong></a>(method_name)</dt><dd><tt><a href="#-system.methodSignature">system.methodSignature</a>('add')&nbsp;=&gt;&nbsp;[double,&nbsp;int,&nbsp;int]<br>
&nbsp;<br>
Returns&nbsp;a&nbsp;list&nbsp;describing&nbsp;the&nbsp;signature&nbsp;of&nbsp;the&nbsp;method.&nbsp;In&nbsp;the<br>
above&nbsp;example,&nbsp;the&nbsp;add&nbsp;method&nbsp;takes&nbsp;two&nbsp;integers&nbsp;as&nbsp;arguments<br>
and&nbsp;returns&nbsp;a&nbsp;double&nbsp;result.<br>
&nbsp;<br>
This&nbsp;server&nbsp;does&nbsp;NOT&nbsp;support&nbsp;system.methodSignature.</tt></dd></dl>rmr`s  r�test_system_methodsz*DocXMLRPCHTTPGETServer.test_system_methods�sj��	�
	
����E�3�'�'�'��;�*�*�,�,�1�1�3�3���
�
�1�4<�!	=�	=�	=�	=�	=r
c��	|j�dd��|j���}|�d|�����dS)Nrrs-Try&nbsp;self.<strong>add</strong>,&nbsp;too.rhr`s  r�test_autolink_dotted_methodsz3DocXMLRPCHTTPGETServer.test_autolink_dotted_methods�s`��	�����E�3�'�'�'��;�*�*�,�,���
�
�J��m�m�o�o�	'�	'�	'�	'�	'r
c��	|j�dd��|j���}tjjdkrdnd}|�d|zdz|�����dS)Nrrrkr
s5<dd><tt>Use&nbsp;function&nbsp;annotations.</tt></dd>sJ<dl><dt><a name="-annotation"><strong>annotation</strong></a>(x: int)</dt>se</dl>
<dl><dt><a name="-method_annotation"><strong>method_annotation</strong></a>(x: bytes)</dt></dl>)rrr�sys�flags�optimizerir_)rra�	docstrings   r�test_annotationsz'DocXMLRPCHTTPGETServer.test_annotations�s���7�����E�3�'�'�'��;�*�*�,�,���I�.�!�3�3�S�S�M�	��
�
�� )�*�-C�C�
�M�M�O�O�	�	�	�	�	r
c��|j�d��|j�d��|�d|jj��|�d|jj��|j���}tjd|���	��}tjd|���	��}|�d|��|�d|��dS)Nztest_title<script>ztest_documentation<script>z<title>(.+?)</title>z<p><tt>(.+?)</tt></p>z/<title>Python: test_title&lt;script&gt;</title>z0<p><tt>test_documentation&lt;script&gt;</tt></p>)
rAr8r:r\�server_title�server_documentation�generate_html_documentation�re�search�group)r�	generated�title�
documentations    r�test_server_title_escapez/DocXMLRPCHTTPGETServer.test_server_title_escape�s���	
�	�"�"�#7�8�8�8��	�*�*�+G�H�H�H����-�t�y�/E�F�F�F����5��	�.�	0�	0�	0��I�9�9�;�;�	��	�1�9�=�=�C�C�E�E���	�":�I�F�F�L�L�N�N�
����J�E�R�R�R����K�]�[�[�[�[�[r
N)r%r&r'rRrWrbrdrfrjrrtrurvrnrprrrxr�r	r
rrDrDFs"������	H�	H�	H�!�!�!����������'�'�'���S�Y�/�1�4�@�B�B�B�B�B�B�B�,��S�Y�/�1�4�@�B�B�=�=�B�B�=�6'�'�'����
\�
\�
\�
\�
\r
rD�__main__)�
xmlrpc.serverr�http.clientrOr}rtrIr�testr�requires_working_socketrrB�TestCaserDr%�mainr	r
r�<module>r�s���)�)�)�)�)�)�����	�	�	�	�
�
�
�
������������������t�,�,�,�,����+�+�+�ZX\�X\�X\�X\�X\�X�.�X\�X\�X\�v�z����H�M�O�O�O�O�O��r