
    0hhz                        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  S SK	Jr   " S S	\R                   5      rS
r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S\R                   5      r " S S \R                   5      r " S! S"\R                   5      r " S# S$\R                   5      r\ S%:X  a  \RB                  " 5         gg)&    N)BytesIO)support)	os_helper)expat)errors)sortdictc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
SetAttributeTest   c                 6    [         R                  " SS9U l        g N!namespace_separator)r   ParserCreateparserselfs    :/opt/python-3.13.8/usr/lib/python3.13/test/test_pyexpat.pysetUpSetAttributeTest.setUp   s    ((SA    c                     U R                  U R                  R                  S5        S HB  nXR                  l        U R                  U R                  R                  [        U5      5        MD     g NF)r         r   )assertIsr   buffer_textboolr   xs     r   test_buffer_text!SetAttributeTest.test_buffer_text   sJ    dkk--u5A&'KK#MM$++1147; r   c                     U R                  U R                  R                  S5        S HB  nXR                  l        U R                  U R                  R                  [        U5      5        MD     g r   )r   r   namespace_prefixesr   r    s     r   test_namespace_prefixes(SetAttributeTest.test_namespace_prefixes   J    dkk44e<A-.KK*MM$++88$q'B r   c                     U R                  U R                  R                  S5        S HB  nXR                  l        U R                  U R                  R                  [        U5      5        MD     g r   )r   r   ordered_attributesr   r    s     r   test_ordered_attributes(SetAttributeTest.test_ordered_attributes#   r(   r   c                     U R                  U R                  R                  S5        S HB  nXR                  l        U R                  U R                  R                  [        U5      5        MD     g r   )r   r   specified_attributesr   r    s     r   test_specified_attributes*SetAttributeTest.test_specified_attributes)   sJ    dkk66>A/0KK,MM$++::DGD r   c                 6   U R                  [        5         SU R                  l        S S S 5        U R                  [        5         U R                  R                    S S S 5        U R                  [        [
        U R                  [        S5      S5        U R                  [        U R                  R                  [        S5      S5        U R                  [        [        U R                  [        S5      5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr      r   )	assertRaisesAttributeErrorr   returns_unicode	TypeErrorsetattrrange__setattr__getattrr   s    r   test_invalid_attributes(SetAttributeTest.test_invalid_attributes/   s    ~.*+DKK' /~.KK'' / 	)Wdkk5:qI)T[[%<%<eCj!L)Wdkk5:F /...s   C9D
9
D

D)r   N)__name__
__module____qualname____firstlineno__r   r"   r&   r+   r/   r;   __static_attributes__ r   r   r
   r
      s%    B<CCE	Gr   r
   s  <?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<?xml-stylesheet href="stylesheet.css"?>
<!-- comment data -->
<!DOCTYPE quotations SYSTEM "quotations.dtd" [
<!ELEMENT root ANY>
<!ATTLIST root attr1 CDATA #REQUIRED attr2 CDATA #IMPLIED>
<!NOTATION notation SYSTEM "notation.jpeg">
<!ENTITY acirc "&#226;">
<!ENTITY external_entity SYSTEM "entity.file">
<!ENTITY unparsed_entity SYSTEM "entity.file" NDATA notation>
%unparsed_entity;
]>

<root attr1="value1" attr2="value2&#8000;">
<myns:subelement xmlns:myns="http://www.python.org/namespace">
     Contents of subelements
</myns:subelement>
<sub2><![CDATA[contents of CDATA section]]></sub2>
&external_entity;
&skipped_entity;

</root>
c                   T    \ rS rSr " S S5      r/ SQrS rS rS rS r	S	 r
S
 rSrg)	ParseTestV   c                       \ 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)ParseTest.OutputterW   c                     / U l         g Noutr   s    r   __init__ParseTest.Outputter.__init__X   s	    DHr   c                 p    U R                   R                  S[        U5      -   S-   [        U5      -   5        g )NzStart element:  )rL   appendreprr   r   nameattrss      r   StartElementHandler'ParseTest.Outputter.StartElementHandler[   s/    HHOO-T
:S@$UO, -r   c                 R    U R                   R                  S[        U5      -   5        g )NzEnd element: rL   rQ   rR   r   rT   s     r   EndElementHandler%ParseTest.Outputter.EndElementHandler_   s    HHOOOd4j89r   c                     UR                  5       nU(       a(  U R                  R                  S[        U5      -   5        g g )NzCharacter data: )striprL   rQ   rR   r   datas     r   CharacterDataHandler(ParseTest.Outputter.CharacterDataHandlerb   s/    ::<D 2T$Z ?@ r   c                 p    U R                   R                  S[        U5      -   S-   [        U5      -   5        g )NzPI: rP   rY   )r   targetr`   s      r   ProcessingInstructionHandler0ParseTest.Outputter.ProcessingInstructionHandlerg   s)    HHOOFT&\1C7$t*DEr   c                 p    U R                   R                  S[        U5      -   S-   [        U5      -   5        g )Nz	NS decl: rP   rY   )r   prefixuris      r   StartNamespaceDeclHandler-ParseTest.Outputter.StartNamespaceDeclHandlerj   s)    HHOOK$v,6<tCyHIr   c                 R    U R                   R                  S[        U5      -   5        g )NzEnd of NS decl: rY   )r   rh   s     r   EndNamespaceDeclHandler+ParseTest.Outputter.EndNamespaceDeclHandlerm   s    HHOO.f=>r   c                 :    U R                   R                  S5        g )NStart of CDATA sectionrL   rQ   r   s    r   StartCdataSectionHandler,ParseTest.Outputter.StartCdataSectionHandlerp   s    HHOO45r   c                 :    U R                   R                  S5        g )NEnd of CDATA sectionrq   r   s    r   EndCdataSectionHandler*ParseTest.Outputter.EndCdataSectionHandlers   s    HHOO23r   c                 R    U R                   R                  S[        U5      -   5        g )Nz	Comment: rY   r   texts     r   CommentHandler"ParseTest.Outputter.CommentHandlerv   s    HHOOK$t*45r   c                 L    Uu  p#pEU R                   R                  SU< 35        g )NzNotation declared: rq   )r   argsrT   basesysidpubids         r   NotationDeclHandler'ParseTest.Outputter.NotationDeclHandlery   s    '+$DHHOOd<=r   c                 N    Uu  p#pEnU R                   R                  SU< 35        g )NzUnparsed entity decl: rq   )r   r~   
entityNamer   systemIdpublicIdnotationNames          r   UnparsedEntityDeclHandler-ParseTest.Outputter.UnparsedEntityDeclHandler}   s!    AE>Jh,HHOO?@r   c                 :    U R                   R                  S5        g)NNot standaloner   rq   r   s    r   NotStandaloneHandler(ParseTest.Outputter.NotStandaloneHandler   s    HHOO,-r   c                 R    Uu  p#pEU R                   R                  SUSS  < 35        g)NzExternal entity ref: r   rq   )r   r~   contextr   sysIdpubIds         r   ExternalEntityRefHandler,ParseTest.Outputter.ExternalEntityRefHandler   s(    *.'G5HHOOQRBCr   c                 >    U R                   R                  SU45        g)NStart doctyper   rq   r   r~   s     r   StartDoctypeDeclHandler+ParseTest.Outputter.StartDoctypeDeclHandler   s    HHOO_d34r   c                 :    U R                   R                  S5        g)NEnd doctyper   rq   r   s    r   EndDoctypeDeclHandler)ParseTest.Outputter.EndDoctypeDeclHandler   s    HHOOM*r   c                 >    U R                   R                  SU45        g)NEntity declarationr   rq   r   s     r   EntityDeclHandler%ParseTest.Outputter.EntityDeclHandler   s    HHOO1489r   c                 >    U R                   R                  SU45        g)NXML declarationr   rq   r   s     r   XmlDeclHandler"ParseTest.Outputter.XmlDeclHandler   s    HHOO.56r   c                 >    U R                   R                  SU45        g)NElement declarationr   rq   r   s     r   ElementDeclHandler&ParseTest.Outputter.ElementDeclHandler   s    HHOO2D9:r   c                 >    U R                   R                  SU45        g)NAttribute list declarationr   rq   r   s     r   AttlistDeclHandler&ParseTest.Outputter.AttlistDeclHandler   s    HHOO94@Ar   c                 >    U R                   R                  SU45        g)NSkipped entityr   rq   r   s     r   SkippedEntityHandler(ParseTest.Outputter.SkippedEntityHandler   s    HHOO-t45r   c                     g rJ   rB   r   userDatas     r   DefaultHandler"ParseTest.Outputter.DefaultHandler       r   c                     g rJ   rB   r   s     r   DefaultHandlerExpand(ParseTest.Outputter.DefaultHandlerExpand   r   r   rK   N)r=   r>   r?   r@   rM   rV   r[   ra   re   rj   rm   rr   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   rA   rB   r   r   	OutputterrG   W   sy    		-	:	A
	F	J	?	6	4	6	>	A		
									r   r   )rV   r[   ra   re   r   r   rj   rm   r{   rr   rv   r   r   r   r   r   r   r   r   r   r   r   c           	      T    U R                    H  n[        X[        X#5      5        M     g rJ   )handler_namesr7   r:   )r   r   handlerrT   s       r   _hookup_callbacksParseTest._hookup_callbacks   s#    
 &&DF''"89 'r   c                 V    / SQn[        X5       H  u  p4U R                  X45        M     g )N))r   )z1.0
iso-8859-1r   z,PI: 'xml-stylesheet' 'href="stylesheet.css"'zComment: ' comment data 'r   )r   )
quotationszquotations.dtdNr   )r   )root)r   r   NrB   )r   )r   attr1CDATANr   )r   )r   attr2r   Nr   z<Notation declared: ('notation', None, 'notation.jpeg', None))r   )acircr      âNNNN)r   )external_entityr   NNzentity.fileNNzPUnparsed entity decl: ('unparsed_entity', None, 'entity.file', None, 'notation')r   r   u?   Start element: 'root' {'attr1': 'value1', 'attr2': 'value2ὀ'}z1NS decl: 'myns' 'http://www.python.org/namespace'z>Start element: 'http://www.python.org/namespace!subelement' {}z)Character data: 'Contents of subelements'z9End element: 'http://www.python.org/namespace!subelement'zEnd of NS decl: 'myns'zStart element: 'sub2' {}rp   z+Character data: 'contents of CDATA section'ru   zEnd element: 'sub2'z0External entity ref: (None, 'entity.file', None))r   )skipped_entityr   u   Character data: 'µ'zEnd element: 'root')zipassertEqual)r   
operationsexpected_operations	operationexpected_operations        r   _verify_parse_outputParseTest._verify_parse_output   s.    !
D .1-Q)IY; .Rr   c                    U R                  5       n[        R                  " SS9nU R                  X!5        UR	                  [
        S5        UR                  nU R                  U5        U R                  [        [        US5        g )Nr   r   Tu   )r   r   r   r   Parser`   rL   r   r3   r4   r:   r   rL   r   r   s       r   test_parse_bytesParseTest.test_parse_bytes   se    nn##<v+T4 WW
!!*-.'68Dr   c                     U R                  5       n[        R                  " SS9nU R                  X!5        UR	                  [
        R                  S5      S5        UR                  nU R                  U5        g )Nr   r   r   T)	r   r   r   r   r   r`   decoderL   r   r   s       r   test_parse_strParseTest.test_parse_str   sZ    nn##<v+T[[.5WW
!!*-r   c                     U R                  5       n[        R                  " SS9nU R                  X!5        [	        [
        5      nUR                  U5        UR                  nU R                  U5        g r   )	r   r   r   r   r   r`   	ParseFilerL   r   )r   rL   r   filer   s        r   test_parse_fileParseTest.test_parse_file   sZ    nn##<v+t}WW
!!*-r   c                    [         R                  " 5       n[        [        5      nUR	                  U5        U R                  [         R                  5       nUR	                  U5        S S S 5        U R                  [         R                  " WR                  R                  5      [         R                  R                  5        g ! , (       d  f       Na= frJ   )r   r   r   r`   r   r3   errorr   ErrorString	exceptioncoder   XML_ERROR_FINISHED)r   r   r   cms       r   test_parse_againParseTest.test_parse_again  s    ##%t} u{{+rT" ,**2<<+<+<=,,99	; ,+s   C
CrB   N)r=   r>   r?   r@   r   r   r   r   r   r   r   r   rA   rB   r   r   rD   rD   V   s6    S Sj

M:$<L
E.
.
;r   rD   c                   &    \ rS rSrS rS rS rSrg)NamespaceSeparatorTesti  c                 ~    [         R                  " 5         [         R                  " S S9  [         R                  " SS9  g )Nr   rP   r   r   r   s    r   
test_legal!NamespaceSeparatorTest.test_legal  s,     	t4s3r   c                 :   U R                  [        S5         [        R                  " SS9  S S S 5         [        R                  " SS9  U R	                  5         g ! , (       d  f       N4= f! [
         a%  nU R                  [        U5      S5         S nAg S nAff = f)NzPParserCreate\(\) argument (2|'namespace_separator') must be str or None, not int*   r   ztoo longzCnamespace_separator must be at most one character, omitted, or None)assertRaisesRegexr6   r   r   fail
ValueErrorr   str)r   es     r   test_illegal#NamespaceSeparatorTest.test_illegal  s    ##I01 261
	W:>IIK1 1  	WSVUW W	Ws"   A$A+ 
A(+
B5BBc                 ,    [         R                  " SS9  g )N r   r   r   s    r   test_zero_length'NamespaceSeparatorTest.test_zero_length)  s     	r2r   rB   N)r=   r>   r?   r@   r   r   r   rA   rB   r   r   r   r     s    4W	3r   r   c                        \ rS rSrS rS rSrg)InterningTesti5  c                    ^ [         R                  " 5       n/ mU4S jnX!l        X!l        UR	                  SS5        TS   nU R                  [        T5      S5        T H  nU R                  X4L 5        M     g )Nc                 (   > TR                  U 5        g rJ   rQ   )rT   r~   Ls     r   	collector%InterningTest.test.<locals>.collector:  s    HHTNr   s   <e> <e/> <e></e> </e>Tr      )r   r   rV   r[   r   r   len
assertTrue)r   pr  tagentryr  s        @r   testInterningTest.test6  sk     	 )'	($/dQ#EOOCL) r   c                      " S S5      n[         R                  " SS9nSUl        U" U5      nUR                  Ul        UR	                  [
        S5        U R                  UR                  S5        g )Nc                        \ rS rSrS rS rSrg)7InterningTest.test_issue9402.<locals>.ExternalOutputteriG  c                     Xl         S U l        g rJ   r   parser_resultr   r   s     r   rM   @InterningTest.test_issue9402.<locals>.ExternalOutputter.__init__H  s    $%)"r   c                 h    U R                   R                  S5      nUR                  SS5      U l        g)Nr   r   Tr   )r   ExternalEntityParserCreater   r  )r   r   r   r   r   external_parsers         r   r   PInterningTest.test_issue9402.<locals>.ExternalOutputter.ExternalEntityRefHandlerL  s.    "&++"H"H"L%4%:%:3%E"r   r  N)r=   r>   r?   r@   rM   r   rA   rB   r   r   ExternalOutputterr  G  s    *r   r  r   r   r   T)r   r   r   r   r   r`   r   r  )r   r  r   rL   s       r   test_issue9402InterningTest.test_issue9402E  sb    	 	 ##<'*-*F*F'T4 **A.r   rB   N)r=   r>   r?   r@   r  r  rA   rB   r   r   r   r   5  s    */r   r   c                   z    \ rS rSrS rS rS rS rS rS r	/ 4S jr
S	 rS
 rS rS rS rS rS rS rS rSrg)BufferTextTestiY  c                     / U l         [        R                  " 5       U l        SU R                  l        U R
                  U R                  l        g Nr   )stuffr   r   r   r   ra   r   s    r   r   BufferTextTest.setUpZ  s7    
((*"#+/+D+D(r   c                     U R                  U R                  UU< SU R                  < S[        [        U5      < 35        g )Nz
stuff    = z
expected = )r   r!  mapr   )r   expectedlabels      r   checkBufferTextTest.check`  s/    X$**c#x&8:	;r   c                 :    U R                   R                  U5        g rJ   r!  rQ   ry   s     r   ra   #BufferTextTest.CharacterDataHandlere  s    

$r   c                     U R                   R                  SU-  5        UR                  S5      nUS:X  a  SU R                  l        g US:X  a  SU R                  l        g g )Nz<%s>zbuffer-textyesr   nor   )r!  rQ   getr   r   )r   rT   rU   bts       r   rV   "BufferTextTest.StartElementHandlerh  sQ    

&4-(YY}%;&'DKK#4Z&'DKK# r   c                 @    U R                   R                  SU-  5        g )Nz</%s>r*  rZ   s     r   r[    BufferTextTest.EndElementHandlerp  s    

'D.)r   c                 @    U R                   R                  SU-  5        g )Nz	<!--%s-->r*  r_   s     r   r{   BufferTextTest.CommentHandlers  s    

+,-r   c           	      V    U H#  n[        U R                  U[        X5      5        M%     g rJ   )r7   r   r:   )r   handlersrT   s      r   setHandlersBufferTextTest.setHandlersv  s!    DDKKwt':; r   c                 d    [         R                  " 5       nU R                  UR                  5        g rJ   )r   r   assertFalser   r  s     r   test_default_to_disabled'BufferTextTest.test_default_to_disabledz  s$    ##%++,r   c                     U R                  U R                  R                  5        U R                  R                  SS5        U R	                  U R
                  S/S5        g )N   <a>1<b/>2<c/>3</a>T123$buffered text not properly collapsed)r  r   r   r   r   r!  r   s    r   test_buffering_enabled%BufferTextTest.test_buffering_enabled~  sI    //0/6eW?	Ar   c                     U R                  S/5        U R                  R                  SS5        U R                  U R                  / SQS5        g )NrV   s9   <a>1<b buffer-text='no'/>2
3<c buffer-text='yes'/>4
5</a>T)<a>1<b>2
3<c>z4
5z*buffering control not reacting as expectedr8  r   r   r   r!  r   s    r   test1BufferTextTest.test1  sG     	/01XZ^_KE	Gr   c                 x    U R                   R                  SS5        U R                  U R                  S/S5        g )Ns&   <a>1<b/>&lt;2&gt;<c/>&#32;
&#x20;3</a>Tz1<2> 
 3rA  )r   r   r   r!  r   s    r   test2BufferTextTest.test2  s3    DdKk]?	Ar   c                     U R                  S/5        U R                  R                  SS5        U R                  U R                  / SQS5        g )NrV   r?  T)rE  rF  rG  rH  rK  rJ   buffered text not properly splitrL  r   s    r   test3BufferTextTest.test3  sC    /01/6%I;	=r   c                     U R                  SS/5        S U R                  l        U R                  R                  SS5        U R	                  U R
                  / SQ5        g )NrV   r[   r?  T)rE  rG  </b>rK  </c></a>)r8  r   ra   r   r   r!  r   s    r   test4BufferTextTest.test4  sP    /1DEF+/(/6F	Hr   c                     U R                  SS/5        U R                  R                  SS5        U R                  U R                  / SQ5        g )NrV   r[   s   <a>1<b></b>2<c/>3</a>T)	rE  rF  rG  rW  rH  rK  rX  rJ  rY  rL  r   s    r   test5BufferTextTest.test5  sD    /1DEF2D9H	Jr   c                     U R                  / SQ5        U R                  R                  SS5        U R                  U R                  / SQS5        g )Nr{   r[   rV   s   <a>1<b/>2<c></c>345</a> T)	rE  rF  rG  rW  rH  rK  rX  345rY  rS  rL  r   s    r   test6BufferTextTest.test6  sD     + 	,5t<J.	0r   c                     U R                  / SQ5        U R                  R                  SS5        U R                  U R                  / SQS5        g )Nr`  s,   <a>1<b/>2<c></c>3<!--abc-->4<!--def-->5</a> T)rE  rF  rG  rW  rH  rK  rX  rJ  z
<!--abc-->4z
<!--def-->5rY  rS  rL  r   s    r   test7BufferTextTest.test7  sG     + 	,I4PH;	=r   )r   r!  N)r=   r>   r?   r@   r   r'  ra   rV   r[   r{   r8  r<  rB  rM  rP  rT  rZ  r]  rb  rg  rA   rB   r   r   r  r  Y  s]    E;
 (*. $& <-AGA
=HJ0=r   r  c                   J    \ rS rSrS rS r\R                  S 5       rS r	Sr
g)HandlerExceptionTesti  c                      [        SU S35      e)NzStartElementHandler: <>)RuntimeErrorrS   s      r   rV   (HandlerExceptionTest.StartElementHandler  s    3D6;<<r   c                     U R                  [        R                  R                  UR                  5      U5        U R                  UR
                  U5        g rJ   )r   ospathbasenamefilenamerT   )r   r  rs  funcnames       r   check_traceback_entry*HandlerExceptionTest.check_traceback_entry  s9    ))%..98DX.r   c                 6   [         R                  " S5      nU(       a   [        R                  R	                  U5      nOSnU(       a1  [
        R                  " U5         U R                  U5        S S S 5        g U R                  U5        g ! , (       d  f       g = f)Nabs_builddirF)	sysconfigget_config_varrp  rq  isdirr   
change_cwd_test_exception)r   src_dirhave_sources      r   test_exception#HandlerExceptionTest.test_exception  sn     **>:''--0KK%%g.$$[1 /.   - /.s   B


Bc                    [         R                  R                  SS5      n[        R                  " 5       nU R
                  Ul         UR                  SS5        U R                  S5        U R                  [        W5      SU5        U R                  US   S	S
5        U R                  US   [         R                  R!                  U5      S5        U R                  US   S	S5        U(       aE  [         R                  R#                  U5      (       a   U R%                  SUS   R&                  5        g g g ! [         aK  nU R                  UR                  S   SU5        [        R                  " UR                  5      n S nAGNS nAff = f)NModulesz	pyexpat.cs   <a><b><c/></b></a>Tz%the parser did not raise RuntimeErrorr   zStartElementHandler: <a>   ztest_pyexpat.pyr}  r   StartElementr   rV   zcall_with_frame("StartElement")rp  rq  joinr   r   rV   r   r   rm  r   r~   	traceback
extract_tb__traceback__r  ru  rr  existsassertInline)r   r  	PYEXPAT_Cr   excentriess         r   r}  $HandlerExceptionTest._test_exception  sI    GGLLK8	##%%)%=%="	>LL.5II=>
 	Wq'2""71:#46G	I""71:#%77#3#3I#>#1	3 	""71:#46K	M 277>>)44MM:!!*//+ 5;!  	>SXXa[*DcJ**3+<+<=G	>s   #D3 3
F=A FFrB   N)r=   r>   r?   r@   rV   ru  r   cpython_onlyr  r}  rA   rB   r   r   rj  rj    s+    =/ . . +r   rj  c                   ,    \ rS rSrS rS rS rS rSrg)PositionTesti  c                 &    U R                  S5        g )Ns	check_posrS   s      r   rV    PositionTest.StartElementHandler      sr   c                 &    U R                  S5        g )Nr   r  rZ   s     r   r[   PositionTest.EndElementHandler  r  r   c                 |   UU R                   R                  U R                   R                  U R                   R                  4nU R	                  U R
                  [        U R                  5      :  S5        U R                  U R
                     nU R                  X#SU< SU< 35        U =R
                  S-  sl        g )Nztoo many parser eventszExpected position z, got position r   )	r   CurrentByteIndexCurrentLineNumberCurrentColumnNumberr  uptor  expected_listr   )r   eventposr%  s       r   r  PositionTest.check_pos  s    {{++{{,,{{..0 			C(:(:$;;0	2%%dii0h:=xH	J		Q	r   c                     [         R                  " 5       U l        U R                  U R                  l        U R                  U R                  l        SU l        / SQU l        SnU R                  R                  US5        g )Nr   ))r  r   r   r   )r     r   r   )r     r  r   )r   r2   r  r  )r         r   )r      r  r   s   <a>
 <b>
  <c/>
 </b>
</a>T)r   r   r   rV   r[   r  r  r   )r   xmls     r   r  PositionTest.test  sc    ((**.*B*B'(,(>(>%	Q 0#t$r   )r  r   r  N)	r=   r>   r?   r@   rV   r[   r  r  rA   rB   r   r   r  r    s    
	%r   r  c                       \ rS rSrS rSrg)sf1296433Testi  c                    ^ SS-  n " S S[         5      mU4S jn[        R                  " 5       nX#l        U R	                  TUR
                  UR                  S5      5        g )Nz1<?xml version='1.0' encoding='iso8859'?><s>%s</s>  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac                       \ rS rSrSrg)Asf1296433Test.test_parse_only_xml_data.<locals>.SpecificExceptioni  rB   N)r=   r>   r?   r@   rA   rB   r   r   SpecificExceptionr    s    r   r  c                    > TerJ   rB   )rz   r  s    r   r   7sf1296433Test.test_parse_only_xml_data.<locals>.handler  s	    ##r   iso8859)	Exceptionr   r   ra   r3   r   encode)r   r  r   r   r  s       @r   test_parse_only_xml_data&sf1296433Test.test_parse_only_xml_data  sW     BZP		 		$ ##%&-#+V\\3::i;PQr   rB   N)r=   r>   r?   r@   r  rA   rB   r   r   r  r    s    Rr   r  c                   J    \ 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)ChardataBufferTesti%  c                 F    U R                  U R                  S5      S5        g )Ni  r   r   small_buffer_testr   s    r   test_1025_bytes"ChardataBufferTest.test_1025_bytes*      //5q9r   c                 F    U R                  U R                  S5      S5        g )Ni  r   r  r   s    r   test_1000_bytes"ChardataBufferTest.test_1000_bytes-  r  r   c                    [         R                  " 5       nSUl        U R                  [        5         SUl        S S S 5        U R                  [        5         SUl        S S S 5        U R                  [        [        45         [        R                  S-   Ul        S S S 5        U R                  [        5         SUl        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NV= f! , (       d  f       g = f)Nr   r   g      @)
r   r   r   r3   r   buffer_sizeOverflowErrorsysmaxsizer6   r  s     r   test_wrong_size"ChardataBufferTest.test_wrong_size0  s    ##%z*!#F +z*!"F +
M:;!$qF <y)!&F *) +***;;))s/   C	CC+8C<	
C
C(+
C9<
D
c                    SnSn[         R                  " 5       nU R                  Ul        SUl        SUl        SU l        UR                  U5        U R                  U R                  S5        UR                  Ul        U R                  U R                  S5        UR                  U5        U R                  U R                  S5        g )Ns+  <?xml version='1.0' encoding='iso8859'?><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s>i   r   r   r   )	r   r   counting_handlerra   r  r   nr   r   r   xml1xml2r   s       r   test_unchanged_size&ChardataBufferTest.test_unchanged_size<  s    J!##%&*&;&;#  T# $//# 	T#r   c                 &   SnSnSn[         R                  " 5       nU R                  Ul        SUl        SUl        U R                  UR
                  S5        SU l        UR                  US5        U R                  UR
                  S5        U R                  U R                  S5        SUl        U R                  UR                  5        U R                  UR
                  S5        [        S5       H  nUR                  US5        M     U R                  U R                  S	5        SUl        U R                  UR                  5        U R                  UR
                  S5        UR                  US
5        U R                  U R                  S5        g )Ns+  <?xml version='1.0' encoding='iso8859'?><a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas   bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbs  cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc</a>r      r   F
   r  T   )r   r   r  ra   r   r  r   r  r   r;  r8   r  )r   r  r  xml3r   is         r   test_disabling_buffer(ChardataBufferTest.test_disabling_bufferS  sJ   J$##%&*&;&;#!++T2 T5!++T2# ++,++T2rALLu% $**+++T2T4 $r   c                 .    U =R                   S-  sl         g r   r  ry   s     r   r  #ChardataBufferTest.counting_handlerq  s    !r   c                     SSU-  -   S-   n[         R                  " 5       nU R                  Ul        SUl        SUl        SU l        UR                  U5        U R                  $ )Ns+   <?xml version='1.0' encoding='iso8859'?><s>   as   </s>r  r   r   )r   r   r  ra   r  r   r  r   )r   
buffer_lenr  r   s       r   r  $ChardataBufferTest.small_buffer_testt  s_    <tj?PPSZZ##%&*&;&;#!Svvr   c                    SnSn[         R                  " 5       nU R                  Ul        SUl        SUl        U R                  UR
                  S5        SU l        UR                  US5        U=R
                  S-  sl        U R                  UR
                  S5        UR                  US	5        U R                  U R                  S5        g )
Ns.  <?xml version='1.0' encoding='iso8859'?><a><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  aaa</s><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s></a>r   r  r   Fr      T	r   r   r  ra   r   r  r   r  r   r  s       r   test_change_size_1%ChardataBufferTest.test_change_size_1  s    N8##%&*&;&;#!++T2T5!a++T2T4 #r   c                    SnSn[         R                  " 5       nU R                  Ul        SUl        SUl        U R                  UR
                  S5        SU l        UR                  US5        UR
                  S-  Ul        U R                  UR
                  S5        UR                  US	5        U R                  U R                  S
5        g )Ns.  <?xml version='1.0' encoding='iso8859'?><a>a<s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar  r   r  r   Fr   r  Tr  r  r  s       r   test_change_size_2%ChardataBufferTest.test_change_size_2  s    O8##%&*&;&;#!++T2T5!#//14++T2T4 #r   r  N)r=   r>   r?   r@   r  r  r  r  r  r  r  r  r  rA   rB   r   r   r  r  %  s/    
::
'$.%<	$ $r   r  c                        \ rS rSrS rS rSrg)MalformedInputTesti  c                     Sn[         R                  " 5       n UR                  US5        U R                  5         g ! [         R                   a%  nU R                  [        U5      S5         S nAg S nAff = f)Ns    
Tz unclosed token: line 2, column 0)r   r   r   r   
ExpatErrorr   r   r   r  r   r   s       r   rM  MalformedInputTest.test1  sb    ##%	ILLd#IIK 	ISV%GHH	Is   "< A5A00A5c                     Sn[         R                  " 5       nSnU R                  [         R                  U5         UR	                  US5        S S S 5        g ! , (       d  f       g = f)Ns   <?xml version='1.0'?>
z3XML declaration not well-formed: line 1, column \d+T)r   r   r   r  r   )r   r  r   err_patterns       r   rP  MalformedInputTest.test2  sK    2##%L##E$4$4kBLLd# CBBs   A
A$rB   N)r=   r>   r?   r@   rM  rP  rA   rB   r   r   r  r    s    I$r   r  c                        \ rS rSrS rS rSrg)ErrorMessageTesti  c                     U R                  [        R                  [        R                  [        R                  [        R                        5        g rJ   )r   r   XML_ERROR_SYNTAXmessagescodesr   s    r   
test_codesErrorMessageTest.test_codes  s4    00f6M6M)NO	Qr   c                 0   Sn[         R                  " 5       n UR                  US5        U R                  5         g ! [         R                   aE  nU R                  UR                  [        R                  [        R                     5         S nAg S nAff = f)N   <T)
r   r   r   r   r  r   r   r   r  XML_ERROR_UNCLOSED_TOKENr  s       r   test_expaterror ErrorMessageTest.test_expaterror  sw    ##%	LLLd#IIK 	LQVV#\\&*I*IJL L	Ls   "< B;BBrB   N)r=   r>   r?   r@   r  r  rA   rB   r   r   r  r    s    Q
Lr   r  c                        \ rS rSrS rS rSrg)ForeignDTDTestsi  c                   ^ / mU4S jn[         R                  " 5       nUR                  S5        UR                  [         R                  5        Xl        UR                  S5        U R                  TS/5        / TS S & [         R                  " 5       nUR                  5         UR                  [         R                  5        Xl        UR                  S5        U R                  TS/5        g )Nc                 *   > TR                  X245        gr   r  r   r   	system_id	public_idhandler_call_argss       r   resolve_entity<ForeignDTDTests.test_use_foreign_dtd.<locals>.resolve_entity      $$i%;<r   Ts   <?xml version='1.0'?><element/>)NNr   r   UseForeignDTDSetParamEntityParsingXML_PARAM_ENTITY_PARSING_ALWAYSr   r   r   r   r  r   r  s      @r   test_use_foreign_dtd$ForeignDTDTests.test_use_foreign_dtd  s     	 ##%T"$$U%J%JK*8'78*\N;  "!##%$$U%J%JK*8'78*\N;r   c                    ^ / mU4S jn[         R                  " 5       nUR                  S5        UR                  [         R                  5        Xl        UR                  S5        U R                  TS/5        g )Nc                 *   > TR                  X245        gr   r  r  s       r   r  CForeignDTDTests.test_ignore_use_foreign_dtd.<locals>.resolve_entity  r  r   Ts@   <?xml version='1.0'?><!DOCTYPE foo PUBLIC 'bar' 'baz'><element/>)barbazr  r  s      @r   test_ignore_use_foreign_dtd+ForeignDTDTests.test_ignore_use_foreign_dtd  sl     	 ##%T"$$U%J%JK*8'O	Q*^,<=r   rB   N)r=   r>   r?   r@   r  r  rA   rB   r   r   r  r    s    <8>r   r  c                   &    \ rS rSrS rS rS rSrg)ParentParserLifetimeTesti  c                 R    [         R                  " 5       nUR                  S 5      nAg rJ   r   r   r  )r   r   	subparsers      r   2test_parent_parser_outlives_its_subparsers__singleKParentParserLifetimeTest.test_parent_parser_outlives_its_subparsers__single  s%    ##%55d;	 r   c                 t    [         R                  " 5       nUR                  S 5      nUR                  S 5      nAg rJ   r   )r   r   subparser_onesubparser_twos       r   4test_parent_parser_outlives_its_subparsers__multipleMParentParserLifetimeTest.test_parent_parser_outlives_its_subparsers__multiple  s5    ##%99$?99$? r   c                 v    [         R                  " 5       nUR                  S 5      nUR                  S 5      nAAg rJ   r   )r   r   r!  subsubparsers       r   1test_parent_parser_outlives_its_subparsers__chainJParentParserLifetimeTest.test_parent_parser_outlives_its_subparsers__chain  s8    ##%55d;	 ;;DA r   rB   N)r=   r>   r?   r@   r"  r'  r+  rA   rB   r   r   r  r    s    r   r  c                   &    \ rS rSrS rS rS rSrg)ReparseDeferralTesti  c                 X   [         R                  " 5       n[         R                  S:  nU R                  UR	                  5       U5        UR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       U5        g )Nr   r  r   FT)r   r   version_infor   GetReparseDeferralEnabledSetReparseDeferralEnabled)r   r   enableds      r   test_getter_setter_round_trip1ReparseDeferralTest.test_getter_setter_round_trip  s    ##%%%2f668'B((/f668%@((.f668'Br   c                   ^ [         R                  S:  a#  U R                  S[         R                   S35        / mU4S jn[         R                  " 5       nXl        U R                  UR                  5       5        S H  nUR                  US5        M     U R                  T/ 5        UR                  SS5        U R                  TS	/5        g )
Nr0  zExpat z" does not support reparse deferralc                 (   > TR                  U 5        g rJ   r  rT   _starteds     r   start_elementHReparseDeferralTest.test_reparse_deferral_enabled.<locals>.start_element,      NN4 r   s   <docs   />Fr   Tdoc)	r   r1  skipTestr   rV   r  r2  r   r   r   r<  r   chunkr;  s       @r   test_reparse_deferral_enabled1ReparseDeferralTest.test_reparse_deferral_enabled%  s    	)MMF5#5#5"6 75 5 6 	! ##%%2"88:;%ELL& & 	"%S$5'*r   c                 0  ^ / mU4S jn[         R                  " 5       nXl        [         R                  S:  a  UR	                  S5        U R                  UR                  5       5        S H  nUR                  US5        M     U R                  TS/5        g )Nc                 (   > TR                  U 5        g rJ   r  r9  s     r   r<  IReparseDeferralTest.test_reparse_deferral_disabled.<locals>.start_element@  r>  r   r0  Fr?  r@  )	r   r   rV   r1  r3  r;  r2  r   r   rB  s       @r   test_reparse_deferral_disabled2ReparseDeferralTest.test_reparse_deferral_disabled=  s    	! ##%%2"*,,U399;<%ELL& & 	5'*r   rB   N)r=   r>   r?   r@   r5  rD  rI  rA   rB   r   r   r.  r.    s    C+0+r   r.  __main__)"rp  r  ry  unittestr  ior   r  r   test.supportr   xml.parsersr   xml.parsers.expatr   r   TestCaser
   r`   rD   r   r   r  rj  r  r  r  r  r  r  r  r.  r=   mainrB   r   r   <module>rS     sY   
 
      "  $ !%Gx(( %GP6|;!! |;|3X.. 3B!/H%% !/H\=X&& \=@6+8,, 6+t%8$$ %>RH%% R&x$** x$t$** $$Lx(( L"1>h'' 1>h!x00 !H3+(++ 3+l zMMO r   