
    /hh8                         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5      r " S S\R                  5      rS	 rg)
    N)HTTPException)support)BytesIOc                       \ 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S rS rS rS rSrg)TestBase    N   r   u   c                    U R                   c%  [        R                  " U R                  5      U l         U R                   R                  U l        U R                   R
                  U l        U R                   R                  U l        U R                   R                  U l	        U R                   R                  U l
        U R                   R                  U l        g N)codeccodecslookupencodingencodedecodestreamreaderreaderstreamwriterwriterincrementalencoderincrementaldecoderselfs    D/opt/python-3.13.8/usr/lib/python3.13/test/multibytecodec_support.pysetUpTestBase.setUp   s    ::t}}5DJjj''jj''jj--jj--"&**"?"?"&**"?"?    c                    / nU R                    HQ  nUR                  S5      nUR                  5       nUS:X  d   eU Vs/ s H  oUS-   PM	     nnUR                  U5        MS     [	        U6  Ho  u  pgU R                  U5      S   nU R                  XR                  S5      5        U R                  (       d  ML  U R                  X`R                  U5      S   5        Mq     g s  snf )N   
r   r   utf-8)	tstringsplitpopappendzipr   assertEqualroundtriptestr   )	r   tstring_linesblineslastlinenativeutf8us	            r   test_chunkcodingTestBase.test_chunkcoding$   s    AGGENE99;D3;;.34edE\eE4  '   /LFF#A&AQG 45!!!  Q):;	 0 5s   C c                 l   U R                    GH#  u  pn[        U[        5      (       a  U R                  nOU R                  nU(       a  U" X5      S   nX@R                  L a[  U R                  [        U5      [        L [        U5      5        U R                  XSU< SU R                  < SU< SU< SU< 3	5        M  U R                  [        U5      [        L [        U5      5        U R                  XSU< SU R                  < SU< SU< SU< 3	5        GM  U R                  [        XAU5        GM&     g )Nr   .decode(, )= != .encode()
codectests
isinstancebytesr   r   
assertTruetypestrr'   r   assertRaisesUnicodeErrorr   sourceschemeexpectedfuncresults         r   test_errorhandleTestBase.test_errorhandle2   s    (,$FH&%(({{{{f-a0;;&OODLC$7fF$$V(.vv(0&23
 OODLE$94<H$$V(.vv(0&23
 !!,fE) )8r   c                     U R                   (       a  U R                  S5        SnU R                  U R                  US5      S   S5        g )N$encoding contains full ISO 10646 mapu   ଓଣୠ nd eggsxmlcharrefreplacer   s   &#2835;&#2851;&#2912; nd eggs)has_iso10646skipTestr'   r   )r   ss     r   test_xmlcharrefreplaceTestBase.test_xmlcharrefreplaceI   sB    MM@A(KK./2,	
r   c                 "  ^ U R                   (       a  U R                  S5        SSKJm  U4S jn[        R
                  " SU5        U R                  (       a  U R                  u  p#OSnSnU R                  U R                  US5      S   U5        g )NrJ   r   )codepoint2namec                 x  > [        U [        5      (       d  [        SU -  5      e/ nU R                  U R                  U R
                    HQ  n[        U5      T;   a"  UR                  ST[        U5         -  5        M4  UR                  S[        U5      -  5        MS     SR                  U5      U R
                  4$ )Nzdon't know how to handle %rz&%s;z&#%d;r	   )	r:   UnicodeEncodeError	TypeErrorobjectstartendordr%   join)exclcrR   s      r   xmlcharnamereplace>TestBase.test_customreplace_encode.<locals>.xmlcharnamereplaceY   s    c#566 = CDDAZZ		#''2q6^+HHVnSV&<<=HHWs1v-.	 3
 GGAJ((r   ztest.xmlcharnamereplaceu   «ℜ» = 〈ሴ〉s*   &laquo;&real;&raquo; = &lang;&#4660;&rang;)	rL   rM   html.entitiesrR   r   register_errorxmlcharnametestr'   r   )r   r^   sinsoutrR   s       @r   test_customreplace_encode"TestBase.test_customreplace_encodeS   s    MM@A0		) 	79KL,,IC7C@DS$=??@BCG	Ir   c                     S n[         R                  " SU5        U R                  SU R                  -   S-   S5      S   nU R	                  US5        g )Nc                     SU R                   4$ )Ns   1234rX   r[   s    r   	myreplace7TestBase.test_callback_returns_bytes.<locals>.myreplaceo   s    SWW%%r   test.cjktestabcdefr   s
   abc1234def)r   ra   r   unmappedunicoder'   )r   rk   encs      r   test_callback_returns_bytes$TestBase.test_callback_returns_bytesn   sM    	&ni8kk%$"6"66>OPQRm,r   c                    ^ U4S jn[         R                  " SU5        / SQ/ S [        5       4 H/  mU R                  [        U R
                  U R                  S5        M1     g )Nc                     > TU R                   4$ r   ri   )r[   rets    r   rk   7TestBase.test_callback_wrong_objects.<locals>.myreplacev   s    >!r   rm   )r
         )r   ra   rV   r?   rU   r   rp   )r   rk   rv   s     @r   test_callback_wrong_objects$TestBase.test_callback_wrong_objectsu   sN    	"ni8r42Cid6J6J,. 3r   c                 (   S n[         R                  " SU5        U R                  U R                  SU R                  -   S-   S5      S5        S n[         R                  " SU5        U R                  [        U R                  U R                  S5        g )Nc                 0    S[        U R                  5      4$ )Nx)intrX   rj   s    r   rk   4TestBase.test_callback_long_index.<locals>.myreplace   s    SWW&&r   rm   abcdefgh)s	   abcdxefgh	   c                 ,    S[         R                  S-   4$ )Nr~   r
   )sysmaxsizerj   s    r   rk   r      s    q))r   )r   ra   r'   r   rp   r?   
IndexErrorr   rk   s     r   test_callback_long_index!TestBase.test_callback_long_index~   s    	'ni8Vd.B.B%BV%K%356G	I	*ni8*dkk43G3G(	*r   c                     S n[         R                  " SU5        U R                  [        U R                  U R
                  S5        g )Nc                     g)N)r~   N rj   s    r   rk   4TestBase.test_callback_None_index.<locals>.myreplace   s    r   rm   )r   ra   r?   rU   r   rp   r   s     r   test_callback_None_index!TestBase.test_callback_None_index   s8    	ni8)T[[$2F2F(	*r   c                    ^ U4S jmSTl         [        R                  " ST5        U R                  U R	                  SU R
                  -   S-   S5      S5        g )Nc                 l   > TR                   S:  a  T=R                   S-  sl         gSU R                  4$ )Nr   r
   )REPLACEDr   TERMINAL)limitrX   )r[   rk   s    r   rk   8TestBase.test_callback_backward_index.<locals>.myreplace   s/    "1$&"CGG,,r   ry   rm   r   r   )s4   abcdREPLACEDabcdREPLACEDabcdREPLACEDabcdTERMINALefghr   )r   r   ra   r'   r   rp   r   s    @r   test_callback_backward_index%TestBase.test_callback_backward_index   sS    	- 	ni8Vd.B.B%BV%K%35L	Nr   c                     S n[         R                  " SU5        U R                  U R                  SU R                  -   S-   S5      S5        g )Nc                 $    SU R                   S-   4$ )Nr   rx   ri   rj   s    r   rk   7TestBase.test_callback_forward_index.<locals>.myreplace   s    !,,r   rm   r   r   )s   abcdREPLACEDghr   )r   ra   r'   r   rp   r   s     r   test_callback_forward_index$TestBase.test_callback_forward_index   sI    	-ni8Vd.B.B%BV%K%356L	Nr   c                     S n[         R                  " SU5        U R                  [        U R                  U R
                  S5        g )Nc                     g)N)TERMd   r   rj   s    r   rk   :TestBase.test_callback_index_outofbound.<locals>.myreplace   s     r   rm   )r   ra   r?   r   r   rp   r   s     r   test_callback_index_outofbound'TestBase.test_callback_index_outofbound   s8    	!ni8*dkk43G3G(	*r   c                    [         R                  " S5      nS /[        [        SS5      5      -   / SQ-    H  nU" [	        U R
                  S   5      5      n[	        5       nU R                  5       n Ub  UR                  U5      nOUR                  5       nU(       d  O$UR                  U5      nUR                  U5        MQ  U R                  UR                  5       U R
                  S   5        M     g )Nr!   r
   !   @         i   i   r   )r   	getreaderlistranger   r"   r   readr   writer'   getvalue)r   
UTF8Readersizehintistreamostreamencoderdataes           r   test_incrementalencoder TestBase.test_incrementalencoder   s    %%g.
eArl!3312H a!9:GiG--/G'"<<1D"<<>DNN4(a   W--/aA!2r   c                    [         R                  " S5      nS S/[        [        SS5      5      -   / SQ-    H  n[	        U R
                  S   5      nU" [	        5       5      nU R                  5       n UR                  U5      nU(       d  O$UR                  U5      nUR                  U5        M=  U R                  UR                  5       U R
                  S   5        M     g )Nr!   r
   r   r   r   )r   	getwriterr   r   r   r"   r   r   r   r   r'   r   )r   
UTF8Writerr   r   r   decoderr   r0   s           r   test_incrementaldecoder TestBase.test_incrementaldecoder   s    %%g.
r
T%2,%7712Hdll1o.G +G--/G||H-t,AMM!$  W--/aA2r   c                    U R                   nU R                  5       nU R                  [        UR                  US5        SUl        U R                  UR	                  US5      S5        UR                  5         S n[        R                  " SU5        SUl        U R                  UR	                  US5      S5        SUl        U R                  UR	                  US5      S5        g )NTignorer   c                     SU R                   4$ )Ncalledri   rj   s    r   tempreplaceDTestBase.test_incrementalencoder_error_callback.<locals>.tempreplace   s    cgg&&r   ztest.incremental_error_callbacks   called)
rp   r   r?   rT   r   errorsr'   resetr   ra   )r   invr   r   s       r   &test_incrementalencoder_error_callback/TestBase.test_incrementalencoder_error_callback   s    ""##%,ahhTB#t,c2			'?M4#t,i8 #t,c2r   c                    [         R                  " S5      nS H  nS S/[        [        SS5      5      -   / SQ-    H  nU R	                  [        U R                  S   5      5      nU" [        5       5      n[        XB5      n U" U5      nU(       d  O+US:X  a  UR                  U5        OUR                  U5        M;  U R                  UR                  5       U R                  S   5        M     M     g )	Nr!   r   readline	readlinesr   r
   r   r   r   r   )r   r   r   r   r   r   r"   getattr
writelinesr   r'   r   )r   r   namer   r   r   rE   r   s           r   test_streamreaderTestBase.test_streamreader   s    %%g.
5D!2JeArl);;56++gdll1o&>?$WY/w->D{***40d+    !1!1!3T\\!_E6 6r   c                    Sn[         R                  " S5      nU H  nS /[        [        SS5      5      -   / SQ-    H  nU" [	        U R
                  S   5      5      nU R                  [	        5       5      n[        XS5      n Ub	  U" U5      nOU" 5       nU(       d  O+US:X  a  UR                  U5        OUR                  U5        MF  U R                  UR                  5       U R
                  S   5        M     M     g )Nr   r!   r
   r   r   r   r   )r   r   r   r   r   r"   r   r   r   r   r'   r   )	r   	readfuncsr   r   r   r   r   rE   r   s	            r   test_streamwriterTestBase.test_streamwriter   s    5	%%g.
D!FT%2,%7756$WT\\!_%=>++gi0w-+#H~#v{***40d+    !1!1!3T\\!_E%6 r   c                 Z    [        5       nU R                  U5      nUR                  5         g r   )r   r   r   )r   streamr   s      r   "test_streamwriter_reset_no_pending+TestBase.test_streamwriter_reset_no_pending  s"     V$r   c                     U R                  5       nU R                  [        5         U?S S S 5        g ! , (       d  f       g = fr   )r   r?   AttributeErrorr   )r   r   s     r   $test_incrementalencoder_del_segfault-TestBase.test_incrementalencoder_del_segfault  s/    ##%~. /..s	   2
A )r   r   r   r   r   r   r   ) __name__
__module____qualname____firstlineno__r   r   r"   r9   r(   rL   rb   rp   r   r1   rG   rO   re   rr   rz   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s    HEGJMLOO@<F.
I6-.**NN*B(B"3(F&F0r   r   c                   T    \ rS rSr/ r/ r/ r/ rS rS r	S r
S rS rS rS rS	 rS
rg)TestBase_Mappingi  c                      U R                  5       R                  5         g ! [        [        4 a!    U R	                  SU R
                  -   5         g f = f)NzCould not retrieve )open_mapping_filecloseOSErrorr   rM   
mapfileurlr   s    r   r   TestBase_Mapping.setUp$  sI    	A""$**,' 	AMM/?@	As   ! .AAc                 @    [         R                  " U R                  SS9$ )Nr!   )r   )r   open_urlresourcer   r   s    r   r   "TestBase_Mapping.open_mapping_file*  s    '''JJr   c                     U R                   R                  S5      (       a  U R                  5         g U R                  5         g )Nz.xml)r   endswith_test_mapping_file_ucm_test_mapping_file_plainr   s    r   test_mapping_file"TestBase_Mapping.test_mapping_file-  s/    ??##F++'')))+r   c                    S n0 nU R                  5        nU H  nU(       d    OUR                  S5      S   R                  5       n[        U5      S:w  a  M?  US   S S S:w  a  U R                  SU< 35        [        R                  US   SS  5      n[        U5      S:X  a  SUS   ::  a  M  U" US   5      n[        U5      S	:X  d  Xr;   a  M  XbU'   U R                  Xg5        M     S S S 5        g ! , (       d  f       g = f)
Nc                 P    SR                  S U R                  S5       5       5      $ )Nr	   c              3   L   #    U  H  n[        [        US 5      5      v   M     g7f)   N)chrr   ).0r~   s     r   	<genexpr>MTestBase_Mapping._test_mapping_file_plain.<locals>.unichrs.<locals>.<genexpr>5  s     ALq3s1bz??Ls   "$+)rZ   r#   )rN   s    r   unichrs:TestBase_Mapping._test_mapping_file_plain.<locals>.unichrs4  s    77AAGGCLAAAr   #r   rx   0xzInvalid line: r
   r   i  )r   r#   lenfailr;   fromhexrY   
_testpoint)r   r   urt_wafr-   r   csetchunichs           r   r   )TestBase_Mapping._test_mapping_file_plain3  s    	B ##%zz#q)//1t9>72A;$&IIth78tAwqr{3v;!#q	(9Q(u:'5? &u.%  &%%s   CC11
C?c                 2   U R                  5        nUR                  5       nS S S 5        [        R                  " SW5      nU H@  u  pE[	        [        US5      5      n[        R                  U5      nU R                  Xv5        MB     g ! , (       d  f       Nl= f)Nz'<a u="([A-F0-9]{4})" b="([0-9A-F ]+)"/>r   )	r   r   refindallr   r   r;   r  r  )r   r	  ucmdataucunicodedr  codechs           r   r   'TestBase_Mapping._test_mapping_file_ucmN  sp    ##%ffhG &ZZA7KJCC%E]]5)FOOF*  &%s   B
Bc                 H    U R                    H  nU R                  " U6   M     g r   )supmapsr  )r   mappings     r   test_mapping_supplemental*TestBase_Mapping.test_mapping_supplementalW  s    ||GOOW% $r   c                     X4U R                   ;  a+  U R                  UR                  U R                  5      U5        X4U R                  ;  a&  U R                  [        XR                  5      U5        g g r   )pass_enctestr'   r   r   pass_dectestr>   )r   r
  r  s      r   r  TestBase_Mapping._testpoint[  s]    ?$"3"33U\\$--8&A?$"3"33S7? 4r   c                    U R                    GHO  u  pn[        U[        5      (       a  UR                  nOUR                  nU(       a  [        U[        5      (       an  U" U R
                  U5      nU R                  [        U5      [        L [        U5      5        U R                  XSU< SU R
                  < SU< SU< SU< 3	5        M  U" U R
                  U5      nU R                  [        U5      [        L [        U5      5        U R                  XSU< SU R
                  < SU< SU< SU< 3	5        GM.  U R                  [        X@R
                  U5        GMR     g )Nr4   r5   r6   r7   r8   )r9   r:   r;   r   r   r   r<   r=   r>   r'   r?   r@   rA   s         r   rG   !TestBase_Mapping.test_errorhandlea  s    (,$FH&%((}}}}fe,,!$--8FOODLC$7fF$$V(.vv(0&23
 "$--8FOODLE$94<H$$V(.vv(0&23
 !!,mmVL+ )8r   r   N)r   r   r   r   r  r  r  r9   r   r   r   r   r   r  r  rG   r   r   r   r   r   r     sB    LLGJAK,/6+&@Mr   r   c                    [         R                  R                  [         R                  R                  [        5      S5      n[        [         R                  R                  XS-   5      S5       nUR                  5       nS S S 5        [        [         R                  R                  XS-   5      S5       nUR                  5       nS S S 5        WU4$ ! , (       d  f       NW= f! , (       d  f       WW4$ = f)Ncjkencodingsz.txtrbz	-utf8.txt)ospathrZ   dirname__file__openr   )r   dirr	  encodedr/   s        r   load_teststringr+  y  s    
'',,rwwx0.
AC	bggll3v.	5&&( 
6	bggll3{ 23T	:avvx 
;D=	 
6	5	:	:D=s   .C3C!
C!
C2)r   r$  r  r   unittesthttp.clientr   testr   ior   r   TestCaser   r+  r   r   r   <module>r1     sH     	 	 
  %  L L^YMx(( YMvr   