+
    Bie$                         ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ]	P                  ! RR7       R tR t ! R R	]P                  4      t]R
8X  d   ]P                   ! 4        R# R# )    )DocXMLRPCServerN)supportT)modulec                 *   a V '       g   R  # V3R lpV# )c                     V # N )funcs   &*/usr/lib/python3.14/test/test_docxmlrpc.py<lambda>)make_request_and_skipIf.<locals>.<lambda>   s    D    c                    < V3R  lpV# )c                    < V P                   P                  R R4       V P                   P                  4        \        P                  ! S4      h)GET/)clientrequestgetresponseunittestSkipTest)selfreasons   &r   make_request_and_skipImake_request_and_skipIf.<locals>.decorator.<locals>.make_request_and_skip   s8    KKs+KK##%##F++r   r	   )r
   r   r   s   & r   	decorator*make_request_and_skipIf.<locals>.decorator   s    	, %$r   r	   )	conditionr   r   s   &f r   make_request_and_skipIfr      s       % r   c                     \        RRR7      p  V P                  R4       V P                  R4       V P                  R4        ! R R\        4      pV P                  4        V P                  V! 4       4       R pR	 R
 lp ! R R4      pV P                  V4       V P                  R 4       V P                  V4       V P                  V! 4       4       V #    T P                  4        h ; i)	localhostF)logRequestsz"DocXMLRPCServer Test DocumentationzDocXMLRPCServer Test DocszmThis is an XML-RPC server's documentation, but the server can be used by POSTing to /RPC2. Try self.add, too.c                   &   a  ] tR t^%t o R tRtV tR# )make_server.<locals>.TestClassc                    Wn         R # r   arg)r   r'   s   &&r   test_method*make_server.<locals>.TestClass.test_method&   s    r   r&   N)__name__
__module____qualname____firstlineno__r(   __static_attributes____classdictcell____classdict__s   @r   	TestClassr$   %   s      r   r2   c                     W,           # r   r	   xys   &&r   addmake_server.<locals>.add-   s     5Lr   c                $    V ^8  d   QhR\         /#    r5   )int)formats   "r   __annotate__!make_server.<locals>.__annotate__5   s     	 	# 	r   c                     V # r   r	   )r5   s   &r   
annotationmake_server.<locals>.annotation5   s    Hr   c                   2   a  ] tR t^9t o V 3R lR ltRtV tR# )(make_server.<locals>.ClassWithAnnotationc                    < V ^8  d   QhRS[ /# r:   )bytes)r=   r1   s   "r   r>   5make_server.<locals>.ClassWithAnnotation.__annotate__:   s     " "5 "r   c                "    VP                  4       # r   )decode)r   r5   s   &&r   method_annotation:make_server.<locals>.ClassWithAnnotation.method_annotation:   s    xxz!r   r	   N)r*   r+   r,   r-   rJ   r.   r/   r0   s   @r   ClassWithAnnotationrD   9   s     " "r   rL   c                     W,
          # r   r	   r4   s   &&r   r   make_server.<locals>.<lambda>>   s    ACr   )r!   r   )	r   set_server_titleset_server_nameset_server_documentationobject register_introspection_functionsregister_instanceregister_functionserver_close)servr2   r7   rA   rL   s        r   make_serverrX      s    +?D(BC89%%B	C
	 	
 	--/y{+			" 	" 	s#/0z*245s   CC C)c                      a  ] tR t^Ft o R tR tR tR tR tR t	]
! ]P                  P                  ^8  R4      R 4       t]
! ]P                  P                  ^8  R4      R	 4       tR
 tR tR tRtV tR# )DocXMLRPCHTTPGETServerc                ^   R \         n        \        4       V n        \        P
                  ! V P                  P                  R7      V n        V P                  P                  4        V P                  P                  ^,          p\        P                  P                  RV,          4      V n        R# )T)targetzlocalhost:%dN)r   _send_traceback_headerrX   rW   	threadingThreadserve_foreverthreadstartserver_addresshttpr   HTTPConnection)r   PORTs   & r   setUpDocXMLRPCHTTPGETServer.setUpG   sn    15.M	&&dii.E.EFyy''*kk00$1FGr   c                    V P                   P                  4        R \        n        V P                  P                  4        V P                  P                  4        V P                  P                  4        R# )FN)	r   closer   r]   rW   shutdownra   joinrV   )r   s   &r   tearDownDocXMLRPCHTTPGETServer.tearDownR   sL     27.				 r   c                   V P                   P                  R R4       V P                   P                  4       pV P                  VP                  ^4       V P                  VP                  R4      R4       VP                  4        R# )r   r   Content-typeztext/html; charset=UTF-8Nr   r   r   assertEqualstatus	getheaderreadr   responses   & r   test_valid_get_response.DocXMLRPCHTTPGETServer.test_valid_get_response[   sc    E3';;**,#.++N;=WX 	r   c                   V P                   P                  R R4       V P                   P                  4       pV P                  VP                  ^4       V P                  VP                  R4      R4       VP                  4        R# )r   z
/pydoc.cssrp   ztext/css; charset=UTF-8Nrq   rv   s   & r   test_get_css#DocXMLRPCHTTPGETServer.test_get_csse   sc    E<0;;**,#.++N;=VW 	r   c                   V P                   P                  R R4       V P                   P                  4       pV P                  VP                  R4       V P                  VP                  R4      R4       VP                  4        R# )r   z/spami  rp   z
text/plainNrq   rv   s   & r   test_invalid_get_response0DocXMLRPCHTTPGETServer.test_invalid_get_responseo   s`    E7+;;**,#.++N;\Jr   c                    V P                   P                  R R4       V P                   P                  4       pV P                  RVP	                  4       4       R# )r   r   sU   <dl><dt><a name="-&lt;lambda&gt;"><strong>&lt;lambda&gt;</strong></a>(x, y)</dt></dl>Nr   r   r   assertInru   rv   s   & r   test_lambda"DocXMLRPCHTTPGETServer.test_lambdax   sE     	E3';;**, Fmmo	'r   z)Docstrings are omitted with -O2 and abovec                    V P                   P                  R R4       V P                   P                  4       P                  4       pV P	                  RV4       R# )r   r   sG  <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>Nr   r   r   ru   r   rv   s   & r   test_autolinking'DocXMLRPCHTTPGETServer.test_autolinking   sK     	E3';;**,113	6 9A
	Br   c                    V P                   P                  R R4       V P                   P                  4       P                  4       pV P	                  RV4       R# )r   r   s  <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>Nr   rv   s   & r   test_system_methods*DocXMLRPCHTTPGETServer.test_system_methods   sI     	E3';;**,1131 4<!	=r   c                    V P                   P                  R R4       V P                   P                  4       pV P                  RVP	                  4       4       R# )r   r   s-   Try&nbsp;self.<strong>add</strong>,&nbsp;too.Nr   rv   s   & r   test_autolink_dotted_methods3DocXMLRPCHTTPGETServer.test_autolink_dotted_methods   sB     	E3';;**,Jmmo	'r   c                   V P                   P                  R R4       V P                   P                  4       p\        P                  P
                  ^8  d   RMRpV P                  RV,           R,           VP                  4       4       R# )r   r   r   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>N)r   r   r   sysflagsoptimizer   ru   )r   rw   	docstrings   &  r   test_annotations'DocXMLRPCHTTPGETServer.test_annotations   st    E3';;**,II..!3SM 	 )*-CC MMO	r   c                   V P                   P                  R 4       V P                   P                  R4       V P                  R V P                   P                  4       V P                  RV P                   P
                  4       V P                   P                  4       p\        P                  ! RV4      P                  4       p\        P                  ! RV4      P                  4       pV P                  RV4       V P                  RV4       R# )ztest_title<script>ztest_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>N)
rW   rO   rQ   rr   server_titleserver_documentationgenerate_html_documentationresearchgroup)r   	generatedtitledocumentations   &   r   test_server_title_escape/DocXMLRPCHTTPGETServer.test_server_title_escape   s     			""#78		**+GH-tyy/E/EF5		..	0 II99;			19=CCE		":IFLLNJERK][r   )r   rW   ra   N)r*   r+   r,   r-   rg   rm   rx   r{   r~   r   r   r   r   r   r   r   r   r   r   r.   r/   r0   s   @r   rZ   rZ   F   s     	H!' SYY//14@BBBB, SYY//14@B=B=6'\ \r   rZ   __main__)xmlrpc.serverr   http.clientrd   r   r   r^   r   testr   requires_working_socketr   rX   TestCaserZ   r*   mainr	   r   r   <module>r      sb    )  	 
      t ,+ZX\X.. X\v zMMO r   