
    0hhE                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJr	  S SK
rS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJrJrJr   S SKr\R>                  " SS	9  S
SSSS/\	R@                  " S5      S\!" S5      SSS\	RD                  " S5      \	RD                  " S5      \	RD                  " \R                  " SSSSSS5      5      S./r# " S S\RH                  5      r% " S S\RH                  5      r& " S S \RH                  5      r' " S! S"\RH                  5      r( " S# S$\RH                  5      r) " S% S&\RH                  5      r*S=q+=q,q-SMS' jr.SNS( jr/S) r0S* r1 " S+ S,\RH                  5      r2 " S- S.\25      r3 " S/ S0\25      r4 " S1 S2\25      r5 " S3 S4\25      r6 " S5 S6\65      r7 " S7 S8\65      r8\Rr                  " \SL S95       " S: S;\25      5       r:\Rr                  " \SL S95       " S< S=\RH                  5      5       r; " S> S?\25      r< " S@ SA\RH                  5      r= " SB SC\R                  R|                  5      r? " SD SE\RH                  5      r@\R                  SOSF j5       rB " SG SH\RH                  5      rC " SI SJ\RH                  5      rDSK rE\FSL:X  a  \R                  " 5         gg! \ a    Sr GNrf = f)P    N)mock)support)	os_helper)socket_helper)threading_helper)	ALWAYS_EQLARGESTSMALLESTT)modulezfoo@bar.baz.spamgHzns@i      z.zyx.41   my dog has fleasFu	   䀀怀耀zregular value20050210T11:41:23)	  r   
      )      r      r   r   r   r   r   )astringafloatanint
ashortlonganotherlistabase64b64bytesb64bytearraybooleanunicodeu   ukey䀀	datetime1	datetime2	datetime3c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)XMLRPCTestCase0   c                     [         R                  " [        45      n[         R                  " U5      nU R	                  [        US   S   5        g )Nr   )	xmlrpclibdumpsalistloadsassertEqual)selfdumploads      9/opt/python-3.13.8/usr/lib/python3.13/test/test_xmlrpc.pytest_dump_loadXMLRPCTestCase.test_dump_load2   s8    x(t$Q
+    c                    [         R                   " SSSSSS5      nU R                  U[        R                  " S5      5        [        R                  " U45      n[        R
                  " USS	9u  p4Uu  nU R                  XQ5        U R                  [        U5      [         R                   5        U R                  U5        [        R
                  " US
S	9u  p4Uu  nU R                  XQ5        U R                  [        U5      [        R                  5        U R                  U5        [        R
                  " USS9u  p4Uu  nU R                  XQ5        U R                  [        U5      [         R                   5        U R                  U5        [        R
                  " US
S9u  p4Uu  nU R                  XQ5        U R                  [        U5      [        R                  5        U R                  U5        g )Nr   r   r   r   r   r   r   Tuse_builtin_typesF)use_datetime	datetimer+   r'   DateTimer(   r*   assertIstypeassertIsNoner,   dtsresultmnewdts         r/   test_dump_bare_datetime&XMLRPCTestCase.test_dump_bare_datetime7   s~   
 tQBB7Y//0CDEOORE"OOA>	#d5k8#4#45!OOA?	#d5k9#5#56!OOAD9	#d5k8#4#45!OOAE:	#d5k9#5#56!r2   c                 L   [         R                   " SSSSSS5      nU R                  U[        R                  " S5      5        [        R                  " U45      n[        R
                  " USS	9u  p4Uu  nU R                  XQ5        U R                  [        U5      [         R                   5        U R                  U5        [        R
                  " US
S	9u  p4Uu  nU R                  XQ5        U R                  [        U5      [        R                  5        U R                  U5        g )Nr   r   r   r   r   r   z00010210T11:41:23Tr4   Fr7   r=   s         r/   test_datetime_before_1900(XMLRPCTestCase.test_datetime_before_1900Y   s    q1b"b"5Y//0CDEOORE"OOA>	#d5k8#4#45!OOA?	#d5k9#5#56!r2   c                 "   [         R                  " 5       n[         R                  " [         R                  " U4SS95      u  u  p#U R	                  UR
                  [        5        [         R                  " U4SS9nU R	                  U[        5        g )NTmethodresponse)r'   r9   r*   r(   assertIsInstancevaluestr)r,   dnew_ddummyr?   s        r/   test_bug_1164912XMLRPCTestCase.test_bug_1164912k   so     %OOIOOQD;?-A B%ekk3/ OOUHT:a%r2   c                      " S S[         5      nU" 5       nSUl        SUl        [        R                  " [        R
                  " U45      5      u  u  p4U R                  X2R                  5        g )Nc                       \ rS rSrSrg)-XMLRPCTestCase.test_newstyle_class.<locals>.Tv    N)__name__
__module____qualname____firstlineno____static_attributes__rW   r2   r/   TrU   v   s    r2   r]   d   Hello)objectxyr'   r*   r(   r+   __dict__)r,   r]   tt2rP   s        r/   test_newstyle_class"XMLRPCTestCase.test_newstyle_classu   sR    	 	C"!)>?"ZZ(r2   c                 V    U R                  [        [        R                  SS-  45        g )Nr   c   )assertRaisesOverflowErrorr'   r(   r,   s    r/   test_dump_big_long!XMLRPCTestCase.test_dump_big_long~   s    -1b5(Cr2   c                 T    U R                  [        [        R                  SS045        g )Nr   r      r   rj   	TypeErrorr'   r(   rl   s    r/   test_dump_bad_dict!XMLRPCTestCase.test_dump_bad_dict   s    )Y__|oFr2   c                     / SQnSSSU/nUR                  U5        U R                  [        [        R                  U45        g )Nrp   rq         )appendrj   rs   r'   r(   )r,   lrd   s      r/   test_dump_recursive_seq&XMLRPCTestCase.test_dump_recursive_seq   s7    q1I	)Y__qd;r2   c                 l    SSS.nSUS.nX!S'   U R                  [        [        R                  U45        g )Nr   )12rq   )3rN   rd   rr   r,   rN   rd   s      r/   test_dump_recursive_dict'XMLRPCTestCase.test_dump_recursive_dict   s3    NN#)Y__qd;r2   c                 J   [         R                  S:  a/  U R                  [        [        R
                  [        S5      45        [        R
                  " [        R                  [        R                  45        U R                  [        [        R
                  [        R                  S-   45        U R                  [        [        R
                  [        R                  S-
  45        S n[        R                  " 5       nUR                  [        R                  U5        UR                  [        R                  U5        U R                  [        UR                  [        R                  S-   U5        U R                  [        UR                  [        R                  S-
  U5        g )Ni        r   c                     g NrW   r?   s    r/   dummy_write5XMLRPCTestCase.test_dump_big_int.<locals>.dummy_write       r2   )sysmaxsizerj   rk   r'   r(   intMAXINTMININT
Marshallerdump_intr,   r   rA   s      r/   test_dump_big_int XMLRPCTestCase.test_dump_big_int   s#   ;; mY__"5zm- 	))9+;+;<=-$++A-/	1-$++A-/	1	   "	

9##[1	

9##[1-#**1,k	;-#**1,k	;r2   c                    [         R                  " [        S5      45        [         R                  " [        [         R                  5      [        [         R                  5      45        [         R                  " [        [         R                  S-   5      [        [         R                  S-
  5      45        S n[         R
                  " 5       nUR                  [         R                  U5        UR                  [         R                  U5        UR                  [         R                  S-   U5        UR                  [         R                  S-
  U5        g )Nr   *   c                     g r   rW   r   s    r/   r   4XMLRPCTestCase.test_dump_double.<locals>.dummy_write   r   r2   )r'   r(   floatr   r   r   dump_doubler   s      r/   test_dump_doubleXMLRPCTestCase.test_dump_double   s    w)*y//0y//02 	3y//"45y//"457 	8	   "	i&&4	i&&4	i&&+[9	i&&+[9r2   c                     [         S /-   n[         S /-   4n[        R                  " USS9nU R                  U[        R                  " U5      S   S   5        U R                  [        [        R                  U45        g )NT)
allow_noner   )r)   r'   r(   r+   r*   rj   rs   )r,   rL   arg1strgs       r/   test_dump_noneXMLRPCTestCase.test_dump_none   si     t5#//$/215	7)Y__tg>r2   c                    SS0n[         R                  " U4SS9nSU-   nU R                  [         R                  " U5      S   S   U5        UR	                  SS5      nU R                  [         R                  " U5      S   S   U5        [         R                  " U4SSS	9nU R                  [         R                  " U5      S   S   U5        UR	                  SS5      nU R                  [         R                  " U5      S   S   U5        S
n[         R                  " U4SUS9nU R                  [         R                  " U5      S   S   U5        U R                  [         R                  " U5      S   U5        g )Nu   key€¤u
   value€¤iso-8859-15encodingz,<?xml version='1.0' encoding='iso-8859-15'?>r   xmlcharrefreplaceT)r   rJ   u   method€¤)r   
methodnamer   )r'   r(   r+   r*   encode)r,   rL   r   r   s       r/   test_dump_encoding!XMLRPCTestCase.test_dump_encoding   sM    "$x-@=D.q1!4e<{{=*=>.q1!4e<x-.24.q1!4e<{{=*=>.q1!4e<'
x-*46.q1!4e<.q1:>r2   c                 Z   SnU R                  U[        R                  " U5      5        [        [        [        R                  4 H  nU" U5      n[        R
                  " U45      n[        R                  " USS9u  pVUu  nU R                  Xq5        U R                  [        U5      [        5        U R                  U5        [        R                  " USS9u  pVUu  nU R                  Xq5        U R                  [        U5      [        R                  5        U R                  U5        M     g )Nr   Tr4   F)
r+   r'   Binarybytes	bytearrayr(   r*   r:   r;   r<   )r,   sampletype_rL   r?   r@   rA   newvalues           r/   test_dump_bytesXMLRPCTestCase.test_dump_bytes   s    $!1!1&!9:Iy'7'77E&ME)A!TBIF KXX.MM$x.%0a !UCIF KXX.MM$x.)*:*:;a  8r2   c                     [         R                  nSnU R                  U[         R                  U5        SnU R                  U[         R                  U5        SnU R                  U[         R                  U5        g )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'   ResponseErrorrj   r*   )r,   r   datas      r/   test_loads_unsupported%XMLRPCTestCase.test_loads_unsupported   sf    !//G-$?4 	-$?5 	-$?r2   c                     SU-  n[         R                  " U40 UD6u  pVUu  nU R                  Xr5        U R                  [	        U5      [	        U5      5        U R                  U5        g )Nz1<params><param><value>%s</value></param></params>)r'   r*   r+   r:   r;   r<   )r,   r?   rL   kwargsr-   r@   rA   r   s           r/   check_loadsXMLRPCTestCase.check_loads   sZ    BQFOOD3F3	)d8nd5k2!r2   c                    U R                   nU" SS5        U" SS5        U" SS5        U" SS5        U" SS5        U" S	S5        U" S
S5        U" SS5        U" S[        R                  " S5      5        U" SSSS9  U" S[        R                  " S5      5        U" S[        R                  " SSSSSS5      SS9  U" SSS/5        U" SSSS.5        g )Nstringz<string>string</string>u4   <string>𝔘𝔫𝔦𝔠𝔬𝔡𝔢 string</string>u#   𝔘𝔫𝔦𝔠𝔬𝔡𝔢 stringz<int>2056183947</int>izz<int>-2056183947</int>iuqz<i4>2056183947</i4>z<double>46093.78125</double>g    @z<boolean>0</boolean>Fz%<base64>AGJ5dGUgc3RyaW5n/w==</base64>s    byte stringTr4   z6<dateTime.iso8601>20050210T11:41:23</dateTime.iso8601>r   r   r   r   r   r   r   zR<array><data><value><int>1</int></value><value><int>2</int></value></data></array>r   z<struct><member><name>b</name><value><int>2</int></value></member><member><name>a</name><value><int>1</int></value></member></struct>)ab)r   r'   r   r9   r8   r,   checks     r/   test_load_standard_types'XMLRPCTestCase.test_load_standard_types   s      h!'2DFkl%z2&4#Z0,k:$e,556	85$	>F  !45	7FaRR8 $	& 	  "#Q	) 	  "#+	-r2   c                     U R                   nU" SS 5        U" SS 5        U" SS5        U" SS5        U" SS5        U" S	S
5        U" SS5        U" S[        R                  " S5      5        g )Nz<nil/>z	<ex:nil/>z<i1>205</i1>   z<i2>20561</i2>iQP  z<i8>9876543210</i8>l   `	 z-<biginteger>98765432100123456789</biginteger>l   5?4*UU z<float>93.78125</float>g     rW@z.<bigdecimal>9876543210.0123456789</bigdecimal>z9876543210.0123456789)r   decimalDecimalr   s     r/   test_load_extension_types(XMLRPCTestCase.test_load_extension_types  sr      hk4 nc"&#Z0="	$'2>oo56	8r2   c                    U R                   nSn[        R                  " U5         SUS-   -  nU R                  [        5         U" SU S3S 5        S S S 5        U R                  [        5         U" SU S3S 5        S S S 5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       N(= f! , (       d  f       g = f)Ni  r~   r   z<int>z</int>z<biginteger>z</biginteger>)r   r   adjust_int_max_str_digitsrj   
ValueError)r,   r   	maxdigitsr?   s       r/   test_limit_intXMLRPCTestCase.test_limit_int$  s      	..y9y1}%A"":.aS'. /"":.QC}5t< /	 :9....	 :9s;   B/BB/.B<B/
B	B/
B,	(B//
B=c                     [         R                  R                  5       nU R                  UR	                  S5      SS/0 45        g )Nzuser@host.tldzhost.tld)AuthorizationzBasic dXNlcg==)xmlrpcclient	Transportr+   get_host_info)r,   transps     r/   test_get_host_info!XMLRPCTestCase.test_get_host_info.  sA    ((*--o>%?@"F	Gr2   c                     SS K nSn [        R                  R	                  S5      R                  5         g ! [         a    Sn N=f = f! [         a    U R                  US5         g [         a    U R                  U5         g f = f)Nr   TFzhttps://localhost:9999z&xmlrpc client's error with SSL support)
sslImportErrorr   r   ServerProxybad_functionNotImplementedErrorassertFalseOSError
assertTrue)r,   r   has_ssls      r/   test_ssl_presence XMLRPCTestCase.test_ssl_presence5  s~    	 G	%MM%%&>?LLN  	G	 # 	PW&NO 	%OOG$	%s&   7 -A	 AA	B'BBc                 ~  ^  " S S[         R                  R                  5      nU4S jn[         R                  R                  [        R
                  S4U5      mU R                  TR                  5        [        R                  " US9nUR                  5         U R                  UR                  5        SR                  " TR                  6 n[        R                  " U5       nU R!                  UR#                  5       S5        U R!                  UR#                  5       S5        S S S 5        g ! , (       d  f       g = f)Nc                   (    \ rS rSrSrSrS rS rSrg)@XMLRPCTestCase.test_keepalive_disconnect.<locals>.RequestHandleriD  HTTP/1.1Fc                    [        U R                  R                  S5      5      nU R                  R	                  U5        U R
                  (       a  SU l        g [        R                  " SSS9nUR                  5       nU R                  [        R                  R                  5        U R                  S[        U5      5        U R!                  5         U R"                  R%                  U5        SU l        SU l        g )NContent-LengthT)rx   rI   F)r   headersgetrfilereadhandledclose_connectionr'   r(   r   send_responsehttp
HTTPStatusOKsend_headerlenend_headerswfilewrite)r,   lengthresponses      r/   do_POSTHXMLRPCTestCase.test_keepalive_disconnect.<locals>.RequestHandler.do_POSTH  s    T\\--.>?@

'<<,0D)$??4E#??,""4??#5#56  !13x=A  "

  *#(-%r2   c                     g r   rW   )r,   formatargss      r/   log_messageLXMLRPCTestCase.test_keepalive_disconnect.<locals>.RequestHandler.log_messageW  s    r2   )r   r   N)	rX   rY   rZ   r[   protocol_versionr   r   r  r\   rW   r2   r/   RequestHandlerr   D  s    )G.r2   r  c                     > T R                   R                  [        S5      5        T R                  5         T R                  5         g Nr   )socket
settimeoutr   handle_request)servers   r/   
run_server<XMLRPCTestCase.test_keepalive_disconnect.<locals>.run_server[  s1    MM$$U1X.!!#!!#r2   r   )targetzhttp://{}:{}/rx   )r   r  BaseHTTPRequestHandler
HTTPServerr   HOST
addCleanupserver_close	threadingThreadstartjoinr  server_addressr'   r   r+   method)r,   r  r  threadurlpr  s         @r/   test_keepalive_disconnect(XMLRPCTestCase.test_keepalive_disconnectC  s    	T[[?? 	.	$
 ''););Q(?P++,!!4$$$f&;&;<""3'1QXXZ+QXXZ+ (''s   $AD..
D<rW   N)rX   rY   rZ   r[   r0   rC   rF   rQ   rf   rm   rt   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r\   rW   r2   r/   r$   r$   0   su    ,
D$&)DG<<;,: ??*!&@-68=G%%,r2   r$   c                   N    \ rS rSr " S S\5      rS rS rS rS r	S r
S	 rS
rg)SimpleXMLRPCDispatcherTestCaseik  c                       \ rS rSrSrSrg)*SimpleXMLRPCDispatcherTestCase.DispatchExcil  zKRaised inside the dispatched functions when checking for
chained exceptionsrW   N)rX   rY   rZ   r[   __doc__r\   rW   r2   r/   DispatchExcr$  l  s    	r2   r&  c                   ^  SnU 4S jn[         R                  R                  5       nUR                  U5        T R	                  T R
                  5       nUR                  SU5        SSS5        T R                  WR                  R                  U45        T R                  UR                  R                  5        T R                  UR                  R                  5        g! , (       d  f       N= f)z$Calls explicitly registered functionrp   c                  &   > TR                  U 5      er   )r&  )paramsr,   s    r/   dispatched_funcQSimpleXMLRPCDispatcherTestCase.test_call_registered_func.<locals>.dispatched_funcw  s    ""6**r2   r*  N)r   r  SimpleXMLRPCDispatcherregister_functionrj   r&  	_dispatchr+   	exceptionr  r<   	__cause____context__)r,   
exp_paramsr*  
dispatcherexc_ctxs   `    r/   test_call_registered_func8SimpleXMLRPCDispatcherTestCase.test_call_registered_funcp  s    
 
	+ ]]99;
$$_5t//0G  !2J? 1**//*?'++556'++778	 10s   C!!
C/c                    Sn " S S5      n[         R                  R                  5       nUR                  U" 5       5        U R	                  U R
                  5       nUR                  SU5        SSS5        U R                  WR                  R                  U45        U R                  UR                  R                  5        U R                  UR                  R                  5        g! , (       d  f       N= f)z3Calls a registered instance attribute as a functionrp   c                       \ rS rSrS rSrg)OSimpleXMLRPCDispatcherTestCase.test_call_instance_func.<locals>.DispatchedClassi  c                 ,    [         R                  U5      er   r"  r&  )r,   r)  s     r/   r*  _SimpleXMLRPCDispatcherTestCase.test_call_instance_func.<locals>.DispatchedClass.dispatched_func  s    4@@HHr2   rW   N)rX   rY   rZ   r[   r*  r\   rW   r2   r/   DispatchedClassr9    s    Ir2   r=  r*  Nr   r  r,  register_instancerj   r&  r.  r+   r/  r  r<   r0  r1  )r,   r2  r=  r3  r4  s        r/   test_call_instance_func6SimpleXMLRPCDispatcherTestCase.test_call_instance_func  s    
 
	I 	I ]]99;
$$_%67t//0G  !2J? 1**//*?'++556'++778	 10s   C))
C7c                    SnSn " S S5      n[         R                  R                  5       nUR                  U" 5       5        U R	                  U R
                  5       nUR                  X5        SSS5        U R                  WR                  R                  X45        U R                  UR                  R                  5        U R                  UR                  R                  5        g! , (       d  f       N= f)z4Calls the registered instance's `_dispatch` functionr  rp   c                       \ rS rSrS rSrg)LSimpleXMLRPCDispatcherTestCase.test_call_dispatch_func.<locals>.TestInstancei  c                 ,    [         R                  X5      er   r;  )r,   r  r)  s      r/   r.  VSimpleXMLRPCDispatcherTestCase.test_call_dispatch_func.<locals>.TestInstance._dispatch  s    4@@$ $r2   rW   N)rX   rY   rZ   r[   r.  r\   rW   r2   r/   TestInstancerD    s    $r2   rG  Nr>  )r,   
exp_methodr2  rG  r3  r4  s         r/   test_call_dispatch_func6SimpleXMLRPCDispatcherTestCase.test_call_dispatch_func  s    
 

	$ 	$
 ]]99;
$$\^4t//0G  8 1**//*1IJ'++556'++778	 10s   C**
C8c                     [         R                  R                  5       nUR                  SSS9  U R	                  [
        S5         UR                  SS5        SSS5        g! , (       d  f       g= f)z2Calls explicitly registered function which is NoneNr  nameparam)r   r  r,  r-  assertRaisesRegex	Exceptionr.  r,   r3  s     r/   test_registered_func_is_none;SimpleXMLRPCDispatcherTestCase.test_registered_func_is_none  sU     ]]99;
$$T$9##Ix8  :6 988s   A!!
A/c                     [         R                  R                  5       nUR                  [	        5       5        U R                  [        S5         UR                  SS5        SSS5        g! , (       d  f       g= f)z>Attempts to call nonexistent function on a registered instancer  rN  N)r   r  r,  r?  r`   rP  rQ  r.  rR  s     r/   test_instance_has_no_func8SimpleXMLRPCDispatcherTestCase.test_instance_has_no_func  sR     ]]99;
$$VX.##Ix8  :6 988s   A**
A8c                     [         R                  R                  5       nU R                  [        S5         UR                  SS5        SSS5        g! , (       d  f       g= f)z2Calls a function that the dispatcher cannot locater  rN  N)r   r  r,  rP  rQ  r.  rR  s     r/   test_cannot_locate_func6SimpleXMLRPCDispatcherTestCase.test_cannot_locate_func  sB     ]]99;
##Ix8  :6 988s   A
ArW   N)rX   rY   rZ   r[   rQ  r&  r5  r@  rI  rS  rV  rY  r\   rW   r2   r/   r"  r"  k  s,    i 9$9&9*777r2   r"  c                       \ rS rSrS rSrg)HelperTestCasei  c                     U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        g )Nza&bza&amp;bza<bza&lt;bza>bza&gt;b)r+   r'   escaperl   s    r/   test_escapeHelperTestCase.test_escape  sS    ))%0)<))%0(;))%0(;r2   rW   N)rX   rY   rZ   r[   r_  r\   rW   r2   r/   r\  r\    s    <r2   r\  c                   &    \ rS rSrS rS rS rSrg)FaultTestCasei  c                     [         R                  " SS5      nU R                  [        U5      S5        U R                  [        U5      [	        U5      5        g )Nr   
Test Faultz<Fault 42: 'Test Fault'>)r'   Faultr+   reprrM   )r,   fs     r/   	test_reprFaultTestCase.test_repr  s?    OOB-a"<=a#a&)r2   c                    [         R                  " SS5      n[         R                  " U45      n[         R                  " U5      u  u  p4U R	                  USSS.5        U R	                  US 5        [         R
                  " 5       R                  U5      nU R                  [         R                  [         R                  U5        g )Nr   rd  )	faultCodefaultString)r'   re  r(   r*   r+   r   rj   )r,   rg  r?   newfrA   s        r/   test_dump_faultFaultTestCase.test_dump_fault  s    OOB-OOQD!__Q'
RMND!  "((+)//9??A>r2   c                     U R                  [        [        R                  R                  [
        S5        U R                  [        R                  R	                  [
        S5      5        g N__addtitle)rj   AttributeErrorr   r  resolve_dotted_attributerM   r   rl   s    r/   test_dotted_attribute#FaultTestCase.test_dotted_attribute  sC     	. --@@#w	P>>sGLMr2   rW   N)rX   rY   rZ   r[   rh  rn  rv  r\   rW   r2   r/   rb  rb    s    *
?Nr2   rb  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)DateTimeTestCasei  c                 T   [         R                  " S5       n[        R                  " / SQ5      nX!l        [        R
                  " 5       n[        R                  " 5       nU R                  [        U5      [        R                  " SU5      5        S S S 5        g ! , (       d  f       g = f)Nztime.localtime)	i        r      1   r      r   %Y%m%dT%H:%M:%S)r   patchtimestruct_timereturn_value	localtimer'   r9   r+   rM   strftime)r,   localtime_mocktime_structr  rd   s        r/   test_defaultDateTimeTestCase.test_default  st    ZZ()^**35K*5'(I""$ASV!]]+<iHJ *))s   A9B
B'c           	          Sn[         R                  " U5      nU R                  [        U5      [        R
                  " S[        R                  " U5      5      5        g Ngl]ޮAr  )r'   r9   r+   rM   r  r  r  r   s      r/   	test_timeDateTimeTestCase.test_time  sD    q!Q'8$..:KL	Nr2   c                 j    Sn[         R                  " U5      nU R                  [        U5      S5        g )N)	     	   r   &   2   rx      r   z20070609T10:38:50)r'   r9   r+   rM   r   s      r/   test_time_tuple DateTimeTestCase.test_time_tuple  s,    'q!Q!45r2   c                     [         R                  " S5      n[        R                  " U5      nU R	                  [        U5      [         R                  " SU5      5        g r  )r  r  r'   r9   r+   rM   r  r   s      r/   test_time_struct!DateTimeTestCase.test_time_struct  sA    NN,-q!Q/@!!DEr2   c           	      L   [         R                   " SSSSSS5      n[        R                  " U5      nU R                  [	        U5      S5        [         R                   " SS	S
SS[         R
                  S9n[        R                  " U5      nU R                  [	        U5      S5        g )Nr  r   r   rq   rw   rx   z20070102T03:04:05i  r           )tzinfoz20230612T13:30:00)r8   r'   r9   r+   rM   UTCr   s      r/   test_datetime_datetime'DateTimeTestCase.test_datetime_datetime  s    d1Qq1-q!Q!45 dAr2r(,,Gq!Q!45r2   c                     [         R                   " SSSSSS5      n[        R                  " U5      nS[        U5      -  nU R	                  [        U5      U5        g )Nr  r   r   rq   rw   rx   z%<DateTime '20070102T03:04:05' at %#x>)r8   r'   r9   idr+   rf  )r,   rN   rd   vals       r/   rh  DateTimeTestCase.test_repr  sN    d1Qq1-q!4r!u<a#&r2   c           
      "   Sn[         R                  " 5       nUR                  U5        [         R                  " [        R                  " SSSSSS5      5      nU R	                  X#5        [         R
                  " U5      nU R	                  XC5        g )Nz 20070908T07:11:13  r  r     r{  r   r  )r'   r9   decoder8   r+   	_datetime)r,   rN   t1trefre   s        r/   test_decodeDateTimeTestCase.test_decode  sq    "!
		!!!("3"3D1Qr""EF"  #"r2   c                    [         R                   R                  5       n[        R                  " UR	                  5       5      nU R                  X!:H  5        U R                  X:H  5        U[         R                  " SS9-   nU R                  X2:  5        U R                  X#:  5        UR                  S5      nU R                  X$:H  5        U R                  XB:H  5        [        R                  " UR	                  5       5      nU R                  XT:  5        U R                  XE:  5        UR                  S5      nUR	                  5       nU R                  US:H  5        U R                  X&:g  5        U R                  U[        U5      :H  5        U R                  X':g  5        U R                  [        5         U[        S5      :    S S S 5        U R                  [        5         X&:    S S S 5        U R                  [        5         U[        U5      :*    S S S 5        U R                  [        5         X':    S S S 5        U R                  U[        :H  5        U R                  U[        :g  5        U R                  U[        :  5        U R                  U[        :  5        U R                  U[        :*  5        U R                  U[        :  5        U R                  U[         :  5        U R                  U[         :  5        U R                  U[         :*  5        U R                  U[         :  5        g ! , (       d  f       GNp= f! , (       d  f       GN`= f! , (       d  f       GNF= f! , (       d  f       GN6= f)Nrw   )secondsr  asciii  )r8   nowr'   r9   	timetupler   	timedeltar  r   r   r   rj   rs   r   r   r	   r
   )r,   r  dtimethendstr
dtime_thendbytesdtuples           r/   test_comparison DateTimeTestCase.test_comparison  s   ##%""3==?3 	%%X''22&% ||-.&&''(89

*+)* W%$'()F"334(y)E$K *y)N *y)Yv&& *y)O * 	*+)+,()()')*)*()(*+)*% *)))))))s0   4L, L>M.M",
L;>
M
M"
M1rW   N)rX   rY   rZ   r[   r  r  r  r  r  rh  r  r  r\   rW   r2   r/   ry  ry    s-    JN6
F
	6'#,+r2   ry  c                   &    \ rS rSrS rS rS rSrg)BinaryTestCaseiD  c                 d    [         R                  " 5       nU R                  [        U5      S5        g )N r'   r   r+   rM   )r,   rd   s     r/   r  BinaryTestCase.test_defaultK  s$    Q$r2   c                 ~    Sn[         R                  " U5      nU R                  [        U5      [        US5      5        g Ns   abc123zlatin-1r  r   s      r/   test_stringBinaryTestCase.test_stringO  s2    )QQQ	!23r2   c                 @   Sn[         R                  " U5      n[        R                  " 5       nUR	                  U5        U R                  [        U5      [        US5      5        [        R                  " U5      nU R                  [        U5      [        US5      5        g r  )base64encodebytesr'   r   r  r+   rM   _binary)r,   rN   der  re   s        r/   r  BinaryTestCase.test_decodeT  sv    )"
		"R#a"34r"R#a"34r2   rW   N)rX   rY   rZ   r[   r  r  r  r\   rW   r2   r/   r  r  D  s    %4
5r2   r  c                     " S S5      n " S S[         R                  R                  5      nU(       d  [         R                  R                  nU" SUUSSS9n UR	                  5         UR
                  R                  5       u  qqS[        [        4-  q	UR                  5         UR                  5         UR                  5         UR                  [        5        UR                  S	 S
5        UR                  S 5       nUR                  SS9S 5       nU" 5       n	UR                  U	SS9  U R!                  5         US:  a  UR#                  5         US-  nUS:  a  M  UR
                  R'                  5         S qU R!                  5         g ! [$         a     N9f = f! UR
                  R'                  5         S qU R!                  5         f = f)Nc                   4    \ rS rSrS rS r " S S5      rSrg)&http_server.<locals>.TestInstanceClassie  c                 
    X-  $ r   rW   r,   ra   rb   s      r/   div*http_server.<locals>.TestInstanceClass.divf  	    6Mr2   c                     US:X  a  gg Nr  This is the div functionrW   r,   rM  s     r/   _methodHelp2http_server.<locals>.TestInstanceClass._methodHelpi      u}1 r2   c                   $    \ rS rSr\S 5       rSrg).http_server.<locals>.TestInstanceClass.Fixtureim  c                      g)N42rW   rW   r2   r/   getData6http_server.<locals>.TestInstanceClass.Fixture.getDatan  s    r2   rW   N)rX   rY   rZ   r[   staticmethodr  r\   rW   r2   r/   Fixturer  m  s     r2   r  rW   N)rX   rY   rZ   r[   r  r  r  r\   rW   r2   r/   TestInstanceClassr  e  s    		2	 	r2   r  c                       \ rS rSrS rSrg)#http_server.<locals>.MyXMLRPCServerir  c                 b    U R                   R                  5       u  pUR                  S5        X4$ NTr
  acceptsetblockingr,   r?   ports      r/   get_request/http_server.<locals>.MyXMLRPCServer.get_requests  +     kk((*GAMM$7Nr2   rW   NrX   rY   rZ   r[   r  r\   rW   r2   r/   MyXMLRPCServerr  r      	r2   r  	localhostr   F)r   logRequestsbind_and_activatehttp://%s:%dc                     U $ r   rW   )ra   s    r/   <lambda>http_server.<locals>.<lambda>  s    r2      têštc                      gThis is my functionTrW   rW   r2   r/   my_function http_server.<locals>.my_function  s     r2   addrL  c                 
    X-   $ r   rW   ra   rb   s     r/   _http_server.<locals>._  s	    5Lr2   T)allow_dotted_namesr   r   )r   r  SimpleXMLRPCServerSimpleXMLRPCRequestHandlerserver_bindr
  getsocknameADDRPORTURLserver_activate register_introspection_functionsregister_multicall_functionsr-  powr?  setr  TimeoutErrorclose)
evtnumrequestsrequestHandlerr   r  r  servr   r  testInstances
             r/   http_serverr  d  s    99  AA*N#+&+uFD#[[,,.
d
 dD\)--/))+s#{H5				 
 	 
		U		+	 
,	(*|E	 Ao!1K Ao 		   		s%   DF 
FF FF .G
c                     " S S5      nS n " S S[         R                  R                  5      nU(       d  [         R                  R                  n " S SU5      n " S S	5      nU" S
USSS9nUR                  R                  S5        UR                  5          UR                  R                  5       u  qq	S[        [        4-  q
UR                  5         / SQn	U	 Hg  n
UR                  U
[         R                  R                  5       5      nUR                  5         UR                  5         UR!                  U
4S jS5        Mi     UR#                  U	S   5      R!                  [$        5        UR#                  U	S   5      R!                  S S5        UR                  SU" 5       5        U R'                  5         US:  a  UR)                  5         US-  nUS:  a  M  UR                  R-                  5         S q	U R'                  5         g ! [*         a     N9f = f! UR                  R-                  5         S q	U R'                  5         f = f)Nc                        \ rS rSrS rS rSrg),http_multi_server.<locals>.TestInstanceClassi  c                 
    X-  $ r   rW   r  s      r/   r  0http_multi_server.<locals>.TestInstanceClass.div  r  r2   c                     US:X  a  gg r  rW   r  s     r/   r  8http_multi_server.<locals>.TestInstanceClass._methodHelp  r  r2   rW   N)rX   rY   rZ   r[   r  r  r\   rW   r2   r/   r  r    s    		2r2   r  c                      gr  rW   rW   r2   r/   r   &http_multi_server.<locals>.my_function  s    r2   c                       \ rS rSrS rSrg))http_multi_server.<locals>.MyXMLRPCServeri  c                 b    U R                   R                  5       u  pUR                  S5        X4$ r  r  r  s      r/   r  5http_multi_server.<locals>.MyXMLRPCServer.get_request  r  r2   rW   Nr  rW   r2   r/   r  r&    r  r2   r  c                       \ rS rSr/ rSrg)+http_multi_server.<locals>.MyRequestHandleri  rW   N)rX   rY   rZ   r[   	rpc_pathsr\   rW   r2   r/   MyRequestHandlerr*    s    	r2   r,  c                       \ rS rSrSS jrSrg)+http_multi_server.<locals>.BrokenDispatcheri  Nc                     [        S5      e)Nzbroken dispatcher)RuntimeError)r,   r   dispatch_methodpaths       r/   _marshaled_dispatch?http_multi_server.<locals>.BrokenDispatcher._marshaled_dispatch  s    233r2   rW   NN)rX   rY   rZ   r[   r3  r\   rW   r2   r/   BrokenDispatcherr.    s    	4r2   r6  r  F)r  r  rq   r  )
/foo/foo/bar/foo?k=v	/foo#frag/foo?k=v#fragr  //RPC2?k=v#fragc                     U $ r   rW   )r  s    r/   r  #http_multi_server.<locals>.<lambda>  s    qr2   testr   r   c                 
    X-   $ r   rW   r  s     r/   r  rA    s    ACr2   r  
/is/broken)r   r  MultiPathXMLRPCServerr	  r
  r  r
  r  r  r  r  r  add_dispatcherr,  r  r  r-  get_dispatcherr  r  r  r  r  )r  r  r  r  r   r  r,  r6  r  pathsr2  rN   s               r/   http_multi_serverrI    s   2 2<<  AA> 4 4 *,<&+uFDKK1"[[,,.
d
 dD\)

 D##D&--*N*N*PQA..0**, 0&9	 
 	E!H%77<E!H%77OL*:*<=	 Ao!1K Ao 		   		s%   EH 
HH HH .I
c                      U R                   S:X  d  U R                  c  gU R                  R                  S5      nU(       a  SUR                  5       ;   a  ggg! [         a    [	        U 5      n N5f = f)zReturns 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.r   NTX-exceptionztemporarily unavailable)errcoder   r   rt  rM   lower)eexc_messs     r/   is_unavailable_exceptionrP    si    99?aii/99==/
 -1AA Bx	  q6s   A A A10A1c                 (   ^ U (       d  S $ U4S jnU$ )Nc                     U $ r   rW   )funcs    r/   r  )make_request_and_skipIf.<locals>.<lambda>  s    Dr2   c                    > U4S jnU$ )Nc                    >  [         R                  " [        5      R                  5         [        R                  " T5      e! [         R                  [
        4 a  n[        U5      (       d  e  S nANFS nAff = fr   )	r'   r   r  r   ProtocolErrorr   rP  unittestSkipTest)r,   rN  reasons     r/   make_request_and_skipImake_request_and_skipIf.<locals>.decorator.<locals>.make_request_and_skip  sb    %%c*668 ##F++ ++W5 /22 3s   (A A6A11A6rW   )rS  r[  rZ  s     r/   	decorator*make_request_and_skipIf.<locals>.decorator  s    	, %$r2   rW   )	conditionrZ  r]  s    ` r/   make_request_and_skipIfr`    s       % r2   c                   8    \ rS rSrSrSr\" \5      rS r	S r
Srg)BaseServerTestCasei  Nr   c                    S[         R                  R                  l        [        R
                  " 5       U l        U R                  U R                  U R                  4n[        R                  " U R                  US9nUR                  5         U R                  UR                  5        U R                  R                  5         U R                  R                  5         g )NTr  r  )r   r  r  _send_traceback_headerr  Eventr  request_countr  r  
threadFuncr  r  r  waitclearr,   	serv_argsr  s      r/   setUpBaseServerTestCase.setUp  s    BF((???$XXt1143F3FG	!!yI$ 	r2   c                 v    U R                   R                  5         S[        R                  R                  l        g NF)r  ri  r   r  r  re  rl   s    r/   tearDownBaseServerTestCase.tearDown!  s%     CH((?r2   r  )rX   rY   rZ   r[   r  rg  r  r  rh  rm  rq  r\   rW   r2   r/   rb  rb    s!    NMk*JHr2   rb  c                       \ rS rSrS rS rS rS rS rS r	S r
\" \R                  R                  S	:  S
5      S 5       rS rS rS rS rS rS rS rS rS rSrg)SimpleServerTestCasei(  c           
      <    [         R                  " [        5      nU R                  UR	                  SS5      S5        g ! [         R
                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)Nr  r    
r   r  )
r'   r   r  r+   r  rW  r   rP  failgetattrr,   r  rN  s      r/   test_simple1!SimpleServerTestCase.test_simple1)  s|    	E%%c*AQUU1QZ.''1 	E+A..		aIr)BCDD /	Es   <? B3BBc           
      F   SnSn [         R                  " [        5      nU R                  UR	                  X5      X-   5        g ! [         R
                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)Nu   Pŷtu   hơnrx  r   r  )
r'   r   r  r+   r  rW  r   rP  ry  rz  r,   start_string
end_stringr  rN  s        r/   test_nonascii"SimpleServerTestCase.test_nonascii3  s    C;
	E%%c*AQUU<<)68''1 	E+A..		aIr)BCDD /	Es   =A B 3BB c           
      X   SnSn [         R                  " [        SS9nU R                  UR	                  X5      X-   5        g ! [         R
                  [        R                  4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)N   €   ¤r   r   rx  r   r  r'   r   r  r+   r  rW  r
  errorrP  ry  rz  r  s        r/   test_client_encoding)SimpleServerTestCase.test_client_encoding@  s    
	E%%cMBAQUU<<)68''6 	E+A..		aIr)BCDD /	Es   <A $B)'3B$$B)c           
      L    [         R                  " [        SS9nU R                  UR	                  S5      S5        g ! [         R
                  [        R                  4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)Nr  r   r   rx  r   r  )r'   r   r  r+      têštrW  r
  r  rP  ry  rz  r{  s      r/   test_nonascii_methodname-SimpleServerTestCase.test_nonascii_methodnameN  s    	E%%cG<AQXXb\2.''6 	E+A..		aIr)BCDD /	Es   := $B#!3BB#c                 d   [         R                  " [        R                  R	                  [
        [        5      5       nUR                  SS5        UR                  5       nS S S 5        U R                  WR                  S5        U R                  UR                  S5        g ! , (       d  f       NG= f)NPOSTz/this-is-not-validi  z	Not Found)
contextlibclosingr   r   HTTPConnectionr  r  requestgetresponser+   statusrZ  )r,   connr   s      r/   test_404SimpleServerTestCase.test_404X  s|      : :4 FG4LL!56'')H H 	#.+6 HGs   #B!!
B/c           
      |   [        / SQ5      n [        R                  " [        5      nUR                  R                  5       nU R                  [        U5      U5        g ! [        R                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)N)
r  r  r   r  r  zsystem.listMethodszsystem.methodHelpzsystem.methodSignaturezsystem.multicallr  rx  r   r  )r  r'   r   r  systemlistMethodsr+   rW  r   rP  ry  rz  )r,   expected_methodsr  methrN  s        r/   test_introspection1(SimpleServerTestCase.test_introspection1b  s      + ,	E%%c*A88'')DSY(89''1 	E+A..		aIr)BCDD /	Es   AA B;93B66B;c           
      R    [         R                  " [        5      nUR                  R	                  S5      nU R                  US5        g ! [         R                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)Nr  r  rx  r   r  r'   r   r  r  
methodHelpr+   rW  r   rP  ry  rz  )r,   r  divhelprN  s       r/   test_introspection2(SimpleServerTestCase.test_introspection2r  s    		E%%c*Ahh))%0GW&@A''1 	E+A..		aIr)BCDD /	E   AA
 
B&$3B!!B&r   z)Docstrings are omitted with -O2 and abovec           
      R    [         R                  " [        5      nUR                  R	                  S5      nU R                  US5        g ! [         R                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)Nr   r  rx  r   r  r  )r,   r  
myfunctionrN  s       r/   test_introspection3(SimpleServerTestCase.test_introspection3~  s    		E%%c*A,,];JZ)>?''1 	E+A..		aIr)BCDD /	Er  c           
      R    [         R                  " [        5      nUR                  R	                  S5      nU R                  US5        g ! [         R                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)Nr  zsignatures not supportedrx  r   r  )r'   r   r  r  methodSignaturer+   rW  r   rP  ry  rz  )r,   r  divsigrN  s       r/   test_introspection4(SimpleServerTestCase.test_introspection4  s    	E%%c*AXX--e4FV%?@''1 	E+A..		aIr)BCDD /	Er  c           
          [         R                  " [        5      n[         R                  " U5      nUR	                  SS5        UR                  SS5        UR                  SS5        U" 5       u  p4nU R                  US5        U R                  US5        U R                  US5        g ! [         R                  [        4 aB  n[        U5      (       d(  U R                  U< S	[        US
S5      < 35         S nAg  S nAg S nAff = f)Nr   rq   r  r     r   rx   rw  rx  r   r  )r'   r   r  	MultiCallr  r  r  r+   rW  r   rP  ry  rz  )r,   r  	multicall
add_result
pow_result
div_resultrN  s          r/   test_multicall#SimpleServerTestCase.test_multicall  s    	E%%c*A!++A.IMM!AMM!AMM#b!1:.JJZ-Z.Z1''1 	E+A..		aIr)BCDD /	Es   B&B) )D3D  Dc           
          [         R                  " [        5      n[         R                  " U5      nUR	                  5         U" 5       nU R                  UR                  S   S   S5        U R                  UR                  S   S   S5        g ! [         R                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)	Nr   rk  r   rl  z@<class 'Exception'>:method "this_is_not_exists" is not supportedrx  r   r  )r'   r   r  r  this_is_not_existsr+   resultsrW  r   rP  ry  rz  )r,   r  r  r@   rN  s        r/   test_non_existing_multicall0SimpleServerTestCase.test_non_existing_multicall  s    	E%%c*A!++A.I((*[F V^^A.{;Q?V^^A.}=#$ ''1 	E+A..		aIr)BCDD /	Es   BB C*(3C%%C*c                     U R                  [        [        R                  R                  [
        S5        U R                  [        R                  R	                  [
        S5      5        U R                  5         g rq  )rj   rt  r   r  ru  rM   r   r|  rl   s    r/   rv  *SimpleServerTestCase.test_dotted_attribute  sQ    . --@@#w	P 	>>sGLM 	r2   c                     [         R                  " S[        [        4-  5      nUR                  R                  5       nU R                  US5        g )Nhttp://%s:%d/RPC2r  )r'   r   r  r  r  r  r+   )r,   r  r   s      r/   test_allow_dotted_names_true1SimpleServerTestCase.test_allow_dotted_names_true  s>    &&':dD\'IJ~~%%'t$r2   c                     [         R                  " S[        [        4-  5      nU R	                  UR                  SS5      S5        g )Nr  r      éu   aé)r'   r   r  r  r+   r  r,   r  s     r/   test_unicode_host&SimpleServerTestCase.test_unicode_host  s7    &&':dD\'IJC0':r2   c                     [         R                  " [        R                  " [        [
        45      5       nUR                  S[         S[
         S3R                  S5      5        S S S 5        g ! , (       d  f       g = f)Nz@POST /RPC2 HTTP/1.0
Content-Length: 100

bye HTTP/1.1
Host: :z2
Accept-Encoding: identity
Content-Length: 0

r  )r  r  r
  create_connectionr  r  sendr   )r,   r  s     r/   test_partial_post&SimpleServerTestCase.test_partial_post  sb     8 8$ FG4II   $fAdV ,22
 39&/C HGGs   0A..
A<c                    [         R                  " [        5       nUR                  SS5        U R	                  U" S5      R
                  S5        S S S 5        U R                  W" S5      R
                  S5        g ! , (       d  f       N1= f)Nr   rq   	transportr5  )r'   r   r  r  assertNotEqual_connectionr+   r  s     r/   test_context_manager)SimpleServerTestCase.test_context_manager  sl    ""3'6JJq!{ 3 ? ? ,. ( 	,88%	'	 ('s   5A;;
B	c                 
    [         R                  " [        5       nUR                  SS5        S S S 5        U R                  W" S5      R                  S5        g ! , (       d  f       N1= f! [         R                   a     NJf = f)Nr   r   r  r5  )r'   r   r  r  re  r+   r  r  s     r/   !test_context_manager_method_error6SimpleServerTestCase.test_context_manager_method_error  sh    	&&s+v

1c" , 	,88%	'	 ,+ 		s-   A+ AA+ 
A($A+ (A+ +BBrW   N)rX   rY   rZ   r[   r|  r  r  r  r  r  r  r`  r   flagsoptimizer  r  r  r  rv  r  r  r  r  r  r\   rW   r2   r/   ru  ru  (  s    EEEE7E 
E SYY//14@B
EB
EEE"E*%;C''r2   ru  c                   .    \ rS rSr\SS j5       rS rSrg)SimpleServerEncodingTestCasei  Nc                     [        XUS5        g )Nr   )r  )r  r  r  r   s       r/   rh  'SimpleServerEncodingTestCase.threadFunc  s    CnmDr2   c           
      Z   SnSn [         R                  " [        5      nU R                  UR	                  X5      X-   5        g ! [         R
                  [        R                  4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)Nr  r  rx  r   r  r  r  s        r/   test_server_encoding1SimpleServerEncodingTestCase.test_server_encoding  s    
	E%%c*AQUU<<)68''6 	E+A..		aIr)BCDD /	Es   =A $B*(3B%%B*rW   r5  )rX   rY   rZ   r[   r  rh  r  r\   rW   r2   r/   r  r    s    E EEr2   r  c                      \ rS rSr\" \5      rSrS rS r	\
R                  " S5      S 5       r\
R                  " S5      S 5       r\
R                  " S5      S 5       r\
R                  " S5      S	 5       r\
R                  " S5      S
 5       r\
R                  " S5      S 5       r\
R                  " S5      S 5       r\
R                  " S5      S 5       r\
R                  " S5      S 5       rSrg)MultiPathServerTestCasei  r   c                     [         R                  " [        S-   5      nU R                  UR	                  SS5      S5        U R                  [         R                  UR                  SS5        g )Nr7  r  r  rw  )r'   r   r  r+   r  rj   re  r  r,   r  s     r/   
test_path1"MultiPathServerTestCase.test_path1  sL    !!#f*-qT*)//155!Q7r2   c                     [         R                  " [        S-   5      nU R                  UR	                  SS5      S5        U R                  [         R                  UR                  SS5        g )Nr8  r  r     )r'   r   r  r+   r  rj   re  r  r  s     r/   
test_path2"MultiPathServerTestCase.test_path2  sL    !!#j.1qS))//155!Q7r2   walltimec                     [         R                  " [        S-   5      nU R                  [         R                  UR
                  SS5        g )NrD  r  r  r'   r   r  rj   re  r  r  s     r/   
test_path3"MultiPathServerTestCase.test_path3  s3    !!#l"23)//155!Q7r2   c                     [         R                  " [        S-   5      nU R                  [         R                  UR
                  SS5        g )Nz/invalidr  r  r  r  s     r/   test_invalid_path)MultiPathServerTestCase.test_invalid_path  s2    !!#j.1)//155!Q7r2   c                 ~    [         R                  " [        S-   5      nU R                  UR	                  5       S5        g )Nr;  r'   r   r  r+   rB  r  s     r/   test_path_query_fragment0MultiPathServerTestCase.test_path_query_fragment  s-    !!#o"56?3r2   c                 ~    [         R                  " [        S-   5      nU R                  UR	                  5       S5        g )Nr:  r  r  s     r/   test_path_fragment*MultiPathServerTestCase.test_path_fragment  s,    !!#k/2;/r2   c                 ~    [         R                  " [        S-   5      nU R                  UR	                  5       S5        g )Nr9  r  r  s     r/   test_path_query'MultiPathServerTestCase.test_path_query$  s,    !!#j.1:.r2   c                 x    [         R                  " [        5      nU R                  UR	                  5       S5        g )Nr=  r  r  s     r/   test_empty_path'MultiPathServerTestCase.test_empty_path)  s(    !!#&7+r2   c                 ~    [         R                  " [        S-   5      nU R                  UR	                  5       S5        g )Nr<  r  r  s     r/   test_root_path&MultiPathServerTestCase.test_root_path.  s,    !!#),3'r2   c                 ~    [         R                  " [        S-   5      nU R                  UR	                  5       S5        g )Nr>  r  r  s     r/   test_empty_path_query-MultiPathServerTestCase.test_empty_path_query3  s,    !!#,/6*r2   c                 ~    [         R                  " [        S-   5      nU R                  UR	                  5       S5        g )Nr?  r  r  s     r/   test_empty_path_fragment0MultiPathServerTestCase.test_empty_path_fragment8  s,    !!#-07+r2   rW   N)rX   rY   rZ   r[   r  rI  rh  rg  r  r  r   requires_resourcer  r  r  r  r  r  r  r  r  r\   rW   r2   r/   r  r    s3   /0JM8
8
 z*8 +8 z*8 +8 z*4 +4 z*0 +0 z*/ +/ z*, +, z*( +( z*+ ++ z*, +,r2   r  c                   \    \ rS rSr " S S\R
                  R                  5      r\rS r	Sr
g)BaseKeepaliveServerTestCasei@  c                   T    \ rS rSr\R
                  R                  rSr/ r	S r
S rSrg)*BaseKeepaliveServerTestCase.RequestHandleriC  r   c                     U R                   R                  / 5        [        U R                   5      S-
  U l        U R                  R                  U 5      $ r	  )
myRequestsry   r   reqidxparentClasshandlerl   s    r/   r  1BaseKeepaliveServerTestCase.RequestHandler.handleG  s@    OO""2&doo.q0DK##**400r2   c                     U R                   R                  U 5      nU R                  U R                     R	                  U R
                  5        U$ r   )r  handle_one_requestr  r  ry   raw_requestline)r,   r@   s     r/   r  =BaseKeepaliveServerTestCase.RequestHandler.handle_one_requestK  s>    %%88>FOODKK(//0D0DEMr2   )r  N)rX   rY   rZ   r[   r   r  r	  r  r  r  r  r  r\   rW   r2   r/   r  r  C  s&    mm>>%
	1	r2   r  c                 N    / U R                   l        [        R                  U 5      $ r   )r  r  rb  rm  rl   s    r/   rm  !BaseKeepaliveServerTestCase.setUpQ  s!    )+&!''--r2   rW   N)rX   rY   rZ   r[   r   r  r	  r  r  rm  r\   rW   r2   r/   r  r  @  s$    AA  $N.r2   r  c                       \ rS rSrS rSrg)KeepaliveServerTestCase1iX  c                    [         R                  " [        5      nU R                  UR	                  SS5      S5        U R                  UR	                  SS5      S5        U R                  UR	                  SS5      S5        U" S5      " 5         U R                  [        U R                  R                  5      S5        U R                  [        U R                  R                  S   5      S5        g )Nr  r  rw  r  r   r   r   	r'   r   r  r+   r  r   r  r  assertGreaterEqualr  s     r/   test_two!KeepaliveServerTestCase1.test_twoY  s    !!#&qT*qT*qT*	'
 	T00;;<a@ 	D$7$7$B$B2$F GKr2   rW   N)rX   rY   rZ   r[   r   r\   rW   r2   r/   r  r  X  s    Lr2   r  c                   $    \ rS rSrSrS rS rSrg)KeepaliveServerTestCase2ik  r   c                 *   [         R                  " [        5      nU R                  UR	                  SS5      S5        U R                  UR	                  SS5      S5        U R                  UR	                  SS5      S5        U" S5      " 5         U R                  UR	                  SS5      S5        U R                  UR	                  SS5      S5        U R                  UR	                  SS5      S5        U" S5      " 5         U R                  [        U R                  R                  5      S5        U R                  [        U R                  R                  S   5      S5        U R                  [        U R                  R                  S   5      S5        g )Nr  r  rw  r  r   r   r  r  s     r/   
test_close#KeepaliveServerTestCase2.test_closeo  s/   !!#&qT*qT*qT*	'
qT*qT*qT*	'
 	T00;;<a@D$7$7$B$B2$F GKD$7$7$B$B2$F GKr2   c                 d   [         R                  " [        5      nU R                  UR	                  SS5      S5        U" S5      R                  5         U R                  UR	                  SS5      S5        U" S5      " 5         U R                  [        U R                  R                  5      S5        g )Nr  r  rw  r  r  r   )	r'   r   r  r+   r  r  r   r  r  r  s     r/   test_transport'KeepaliveServerTestCase2.test_transport  s    !!#&qT*	+qT*	'
T00;;<a@r2   rW   N)rX   rY   rZ   r[   rg  r&  r)  r\   rW   r2   r/   r#  r#  k  s    ML&Ar2   r#  zrequires gzipc                       \ rS rSr " S S\R
                  R                  5      r\r " S S\	R                  5      r
S rS rS rS	 rS
rg)GzipServerTestCasei  c                   J    \ rS rSr\R
                  R                  rSrS r	Sr
g)!GzipServerTestCase.RequestHandleri  r   c                     [        U R                  S   5      U R                  l        U R                  R                  U 5      $ )Ncontent-length)r   r   	__class__content_lengthr  r   rl   s    r/   r   )GzipServerTestCase.RequestHandler.do_POST  s4    ,/=M0N,ODNN)##++D11r2   rW   N)rX   rY   rZ   r[   r   r  r	  r  r  r   r\   rW   r2   r/   r  r.    s    mm>>%	2r2   r  c                   $    \ rS rSrSrS rS rSrg)GzipServerTestCase.Transporti  Fc                     [        UR                  SS5      5      U l        [        R                  R                  X5      $ )Nr0  r   )r   	getheaderresponse_lengthr'   r   parse_response)r,   r   s     r/   r9  +GzipServerTestCase.Transport.parse_response  s4    !$X%7%78H!%L!MD &&55dEEr2   c                     U R                   (       a  UR                  SS5        [        R                  R	                  XU5      $ )NzContent-Encodinggzip)	fake_gzip	putheaderr'   r   send_content)r,   
connectionbodys      r/   r?  )GzipServerTestCase.Transport.send_content  s3    ~~$$%7@&&33DdKKr2   )r8  N)rX   rY   rZ   r[   r=  r9  r?  r\   rW   r2   r/   r   r5    s    		F	Lr2   r   c                 .    [         R                  U 5        g r   )rb  rm  rl   s    r/   rm  GzipServerTestCase.setUp  s      &r2   c                    U R                  5       nS Ul        [        R                  " [        US9nU R                  UR                  SS5      S5        U R                  R                  nSUl        U R                  UR                  SS5      S5        U R                  R                  nU R                  X4:  5        U" S5      " 5         g Nr  r  r  rw  r   r  )
r   encode_thresholdr'   r   r  r+   r  r  r2  r   )r,   rd   r  r   r   s        r/   test_gzip_request$GzipServerTestCase.test_gzip_request  s    NN!!!#3qT*..qT*..	'
r2   c                 P   U R                  5       nS Ul        SUl        [        R                  " [
        US9nU R                  [        R                  [        R                  " S5      5      nU   UR                  SS5        S S S 5        U" S5      " 5         g ! , (       d  f       N= f)NTrG  z\b400\br  r  r  )r   rH  r=  r'   r   r  rP  rW  recompiler  )r,   rd   r  cms       r/   test_bad_gzip_request(GzipServerTestCase.test_bad_gzip_request  sy    NN!!!#3##I$;$;$&JJz$:<EE!QK 	'
 Rs   .B
B%c                    U R                  5       n[        R                  " [        US9nU R                  R
                  nS U R                  l        U R                  UR                  SS5      S5        UR                  nSU R                  l        U R                  UR                  SS5      S5        U" S5      " 5         UR                  nX0R                  l        U R                  XE:  5        g rF  )
r   r'   r   r  r  rH  r+   r  r8  r   )r,   rd   r  oldr   r   s         r/   test_gzip_response%GzipServerTestCase.test_gzip_response  s    NN!!#3!!22/3,qT*/0,qT*	'
/2,r2   rW   N)rX   rY   rZ   r[   r   r  r	  r  r  r'   r   rm  rI  rO  rS  r\   rW   r2   r/   r,  r,    sG    2AA 2 $NLI'' L'
	r2   r,  c                       \ rS rSrS rSrg)GzipUtilTestCasei  c                    SnSU-  n[         R                  " U5      n[         R                  " U5      nU R                  [	        U5      U5        SUS-   -  n[         R                  " U5      nU R                  [        S5         [         R                  " U5        S S S 5        [         R                  " USS9  g ! , (       d  f       N$= f)Ni  @    r   z#max gzipped payload length exceededr   )
max_decode)r'   gzip_encodegzip_decoder+   r   rP  r   )r,   max_gzip_decoder   encodeddecodeds        r/   test_gzip_decode_limit'GzipUtilTestCase.test_gzip_decode_limit  s    *&''-''0W7!+,''-##J$IK!!'*K 	g"5	K Ks   B88
CrW   N)rX   rY   rZ   r[   r_  r\   rW   r2   r/   rV  rV    s    6r2   rV  c                      ^  \ rS rSr " S S\R
                  R                  5      r\r/ SQr	U 4S jr
S rS rS rS	 rS
 rS rSrU =r$ )HeadersServerTestCasei  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )$HeadersServerTestCase.RequestHandleri  Nc                 V   > U R                   U R                  l        [        TU ]  5       $ r   )r   r1  test_headerssuperr   r,   r1  s    r/   r   ,HeadersServerTestCase.RequestHandler.do_POST  s     *.,,DNN'7?$$r2   rW   )rX   rY   rZ   r[   rf  r   r\   __classcell__r1  s   @r/   r  rd    s    	% 	%r2   r  )HostzAccept-EncodingzContent-Typez
User-Agentr   c                 B   > S U R                   l        [        TU ]  5       $ r   )r  rf  rg  rm  rh  s    r/   rm  HeadersServerTestCase.setUp  s    +/(w}r2   c                 (   [        U R                  [        UR                  5       5      -   5      nU R	                  [        UR                  5       5      U5        UR                  5        H&  u  pEU R                  UR                  U5      U5        M(     g r   )sortedstandard_headerslistkeysassertListEqualitemsr+   r   )r,   r   
additionalexpected_keyskeyrL   s         r/   assertContainsAdditionalHeaders5HeadersServerTestCase.assertContainsAdditionalHeaders  sl    t44tJOO<M7NNOVGLLN3]C$**,JCW[[-u5 -r2   c                     [         R                  " [        S/S9nU R                  UR	                  SS5      S5        U R
                  R                  nU R                  USS05        g )NX-Testfoor   r  r  rw  r}  r~  r'   r   r  r+   r  r  rf  ry  r,   r  r   s      r/   test_header!HeadersServerTestCase.test_header  sX    !!#0A/BCq!d+%%22,,Wx6GHr2   c                     [         R                  " [        SS/S9nU R                  UR	                  SS5      S5        U R
                  R                  nU R                  USSS	.5        g )
Nr|  )X-Test-Secondbarr  r  r  rw  r~  r  )r}  r  r  r  s      r/   test_header_many&HeadersServerTestCase.test_header_many  sc    !!+-EFHq!d+%%22,,>	@r2   c                     [         R                  " [        / S9nU R                  UR	                  SS5      S5        U R
                  R                  nU R                  U0 5        g )Nr  r  r  rw  r  r  s      r/   test_header_empty'HeadersServerTestCase.test_header_empty  sO    !!#r2q!d+%%22,,Wb9r2   c                     [         R                  " [        SS9nU R                  UR	                  SS5      S5        U R
                  R                  nU R                  USS05        g )N)r|  r  r  r  rw  r}  r~  r  r  s      r/   test_header_tuple'HeadersServerTestCase.test_header_tuple  sU    !!#/CDq!d+%%22,,Wx6GHr2   c                     [         R                  " [        SS0R                  5       S9nU R	                  UR                  SS5      S5        U R                  R                  nU R                  USS05        g )Nr}  r~  r  r  r  rw  )	r'   r   r  ru  r+   r  r  rf  ry  r  s      r/   test_header_items'HeadersServerTestCase.test_header_items  sb    !!#%/@/F/F/HIq!d+%%22,,Wx6GHr2   rW   )rX   rY   rZ   r[   r   r  r	  r  r  rq  rm  ry  r  r  r  r  r  r\   rj  rk  s   @r/   rb  rb    sU    %AA % $N6I@:II Ir2   rb  c                   &    \ rS rSrS rS rS rSrg)ServerProxyTestCasei#  c                 P    [         R                  R                  U 5        SU l        g )Nzhttp://fake.localhost)rX  TestCaserm  r  rl   s    r/   rm  ServerProxyTestCase.setUp$  s    % +r2   c                 ~    [         R                  " U R                  5      nU R                  U" S5      " 5       S 5        g )Nr  )r'   r   r  r+   r  s     r/   r&  ServerProxyTestCase.test_close*  s,    !!$((+7t,r2   c                     [         R                  " 5       n[         R                  " U R                  US9nU R	                  U" S5      U5        g )NrG  r  )r'   r   r   r  r+   )r,   rd   r  s      r/   r)  "ServerProxyTestCase.test_transport.  s:    !!!$((a8;+r2   )r  N)rX   rY   rZ   r[   rm  r&  r)  r\   rW   r2   r/   r  r  #  s    +-,r2   r  c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )FailingMessageClassi6  c                 P   > UR                  5       nUS:X  a  g[        TU ]	  X5      $ )Nr0  zI am broken)rM  rg  r   )r,   rx  failobjr1  s      r/   r   FailingMessageClass.get7  s)    iik"" w{3((r2   rW   r   )rX   rY   rZ   r[   r   r\   rj  rk  s   @r/   r  r  6  s    ) )r2   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	FailingServerTestCasei>  c                 D   [         R                  " 5       U l        U R                  S4n[         R                  " [        US9nUR                  5         U R                  UR                  5        U R                  R                  5         U R                  R                  5         g )Nr   rd  )
r  rf  r  r  r  r  r  r  ri  rj  rk  s      r/   rm  FailingServerTestCase.setUp?  se    ??$XXqM	!!9E$ 	r2   c                     U R                   R                  5         S[        R                  R                  l        [        R                  R                  nU[        R                  R                  l
        g rp  )r  ri  r   r  r  re  r   r   HTTPMessager	  MessageClass)r,   default_classs     r/   rq  FailingServerTestCase.tearDownK  sB    BG((?//@M00=r2   c           
         [         R                  R                  R                  nU R	                  US5        S[         R                  R                  l         [
        R                  " [        5      nU R	                  UR                  SS5      S5        g ! [
        R                  [        4 aB  n[        U5      (       d(  U R                  U< S[        USS5      < 35         S nAg  S nAg S nAff = f)	NFTr  r  rw  rx  r   r  )r   r  r  re  r+   r'   r   r  r  rW  r   rP  ry  rz  )r,   flagvalr  rN  s       r/   
test_basic FailingServerTestCase.test_basicT  s    --22II%( CG((?	E%%c*AQUU1QZ.''1 	E+A..		aIr)BCDD /	Es   <B C0.3C++C0c                    [         [        R                  R                  l         [
        R                  " [        5      nUR                  SS5        U R                  S5        g ! [
        R                  [        4 a  n[        U5      (       ds  [        US5      (       a]  U R                  UR                  R!                  S5      S L 5        U R                  UR                  R!                  S5      S L 5         S nAg  S nAg  S nAg S nAff = f)Nr  r  ProtocolError not raisedr   rK  X-traceback)r  r   r  r	  r  r'   r   r  r  ry  rW  r   rP  hasattrr   r   r   r{  s      r/   test_fail_no_info'FailingServerTestCase.test_fail_no_infof  s    @S00=
	2%%c*AEE!AJ II01 ''1 	F+A..71i3H3H		m < DE		m < DEE 4I.	Fs   ,A# #D
=A9DD
c                 Z   [         [        R                  R                  l        S[        R                  R
                  l         [        R                  " [        5      nUR                  SS5        U R                  S5        g ! [        R                  [        4 a  n[        U5      (       dt  [        US5      (       a^  SnU R!                  UR"                  R%                  S5      U5        U R'                  UR"                  R%                  S5      S L5         S nAg  S nAg  S nAg S nAff = f)	NTr  r  r  r   z5invalid literal for int() with base 10: 'I am broken'rK  r  )r  r   r  r	  r  r  re  r'   r   r  r  ry  rW  r   rP  r  r+   r   r   r   )r,   r  rN  expected_errs       r/   test_fail_with_info)FailingServerTestCase.test_fail_with_infov  s    @S00= CG((?	2%%c*AEE!AJ II01 ''1 	J+A..71i3H3HV  }!=|L		m <D HII	 4I.	Js   ,B D*A:D%%D*rs  N)
rX   rY   rZ   r[   rm  rq  r  r  r  r\   rW   r2   r/   r  r  >  s    
NE$2 2r2   r  c              #      #    [         R                  n[        R                  " [        R                  " 5       U S9[         l         [         R                  v   U[         l        g! U[         l        f = f7f)z`A variation on support.captured_stdout() which gives a text stream
having a `buffer` attribute.
r   N)r   stdoutioTextIOWrapperBytesIO)r   orig_stdouts     r/   captured_stdoutr    sG     
 **K!!"**,BCJ!jj 
[
s   AA3A# A3#A00A3c                   ,    \ rS rSrS rS rS rS rSrg)CGIHandlerTestCasei  c                 J    [         R                  R                  5       U l        g r   )r   r  CGIXMLRPCRequestHandlercgirl   s    r/   rm  CGIHandlerTestCase.setUp  s    ==88:r2   c                     S U l         g r   r  rl   s    r/   rq  CGIHandlerTestCase.tearDown  s	    r2   c                    [         R                  " 5        nSUS'   [        U R                  R                  S9 nU R                  R                  5         S S S 5        WR                  S5        UR                  5       nUR                  5       S   nSR                  UR                  5       SS 5      nU R                  US	5        U R                  US
5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NGETREQUEST_METHODr   r   r    r   rw   400zBad Request)r   EnvironmentVarGuardr  r  r   r  seekr   splitr  r+   )r,   envdata_outr  r  messages         r/   test_cgi_getCGIHandlerTestCase.test_cgi_get  s    **,$)C ! !$((*;*;<'') = MM!]]_F\\^A&Fhhv||~a23GVU+Wm4 -, =<	 -,s#   #C0CBC0
C-	)C00
C>c                 4   Sn[         R                  " 5        n[        U R                  R                  S9 n[
        R                  " 5        nUR                  U5        UR                  S5        [        [        U5      5      US'   U R                  R                  5         S S S 5        S S S 5        S S S 5        WR                  S5        UR                  5       nU R                  [        R                  [        R                   USS  5        XUR#                  S5      S  nU R%                  ['        [(        R*                  " SU5      R-                  S5      5      [        U5      5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)	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>
        r   r   CONTENT_LENGTH,   z<?xmlzContent-Length: (\d+)r   )r   r  r  r  r   r   captured_stdinr   r  rM   r   r  r   rj   r'   re  r*   findr+   r   rL  searchgroup)r,   r   r  r  data_inr  contents          r/   test_cgi_xmlrpc_response+CGIHandlerTestCase.test_cgi_xmlrpc_response  s&    **,dhh&7&78H##%MM$LLO$'D	NC !HH##%	 & 9 - 	a  	)//9??F23KH W-./		2F;AA!DEL	+ &% 98 -,s;   F	E8AE' E8(F	'
E51E88
F	F		
Fr  N)	rX   rY   rZ   r[   rm  rq  r  r  r\   rW   r2   r/   r  r    s    ;5$(r2   r  c                   &    \ rS rSrS rS rS rSrg)UseBuiltinTypesTestCasei  c                 <  ^  / T l         Sn[        R                  " SSSSSS5      n[        R                  " X4S5      nU 4S	 jn[        R
                  R                  S
S S
S9nUR                  U5        UR                  U5        T R                  [        T R                   5      S5        T R                   u  pgT R                  T R                   X/5        T R                  [        U5      [        R                  5        T R                  [        U5      [        5        g )Nr   i  rx            r  foobarc                  <   > TR                   R                  U 5        g r   )logextend)r  r,   s    r/   r  >UseBuiltinTypesTestCase.test_use_builtin_types.<locals>.foobar  s    HHOOD!r2   T)r   r   r5   r   )r  r8   r'   r(   r   r  r,  r-  r3  r+   r   r:   r;   r   )r,   expected_bytesexpected_date	marshaledr  handlermybytesmydates   `       r/   test_use_builtin_types.UseBuiltinTypesTestCase.test_use_builtin_types  s     , ))$2r2rBOO^$CXN		"--66dd 7 D!!&)##I.TXX*((N#BCd6lH$5$56d7mU+r2   c                 t    [         R                  R                  SS9nU R                  UR                  5        g )NTr4   )r   r  r  r   r5   )r,   r  s     r/   *test_cgihandler_has_use_builtin_types_flagBUseBuiltinTypesTestCase.test_cgihandler_has_use_builtin_types_flag  s+    --77$7O112r2   c                     [         R                  R                  SSS9nUR                  5         U R	                  UR
                  5        g )Nr  Tr4   )r   r  r  r  r   r5   r  s     r/   ,test_xmlrpcserver_has_use_builtin_types_flagDUseBuiltinTypesTestCase.test_xmlrpcserver_has_use_builtin_types_flag  s?    112B" 2 $001r2   )r  N)rX   rY   rZ   r[   r  r  r  r\   rW   r2   r/   r  r    s    ,(32r2   r  c                  x    [         R                  " 5       n [        R                  " [         R                  /U Q76   g r   )r   threading_setuprX  addModuleCleanupthreading_cleanup)thread_infos    r/   setUpModuler    s*    "224K.@@O;Or2   __main__r5  r   )zutf-8)Hr  r8   r   r   r  rX  r   xmlrpc.clientr   r'   xmlrpc.serverr   http.clientr   http.serverr
  r  rL  r  r  rB  r   test.supportr   r   r   r   r	   r
   r<  r   requires_working_socketr   r   r9   r)   r  r$   r"  r\  rb  ry  r  r  r  r  r  rI  rP  r`  rb  ru  r  r  r  r  r#  skipIfr,  rV  rb  r  r  r  r  contextmanagerr  r  r  r  rX   mainrW   r2   r/   <module>r     s      
    !      	 	   " & ) 5 5   t ,'#%%&9:)#$78)' ))*=> ));= )) ))$2r2rBD
 	$x,X&& x,v	T7X%6%6 T7n<X&& <NH%% N.b+x(( b+J5X&& 56   tc
>@DP" H** H6D'- D'NE#5 E(8,0 8,z."4 .0L: L&A: AD 
/@+ @ 0@F 
/6x(( 6 06&:I. :I|,(++ ,&)$++11 )K2H-- K2\ 	! 	!A** AH2h// 2BP
 zMMO U/  Ds   ,K K#"K#