
    0hh                        S SK JrJrJrJrJr  S SKrS SKJr   \" 5         S SK	J
r
JrJrJrJrJr  S SKJr  S SKJrJrJr  S SKJrJrJr  S S	KJr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#J$r$  S SK%r&S SK'J(r(  S SK'J)r)  S SK*J+r+J,r,  \)" SSS9r-\)" SSS9r. \-R_                  S5        \.R_                  S5        Sr1\Rd                  Rf                  (       d+   \(Rh                  R_                  \"Rj                  " 5       5        \Rp                  " \1S5      r9Sr: " S S\Rv                  5      r<S@S jr=SAS jr>SAS jr? " S S\Rv                  5      r@ " S S \Rv                  5      rA " S! S"\Rv                  5      rB " S# S$\Rv                  5      rC " S% S&5      rD " S' S(\D\Rv                  5      rE " S) S*\D\Rv                  5      rF " S+ S,\F5      rG " S- S.\D\Rv                  5      rH " S/ S0\D\Rv                  5      rIS1rJ " S2 S3\Rv                  5      rK\L" \.S45       rM\MR                  5       rOSSS5         " S5 S6\<5      rP " S7 S8\Rv                  5      rQ " S9 S:\<5      rR " S; S<\Rv                  5      rS " S= S>\Rv                  5      rT\US?:X  a  \R                  " 5         gg! \ a    \R                  " S5      ef = f! \0 a    \R                  " S5      ef = f! \6\74 a    Sr1 GNf = f! , (       d  f       N= f)B    )make_parserContentHandlerSAXExceptionSAXReaderNotAvailableSAXParseExceptionN)mockzno XML parsers available)XMLGeneratorescapeunescape	quoteattrXMLFilterBaseprepare_input_source)create_parser)feature_namespacesfeature_external_gesLexicalHandler)InputSourceAttributesImplAttributesNSImpl)BytesIOStringIO)URLError)	os_helper)findfile)FakePathTESTFNztest.xmlxmltestdata)subdirztest.xml.oututf-8z!filename is not encodable to utf8TFz$Requires non-ascii filenames supportz%http://www.python.org/xml-ns/saxtest/c                   &    \ rS rSrS rS rS rSrg)XmlTestBase6   c                    U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR
                  S5        U R                  [        UR                  S5        U R                  UR                  5       S5        U R                  UR                  5       / 5        U R                  UR                  5       / 5        U R                  [        U5      S5        U R                  SU5        U R                  [        UR                  5       5      / 5        U R                  UR                  S5      S 5        U R                  UR                  SS5      S5        U R                  [        UR!                  5       5      / 5        U R                  [        UR#                  5       5      / 5        g )Nattrr   attrs   )assertRaisesKeyErrorgetValuegetValueByQNamegetNameByQNamegetQNameByName__getitem__assertEqual	getLengthgetNames	getQNameslenassertNotInlistkeysgetitemsvaluesselfr%   s     6/opt/python-3.13.8/usr/lib/python3.13/test/test_sax.pyverify_empty_attrsXmlTestBase.verify_empty_attrs7   sf   (ENNF;(E$9$96B(E$8$8&A(E$8$8&A(E$5$5v>*A.)2.*B/UQ''ejjl+R07+T27B/4ekkm,b1elln-r2    c                 ,   U R                  [        UR                  [        S45        U R                  [        UR                  S5        U R                  [        UR
                  S5        U R                  [        UR                  [        S45        U R                  [        UR                  [        S45        U R                  UR                  5       S5        U R                  UR                  5       / 5        U R                  UR                  5       / 5        U R                  [        U5      S5        U R                  [        S4U5        U R                  [        UR                  5       5      / 5        U R                  UR!                  [        S45      S 5        U R                  UR!                  [        S4S5      S5        U R                  [        UR#                  5       5      / 5        U R                  [        UR%                  5       5      / 5        g )Nr$   ns:attrr   r&   )r'   r(   r)   ns_urir*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   s     r;   verify_empty_nsattrs XmlTestBase.verify_empty_nsattrsH   s   (ENNVV4DE(E$9$99E(E$8$8)D(E$8$866:JK(E$5$57GH*A.)2.*B/UQ'&&)51ejjl+R0FF#34d;FF#3R8"=ekkm,b1elln-r2r>   c                    U R                  UR                  5       S5        U R                  UR                  5       S/5        U R                  UR                  5       S/5        U R                  [	        U5      S5        U R                  SU5        U R                  [        UR                  5       5      S/5        U R                  UR                  S5      S5        U R                  UR                  SS5      S5        U R                  [        UR                  5       5      S/5        U R                  [        UR                  5       5      S/5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  US   S5        U R                  UR                  S5      S5        g )N   r$   valr&   )r$   rF   )r.   r/   r0   r1   r2   assertInr4   r5   r6   r7   r8   r)   r*   r+   r,   r9   s     r;   verify_attrs_wattrXmlTestBase.verify_attrs_wattrY   sw   *A.)F84*VH5UQ'fe$ejjl+fX66*E262.6ekkm,.?@elln-w7/7..v6>--f5v>v.--f5v>r>    N)__name__
__module____qualname____firstlineno__r<   rB   rH   __static_attributes__rJ   r>   r;   r!   r!   6   s    3"3"?r>   r!   c                      Uc  U $ SU< SU < 3$ N<?xml version="1.0" encoding=""?>
rJ   )docencodings     r;   xml_strrV   k   s    
 8@#FFr>   c                 F    USL a  Un[        X5      R                  US5      $ )N.xmlcharrefreplace)rV   encode)rT   rU   decl_encodings      r;   	xml_bytesr[   p   s(     3&--h8KLLr>   c                     USL a  Un[        [        SUSS9 nUR                  [        X5      5        S S S 5        g ! , (       d  f       g = f)N.wrX   )rU   errors)openr   writerV   )rT   rU   rZ   fs       r;   make_xml_filerb   u   s>     	fcH5H	IQ	+, 
J	I	Is	   <
A
c                   T    \ 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|   u,   <money value="$£€𐅻">$£€𐅻</money>c                 8    [         R                  " [        5        g N)r   unlinkr   r:   s    r;   tearDownParseTest.tearDown   s     r>   c                     SSK Jn  [        5       nU" U[        US5      5        U R	                  UR                  5       [        U R                  S5      5        g )Nr   )parser   )xml.saxrm   r   r	   r.   getvaluerV   data)r:   ra   rm   results       r;   check_parseParseTest.check_parse   s?    !afg./*GDIIw,GHr>   c           	         SnU H  nU R                  [        [        U R                  U5      5      5        [	        U R                  U5        [        [        SUS9 nU R                  U5        S S S 5        U R                  [        U R                  5      5        [	        U R                  US 5        [        [        SUS9 nU R                  U5        S S S 5        M     g ! , (       d  f       Nw= f! , (       d  f       M  = f)Nus-ascii
iso-8859-1r   utf-16utf-16leutf-16berrU   )rr   r   rV   rp   rb   r_   r   r:   	encodingsrU   ra   s       r;   test_parse_textParseTest.test_parse_text   s    7	!HXgdii&BCD$))X.fcH5  # 6Xdii01$))Xt4fcH5  # 65 " 65 65s   C?C/
C,	/
C>	c           
      D   SnU GH  nU R                  [        [        U R                  U5      5      5        [	        U R                  U5        U R                  [
        5        [        [
        S5       nU R                  U5        S S S 5        U R                  [        [        U R                  US 5      5      5        [	        U R                  US 5        U R                  [
        5        [        [
        S5       nU R                  U5        S S S 5        GM     U R                  [        [        U R                  SS5      5      5        [	        U R                  SS5        U R                  [
        5        [        [
        S5       nU R                  U5        S S S 5        U R                  [        [        U R                  SS 5      5      5        [	        U R                  SS 5        U R                  [
        5        [        [
        S5       nU R                  U5        S S S 5        U R                  [        [        U R                  S5      5      5        [	        U R                  S5        U R                  [
        5        [        [
        S5       nU R                  U5        S S S 5        U R                  [        5         U R                  [        [        U R                  SS 5      5      5        S S S 5        [	        U R                  SS 5        U R                  [        5         U R                  [
        5        S S S 5        [        [
        S5       nU R                  [        5         U R                  U5        S S S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN8= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nrv   r   rx   ry   rz   rb	utf-8-sigr   rw   )	rr   r   r[   rp   rb   r   r_   r'   r   r}   s       r;   test_parse_bytesParseTest.test_parse_bytes   s    L	!HWYtyy(%CDE$))X.V$fd#q  # $WYtyy(D%IJK$))Xt4V$fd#q  # $# " 	499k7!KLMdiig6 &$1Q  499k4!HIJdiid3 &$1Q   	499l!CDEdii. &$1Q   |,WYtyy,%MNO -diit4|,V$ -&$1""<0  # 1  = $#
 $#  
     -, -, 10  sx   2N7NN(N:	O80OO/
P P 2P
N	
N%	(
N7:
O	
O
O,/
O= 
P	
P
Pc                 n    [        U R                  SS 5        U R                  [        [        5      5        g )Nr   )rb   rp   rr   r   r   ri   s    r;   test_parse_path_object ParseTest.test_parse_path_object   s%    dii$/&)*r>   c                     [        U R                  SS 5        [        [        S5       n[	        5       nUR                  U5        UR                  S5        U R                  U5        S S S 5        g ! , (       d  f       g = f)Nrw   r   )rb   rp   r_   r   r   setByteStreamsetEncodingrr   )r:   ra   inputs      r;   test_parse_InputSource ParseTest.test_parse_InputSource   s[    diit4&$1ME"l+U#	  s   >A//
A=c                 p  ^^ [         mS mUU4S jn[        R                  " SUS9   [        U R                  SS 5        U R                  [        5         U R                  [        5        S S S 5        U R                  TR                  5        S S S 5        g ! , (       d  f       N2= f! , (       d  f       g = f)Nc                     > T" U 6 mT$ rg   rJ   )argsbuiltin_openfileobjs    r;   	mock_open4ParseTest.test_parse_close_source.<locals>.mock_open   s    "D)GNr>   zxml.sax.saxutils.open)side_effectrw   )r_   r   patchrb   rp   r'   r   rr   r   
assertTrueclosed)r:   r   r   r   s     @@r;   test_parse_close_source!ParseTest.test_parse_close_source   s~    	
 ZZ/YG$))\48""<0  ( 1OOGNN+	 HG00 HGs#   -B'B*#B'
B$	 B''
B5c                     SSK Jn  [        5       nU" U[        US5      5        U R	                  UR                  5       [        U R                  S5      5        g )Nr   )parseStringr   )rn   r   r   r	   r.   ro   rV   rp   )r:   sr   rq   s       r;   check_parseStringParseTest.check_parseString   s?    'A|FG45*GDIIw,GHr>   c                     SnU H(  nU R                  [        U R                  U5      5        M*     U R                  U R                  5        g )Nru   )r   rV   rp   r:   r~   rU   s      r;   test_parseString_textParseTest.test_parseString_text   s>    7	!H""7499h#?@ "tyy)r>   c                 <   SnU HN  nU R                  [        U R                  U5      5        U R                  [        U R                  US 5      5        MP     U R                  [        U R                  SS5      5        U R                  [        U R                  SS 5      5        U R                  [        U R                  S5      5        U R                  [        5         U R                  [        U R                  SS 5      5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   rw   )r   r[   rp   r'   r   r   s      r;   test_parseString_bytes ParseTest.test_parseString_bytes   s     L	!H""9TYY#AB""9TYY$#GH " 	yKIJyKFGyLAB|,""9TYYd#KL -,,s   'D
DrJ   N)rK   rL   rM   rN   rp   rj   rr   r   r   r   r   r   r   r   r   rO   rJ   r>   r;   rd   rd   |   s=    OD!I$($T+$,I*Mr>   rd   c                   ,    \ rS rSrS rS rS rS rSrg)MakeParserTest   c                     SSK Jn  U" 5       nSSK Jn  U" 5       nSSK Jn  U" 5       nSSK Jn  U" 5       nSSK Jn  U" 5       nSSK Jn  U" 5       ng )Nr   r   )rn   r   )r:   r   ps      r;   test_make_parser2 MakeParserTest.test_make_parser2   s@     	(M'M'M'M'M'Mr>   c                     [        S/5        [        S5        [        S15        [        [        S15      5        [        SS 05        [        [        S/5      5        g )Nmodule)r   r   	frozensetiterri   s    r;   test_make_parser3 MakeParserTest.test_make_parser3
  sK     	XJL!XJIxj)*Xt$%D($%r>   c                     [        / 5        [        [        5       5        [        [        5       5        [        [        5       5        [        0 5        [        [	        / 5      5        g rg   )r   tuplesetr   r   ri   s    r;   test_make_parser4 MakeParserTest.test_make_parser4  s:    BEGCEIK BDHr>   c                     [        SS/5        [        S5        [        SS15        [        [        SS15      5        [        S S S.5        [        [        SS/5      5        g )Nmodule1module2)r   r   r   ri   s    r;   test_make_parser5 MakeParserTest.test_make_parser5  sX     	Y	*+*+Y	*+Iy)45667D)Y/01r>   rJ   N)	rK   rL   rM   rN   r   r   r   r   rO   rJ   r>   r;   r   r      s    "&2r>   r   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g)SaxutilsTesti-  c                 :    U R                  [        S5      S5        g )NDonald Duck & CoDonald Duck &amp; Cor.   r
   ri   s    r;   test_escape_basicSaxutilsTest.test_escape_basic/  s     235KLr>   c                 :    U R                  [        S5      S5        g )N<Donald Duck & Co>&lt;Donald Duck &amp; Co&gt;r   ri   s    r;   test_escape_allSaxutilsTest.test_escape_all2  s     457	9r>   c                 @    U R                  [        SSS05      S5        g Nu   Hei på deg   åz&aring;zHei p&aring; degr   ri   s    r;   test_escape_extraSaxutilsTest.test_escape_extra6  s!    y/AB+	-r>   c                 :    U R                  [        S5      S5        g )Nr   r   r.   r   ri   s    r;   test_unescape_basic SaxutilsTest.test_unescape_basic;  s    "89;MNr>   c                 :    U R                  [        S5      S5        g )Nr   r   r   ri   s    r;   test_unescape_allSaxutilsTest.test_unescape_all>  s    "@A-	/r>   c                 @    U R                  [        SSS05      S5        g r   r   ri   s    r;   test_unescape_extra SaxutilsTest.test_unescape_extraB  s!    -$1CD+	-r>   c                 @    U R                  [        SSS05      S5        g )Nz	&amp;foo;z&foo;splatr   ri   s    r;   test_unescape_amp_extra$SaxutilsTest.test_unescape_amp_extraF  s    +/ABGLr>   c                 :    U R                  [        S5      S5        g )Nr   z"Donald Duck &amp; Co"r.   r   ri   s    r;   test_quoteattr_basic!SaxutilsTest.test_quoteattr_basicJ  s    #561	3r>   c                 :    U R                  [        S5      S5        g )NzIncludes "double" quotesz'Includes "double" quotes'r   ri   s    r;   test_single_quoteattr"SaxutilsTest.test_single_quoteattrN      #=>7	9r>   c                 :    U R                  [        S5      S5        g )NzIncludes 'single' quotesz"Includes 'single' quotes"r   ri   s    r;   test_double_quoteattr"SaxutilsTest.test_double_quoteattrR  r   r>   c                 :    U R                  [        S5      S5        g )Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes"r   ri   s    r;   test_single_double_quoteattr)SaxutilsTest.test_single_double_quoteattrV  s    #LMN	Pr>   c                     [        S/5      ng )Nzxml.parsers.no_such_parserr   )r:   r   s     r;   test_make_parserSaxutilsTest.test_make_parser[  s     567r>   rJ   N)rK   rL   rM   rN   r   r   r   r   r   r   r   r   r   r   r   r   rO   rJ   r>   r;   r   r   -  sB    M9-
O/-M399P
8r>   r   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g)PrepareInputSourceTestia  c                     [         R                  U l        [        U R                  S5       nUR	                  S5        S S S 5        g ! , (       d  f       g = f)Nr]   zThis was read from a file.)r   r   filer_   r`   )r:   tmps     r;   setUpPrepareInputSourceTest.setUpc  s8    $$	$))S!SII23 "!!s   A
Ac                 D    [         R                  " U R                  5        g rg   )r   rh   r   ri   s    r;   rj   PrepareInputSourceTest.tearDownh  s    #r>   c                     [        S5      $ Ns   This is a byte stream.)r   ri   s    r;   make_byte_stream'PrepareInputSourceTest.make_byte_streamk  s    011r>   c                     [        S5      $ NzThis is a character stream.)r   ri   s    r;   make_character_stream,PrepareInputSourceTest.make_character_streamn  s    566r>   c                     U R                  U5        U R                  UR                  5       U5        UR                  5         g rg   )assertIsNotNoner.   readclose)r:   streamcontents      r;   checkContent#PrepareInputSourceTest.checkContentq  s/    V$0r>   c                     [        U R                  5      nUR                  U R                  5       5        [	        U5      nU R                  UR                  5       5        U R                  UR                  5       S5        g r  )	r   r   setCharacterStreamr  r   assertIsNonegetByteStreamr
  getCharacterStreamr:   srcpreps      r;   test_character_stream,PrepareInputSourceTest.test_character_streamw  sd    $))$t99;<#C($,,./$1137	9r>   c                     [        U R                  5      nUR                  U R                  5       5        [	        U5      nU R                  UR                  5       5        U R                  UR                  5       S5        g r   )	r   r   r   r   r   r  r  r
  r  r  s      r;   test_byte_stream'PrepareInputSourceTest.test_byte_stream  sf     $))$$//12#C($1134$,,.3	5r>   c                     [        U R                  5      n[        U5      nU R                  UR	                  5       5        U R                  UR                  5       S5        g Ns   This was read from a file.)r   r   r   r  r  r
  r  r  s      r;   test_system_id%PrepareInputSourceTest.test_system_id  sO     $))$#C($1134$,,.7	9r>   c                     [        U R                  5      nU R                  UR                  5       5        U R	                  UR                  5       S5        g r  )r   r   r  r  r
  r  r:   r  s     r;   test_string"PrepareInputSourceTest.test_string  sC    #DII.$1134$,,.7	9r>   c                     [        [        U R                  5      5      nU R                  UR	                  5       5        U R                  UR                  5       S5        g r  )r   r   r   r  r  r
  r  r  s     r;   test_path_objects(PrepareInputSourceTest.test_path_objects  sH    #HTYY$78$1134$,,.7	9r>   c                     [        U R                  5       5      nU R                  UR                  5       5        U R	                  UR                  5       S5        g r   )r   r   r  r  r
  r  r  s     r;   test_binary_file'PrepareInputSourceTest.test_binary_file  sJ     $D$9$9$;<$1134$,,.3	5r>   c                     [        U R                  5       5      nU R                  UR                  5       5        U R	                  UR                  5       S5        g r  )r   r  r  r  r
  r  r  s     r;   test_text_file%PrepareInputSourceTest.test_text_file  sJ     $D$>$>$@A$,,./$1137	9r>   )r   N)rK   rL   rM   rN   r   rj   r   r  r
  r  r  r  r  r"  r%  r(  rO   rJ   r>   r;   r   r   a  s>    4
$279599959r>   r   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Srg)
XmlgenTesti  c                    U R                  5       n[        U5      nUR                  5         UR                  S0 5        UR	                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NrT   <doc></doc>	ioclassr	   startDocumentstartElement
endElementendDocumentr.   ro   xmlr:   rq   gens      r;   test_xmlgen_basicXmlgenTest.test_xmlgen_basic  si    6"#u*DHH],CDr>   c                    U R                  5       n[        USS9nUR                  5         UR                  S0 5        UR	                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NTshort_empty_elementsrT   <doc/>r.  r5  s      r;   test_xmlgen_basic_empty"XmlgenTest.test_xmlgen_basic_empty  sk    6=#u*DHHX,>?r>   c                 @   U R                  5       n[        U5      nUR                  5         UR                  S0 5        UR	                  S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NrT   huhei<doc>huhei</doc>
r/  r	   r0  r1  
charactersr2  r3  r.   ro   r4  r5  s      r;   test_xmlgen_contentXmlgenTest.test_xmlgen_content  sv    6"#wu*DHH5G,HIr>   c                 >   U R                  5       n[        USS9nUR                  5         UR                  S0 5        UR	                  S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NTr:  rT   r@  rA  rB  r5  s      r;   test_xmlgen_content_empty$XmlgenTest.test_xmlgen_content_empty  sx    6=#wu*DHH5G,HIr>   c                 B   U R                  5       n[        U5      nUR                  5         UR                  SS5        UR	                  S0 5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )Ntestrp   rT   z<?test data?><doc></doc>)
r/  r	   r0  processingInstructionr1  r2  r3  r.   ro   r4  r5  s      r;   test_xmlgen_piXmlgenTest.test_xmlgen_pi  s}    6"!!&&1#u*HH/0	2r>   c                 @   U R                  5       n[        U5      nUR                  5         UR                  S0 5        UR	                  S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NrT   z<huhei&z<doc>&lt;huhei&amp;</doc>rB  r5  s      r;   test_xmlgen_content_escape%XmlgenTest.test_xmlgen_content_escape  sy    6"#y!u*HH01	3r>   c                     U R                  5       n[        U5      nUR                  5         UR                  SSS05        UR                  SSS05        UR	                  S5        UR                  SSS05        UR	                  S5        UR                  SSS05        UR	                  S5        UR	                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )	NrT   a"e'z'"z
	zK<doc a='"'><e a="'"></e><e a="'&quot;"></e><e a="&#10;&#13;&#9;"></e></doc>r.  r5  s      r;   test_xmlgen_attr_escape"XmlgenTest.test_xmlgen_attr_escape  s    6"c
+sCj)ssEl+ssHo.su*DHH1-2 	3r>   c           	      T   SnU H  nU R                  5       n[        X2S9nUR                  5         UR                  SSS05        UR	                  S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  SUS95        M     g )N	ziso-8859-15r   r   rx   rz   ry   zutf-32zutf-32bezutf-32ler|   rT   rR     €u   <doc a="€">€</doc>rB  r:   r~   rU   rq   r6  s        r;   test_xmlgen_encodingXmlgenTest.test_xmlgen_encoding  s    7	 "H\\^Fv9CUS(O4NN8$NN5!OOV__.7(KM "r>   c                 @   U R                  5       n[        USS9nUR                  5         UR                  SSS05        UR	                  S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  SSS95        g )Nasciir|   rT   rR  rZ  z<doc a="&#8364;">&#8364;</doc>rB  r5  s      r;   test_xmlgen_unencodable"XmlgenTest.test_xmlgen_unencodable   s    6G4h0x u*HH5HH	Jr>   c                 @   U R                  5       n[        U5      nUR                  5         UR                  S0 5        UR	                  S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NrT    <doc> </doc>
r/  r	   r0  r1  ignorableWhitespacer2  r3  r.   ro   r4  r5  s      r;   test_xmlgen_ignorable XmlgenTest.test_xmlgen_ignorable-  sw    6"#$u*DHH^,DEr>   c                 >   U R                  5       n[        USS9nUR                  5         UR                  S0 5        UR	                  S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NTr:  rT   rc  rd  re  r5  s      r;   test_xmlgen_ignorable_empty&XmlgenTest.test_xmlgen_ignorable_empty9  sy    6=#$u*DHH^,DEr>   c           	         SnU H  nU R                  5       n[        X2S9nUR                  5         UR                  SSS05        UR	                  SR                  U5      5        UR                  SR                  U5      5        UR                  S5        UR                  5         U R                  UR                  5       U R                  SUS95        M     g )NrY  r|   rT   rR  rZ  rc  u   <doc a="€">€ </doc>)r/  r	   r0  r1  rC  rY   rf  r2  r3  r.   ro   r4  r[  s        r;   test_xmlgen_encoding_bytes%XmlgenTest.test_xmlgen_encoding_bytesE  s    7	 "H\\^Fv9CUS(O4NN8??845##CJJx$89NN5!OOV__.88LN "r>   c                    U R                  5       n[        U5      nUR                  5         UR                  S[        5        UR                  [        S4S0 5        UR                  SS 0 5        UR                  SS 5        UR                  [        S4S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S[        -  5      5        g )Nns1rT   ns1:docNudocz/<ns1:doc xmlns:ns1="%s"><udoc></udoc></ns1:doc>r/  r	   r0  startPrefixMappingrA   startElementNSendElementNSendPrefixMappingr3  r.   ro   r4  r5  s      r;   test_xmlgen_nsXmlgenTest.test_xmlgen_nsW  s    6"uf-FE?Ir:>44.&%)4U#*DHH<)/0-1 	2r>   c                    U R                  5       n[        USS9nUR                  5         UR                  S[        5        UR                  [        S4S0 5        UR                  SS 0 5        UR                  SS 5        UR                  [        S4S5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S[        -  5      5        g )NTr:  rp  rT   rq  rr  z)<ns1:doc xmlns:ns1="%s"><udoc/></ns1:doc>rt  r5  s      r;   test_xmlgen_ns_emptyXmlgenTest.test_xmlgen_ns_emptyi  s    6=uf-FE?Ir:>44.&%)4U#*DHH6)/0-1 	2r>   c                 &   U R                  5       n[        U5      nUR                  5         UR                  SSSS05        UR	                  SS5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NNrR  rR  Nbcz<a b="c"></a>	r/  r	   r0  rv  rw  r3  r.   ro   r4  r5  s      r;   test_1463026_1XmlgenTest.test_1463026_1{  st    6";k#->?c**DHH_,EFr>   c                 $   U R                  5       n[        USS9nUR                  5         UR                  SSSS05        UR	                  SS5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NTr:  r  rR  r  r  z
<a b="c"/>r  r5  s      r;   test_1463026_1_emptyXmlgenTest.test_1463026_1_empty  sv    6=;k#->?c**DHH\,BCr>   c                 h   U R                  5       n[        U5      nUR                  5         UR                  S S5        UR	                  SS0 5        UR                  SS5        UR                  S 5        UR                  5         U R                  UR                  5       U R                  S5      5        g )Nquxr  rR  rR  z<a xmlns="qux"></a>r/  r	   r0  ru  rv  rw  rx  r3  r.   ro   r4  r5  s      r;   test_1463026_2XmlgenTest.test_1463026_2  s    6"tU+<b1s+T"*DHH5J,KLr>   c                 f   U R                  5       n[        USS9nUR                  5         UR                  S S5        UR	                  SS0 5        UR                  SS5        UR                  S 5        UR                  5         U R                  UR                  5       U R                  S5      5        g )NTr:  r  r  rR  z<a xmlns="qux"/>r  r5  s      r;   test_1463026_2_emptyXmlgenTest.test_1463026_2_empty  s    6=tU+<b1s+T"*DHH5G,HIr>   c                 l   U R                  5       n[        U5      nUR                  5         UR                  SS5        UR	                  SSSS05        UR                  SS5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S5      5        g )Nmyr  r  rR  r  r  z"<my:a xmlns:my="qux" b="c"></my:a>r  r5  s      r;   test_1463026_3XmlgenTest.test_1463026_3  s    6"tU+<{3.?@s+T"*HH9:	<r>   c                 j   U R                  5       n[        USS9nUR                  5         UR                  SS5        UR	                  SSSS05        UR                  SS5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S	5      5        g )
NTr:  r  r  r  rR  r  r  z<my:a xmlns:my="qux" b="c"/>r  r5  s      r;   test_1463026_3_emptyXmlgenTest.test_1463026_3_empty  s    6=tU+<{3.?@s+T"*HH34	6r>   c                 2   [        S5      n[        5       nUR                  [        S5        U R	                  5       n[        U5      nUR                  U5        UR                  U5        U R                  UR                  5       U R                  S5      5        g )Nzb<?xml version="1.0"?><a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>TM<a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>)r   r   
setFeaturer   r/  r	   setContentHandlerrm   r.   ro   r4  )r:   test_xmlparserrq   r6  s        r;   test_5027_1XmlgenTest.test_5027_1  s      ,d36"  %X*#$	%r>   c                    U R                  5       n[        U5      nUR                  5         UR                  SS5        UR	                  SS0 5        SS0nUR	                  SSU5        UR                  S	5        UR                  SS5        UR                  SS5        UR                  S5        UR                  5         U R                  UR                  5       U R                  S
5      5        g )NrR  http://example.com/ns)r  g1r  )z$http://www.w3.org/XML/1998/namespacelangen)r  g2r  Hellor  )r/  r	   r0  ru  rv  rC  rw  rx  r3  r.   ro   r4  )r:   rq   r6  	lang_attrs       r;   test_5027_2XmlgenTest.test_5027_2  s     6"s$;<:D"EEtL	:D)Lw8$?8$?S!*#$	%r>   c                 p    U R                  5       nS nU" U5        U R                  UR                  5        g )Nc                 ^    [        U 5      nUR                  5         UR                  S0 5        g )NrT   )r	   r0  r1  )outr6  s     r;   func+XmlgenTest.test_no_close_file.<locals>.func  s(    s#CUB'r>   )r/  assertFalser   )r:   rq   r  s      r;   test_no_close_fileXmlgenTest.test_no_close_file  s-    	( 	V'r>   c           	         U R                  5       n[        U5      nUR                  SSS05        UR                  S5        UR	                  S5        UR                  SSS05        UR	                  S5        U R                  UR                  5       U R                  S5      [        U R                  S	5      5      S  5        g )
NfoorR  1.0r  barr  z2.0z+<foo a="1.0">Hello</foo><bar b="2.0"></bar> )	r/  r	   r1  rC  r2  r.   ro   r4  r2   r5  s      r;   test_xmlgen_fragmentXmlgenTest.test_xmlgen_fragment  s    6" 	e-wue-u 	*HHBCCQSDUDVW	Yr>   rJ   N)rK   rL   rM   rN   r7  r=  rD  rG  rL  rO  rV  r\  r`  rg  rj  rm  ry  r|  r  r  r  r  r  r  r  r  r  r  rO   rJ   r>   r;   r+  r+    s    E@
J
J233(M"J
F
FN$2$2$	G	DMJ<6%4%8(Yr>   r+  c                   &    \ rS rSr\rSS jrSrSrg)StringXmlgenTesti  c                     SU< SU< 3$ rQ   rJ   r:   rT   rU   s      r;   r4  StringXmlgenTest.xml  s    <DcJJr>   NrJ   rw   )	rK   rL   rM   rN   r   r/  r4  r`  rO   rJ   r>   r;   r  r    s    GK #r>   r  c                   "    \ rS rSr\rSS jrSrg)BytesXmlgenTesti  c                 6    SU< SU< 3R                  US5      $ )NrR   rS   rX   rY   r  s      r;   r4  BytesXmlgenTest.xml   s    3 !'2E!F	Gr>   rJ   Nr  )rK   rL   rM   rN   r   r/  r4  rO   rJ   r>   r;   r  r    s    GGr>   r  c                   *    \ rS rSr " S S\5      rSrg)WriterXmlgenTesti$  c                   B    \ rS rSr\R
                  rSrS rS r	S r
Srg)WriterXmlgenTest.ioclassi%  Fc                     gNTrJ   ri   s    r;   seekable!WriterXmlgenTest.ioclass.seekable)  s    r>   c                     [        U 5      $ rg   )r2   ri   s    r;   tellWriterXmlgenTest.ioclass.tell,  s    t9r>   c                 $    SR                  U 5      $ )Nr>   )joinri   s    r;   ro   !WriterXmlgenTest.ioclass.getvalue0  s    88D>!r>   rJ   N)rK   rL   rM   rN   r4   appendr`   r   r  r  ro   rO   rJ   r>   r;   r/  r  %  s    			"r>   r/  rJ   N)rK   rL   rM   rN   r4   r/  rO   rJ   r>   r;   r  r  $  s    "$ "r>   r  c                   $    \ rS rSrS rSS jrSrg)StreamWriterXmlgenTesti3  c                 v    [        5       n[        R                  " S5      " US5      nUR                  Ul        U$ )Nr_  rX   )r   codecs	getwriterro   )r:   rawwriters      r;   r/  StreamWriterXmlgenTest.ioclass4  s1    i!!'*30CD,,r>   c                 6    SU< SU< 3R                  SS5      $ NrR   rS   r_  rX   r  r  s      r;   r4  StreamWriterXmlgenTest.xml:      3 !'1D!E	Fr>   rJ   Nr  )rK   rL   rM   rN   r/  r4  rO   rJ   r>   r;   r  r  3  s    Fr>   r  c                   B    \ rS rSr\R
                  S-   rS rSS jrSr	g)StreamReaderWriterXmlgenTesti>  z-codecsc                    ^ ^ [         R                  " T R                  SSSSS9mU U4S jnT R                  U5        U4S jnUTl        T$ )Nr]   r_  rX   r   )rU   r^   	bufferingc                  f   > TR                  5         [        R                  " T R                  5        g rg   )r  r   rh   fname)r:   r  s   r;   cleanup5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupD  s    LLNTZZ(r>   c                     > TR                  5         [        TR                  S5       n U R                  5       sS S S 5        $ ! , (       d  f       g = fNr   )r  r_   namer  )ra   r  s    r;   ro   6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalueH  s1    LLNfkk4(Avvx )((s   A
A)r  r_   r  
addCleanupro   )r:   r  ro   r  s   `  @r;   r/  $StreamReaderWriterXmlgenTest.ioclassA  sG    TZZw$71F	) 	 	 
 #r>   c                 6    SU< SU< 3R                  SS5      $ r  r  r  s      r;   r4   StreamReaderWriterXmlgenTest.xmlP  r  r>   rJ   Nr  )
rK   rL   rM   rN   r   r   r  r/  r4  rO   rJ   r>   r;   r  r  >  s    y(EFr>   r  s,   <?xml version="1.0" encoding="iso-8859-1"?>
c                       \ rS rSrS rSrg)XMLFilterBaseTestiW  c                 |   [        5       n[        U5      n[        5       nUR                  U5        UR	                  5         UR                  S0 5        UR                  S5        UR                  S5        UR                  S5        UR                  5         U R                  UR                  5       [        S-   5        g )NrT   r	  rc  s   <doc>content </doc>)r   r	   r   r  r0  r1  rC  rf  r2  r3  r.   ro   start)r:   rq   r6  filters       r;   test_filter_basic#XMLFilterBaseTest.test_filter_basicX  s    6"  %E2&)$""3'% *E4J,JKr>   rJ   N)rK   rL   rM   rN   r  rO   rJ   r>   r;   r  r  W  s    Lr>   r  r   c                      \ rS rSrS rS r\S 5       rS rS r	 " S S5      r
 " S	 S
5      rS rS rS r " S S5      rS rS r " S S\5      rS rS rS rS rS rS r\S 5       rS rS rS rS r\R@                  " \!RD                  S:  S \!RD                   S!35      S" 5       r#S# r$S$ r%S% r&\S& 5       r'S'r(g())ExpatReaderTestip  c                 "   [        5       n[        5       n[        U5      nUR                  U5        [	        [
        S5       nUR                  U5        S S S 5        U R                  UR                  5       [        5        g ! , (       d  f       N3= fr  
r   r   r	   r  r_   TEST_XMLFILErm   r.   ro   xml_test_outr:   r  rq   xmlgenra   s        r;   test_expat_binary_file&ExpatReaderTest.test_expat_binary_filet  sf    f%  (,%LLO & 	*L9 &%s   B  
Bc                     [        5       n[        5       n[        U5      nUR                  U5        [	        [
        SSS9 nUR                  U5        S S S 5        U R                  UR                  5       [        5        g ! , (       d  f       N3= fNrtrw   r|   r  r  s        r;   test_expat_text_file$ExpatReaderTest.test_expat_text_file  sh    f%  (,|<LLO = 	*L9 =<s    A??
Bc                 x   [         R                  n[        R                  " [        U5        U R                  [         R                  U5        [        5       n[        5       n[        U5      nUR                  U5        UR                  [        US5      5        U R                  UR                  5       [        5        g r  )r   TESTFN_UNICODEshutilcopyfiler  r  rh   r   r   r	   r  rm   r_   r.   ro   r  r:   r  r  rq   r  s        r;   test_expat_binary_file_nonascii/ExpatReaderTest.test_expat_binary_file_nonascii  s    ((e,	((%0f%  (T%&'*L9r>   c                 N   [         R                  " [        5      n[        5       n[	        5       n[        U5      nUR                  U5        [        US5       nUR                  U5        S S S 5        U R                  UR                  5       [        5        g ! , (       d  f       N3= fr  )osfsencoder  r   r   r	   r  r_   rm   r.   ro   r  )r:   r  r  rq   r  ra   s         r;   !test_expat_binary_file_bytes_name1ExpatReaderTest.test_expat_binary_file_bytes_name  st    L)f%  (%!LLO  	*L9 s   B
B$c                    [        5       n[        5       n[        U5      nUR                  U5        [	        [
        S5       n[	        UR                  5       SSS9 nUR                  U5        S S S 5        S S S 5        U R                  UR                  5       [        5        g ! , (       d  f       N;= f! , (       d  f       ND= f)Nr   F)closefd)r   r   r	   r  r_   r  filenorm   r.   ro   r  )r:   r  rq   r  ra   f2s         r;   test_expat_binary_file_int_name/ExpatReaderTest.test_expat_binary_file_int_name  s    f%  (,%ahhj$6"R  7 & 	*L9 76 &%s$   B3B"-B3"
B0	,B33
Cc                   &    \ rS rSrS rS rS rSrg)ExpatReaderTest.TestDTDHandleri  c                      / U l         / U l        g rg   )
_notations	_entitiesri   s    r;   __init__'ExpatReaderTest.TestDTDHandler.__init__  s     DO DNr>   c                 >    U R                   R                  XU45        g rg   )r  r  )r:   r  publicIdsystemIds       r;   notationDecl+ExpatReaderTest.TestDTDHandler.notationDecl  s    OO""DH#=>r>   c                 >    U R                   R                  XX445        g rg   )r  r  )r:   r  r   r!  ndatas        r;   unparsedEntityDecl1ExpatReaderTest.TestDTDHandler.unparsedEntityDecl  s    NN!!48"CDr>   )r  r  N)rK   rL   rM   rN   r  r"  r&  rO   rJ   r>   r;   TestDTDHandlerr    s    	!	?	Er>   r(  c                        \ rS rSrS rS rSrg)"ExpatReaderTest.TestEntityRecorderi  c                     / U l         g rg   entitiesri   s    r;   r  +ExpatReaderTest.TestEntityRecorder.__init__  s	    DMr>   c                     U R                   R                  X45        [        5       nUR                  U5        UR	                  U5        U$ rg   )r-  r  r   setPublicIdsetSystemId)r:   r   r!  sources       r;   resolveEntity0ExpatReaderTest.TestEntityRecorder.resolveEntity  s?    MM  (!56 ]Fx(x(Mr>   r,  N)rK   rL   rM   rN   r  r3  rO   rJ   r>   r;   TestEntityRecorderr*    s    		r>   r5  c                    [        5       nU R                  5       nUR                  U5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        UR	                  5         U R                  UR                  S/5        U R                  UR                  S/5        g )N<!DOCTYPE doc [
z-  <!ENTITY img SYSTEM "expat.gif" NDATA GIF>
zW  <!NOTATION GIF PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
]>
r-  )GIFz;-//CompuServe//NOTATION Graphics Interchange Format 89a//ENN)imgNz	expat.gifr9  )r   r(  setDTDHandlerfeedr  r.   r  r  )r:   r  handlers      r;   test_expat_dtdhandler%ExpatReaderTest.test_expat_dtdhandler  s    %%'W%'(DEnoFM"++YZ	\**-N,OPr>   c                    U R                  [        R                  R                  5        [	        5       nUR                  [        S5        U R                  5       nUR                  U5        U R                  [        5         UR                  S5        S S S 5        U R                  UR                  S/5        g ! , (       d  f       N,= f)NT8<!DOCTYPE external SYSTEM "unsupported://non-existing">
)Nzunsupported://non-existing)r  urllibrequest
urlcleanupr   r  r   r5  setEntityResolverr'   r   r<  r.   r-  r:   r  resolvers      r;   test_expat_external_dtd_enabled/ExpatReaderTest.test_expat_external_dtd_enabled  s    112.5**,  *x(KKK ) 	 DE	
	 )(s    B88
Cc                     [        5       nU R                  5       nUR                  U5        UR                  S5        UR                  S5        UR	                  5         U R                  UR                  / 5        g )NrA  z<doc />)r   r5  rE  r<  r  r.   r-  rF  s      r;   test_expat_external_dtd_default/ExpatReaderTest.test_expat_external_dtd_default  sa    **,  *G	
 	I**B/r>   c                       \ rS rSrS rSrg)"ExpatReaderTest.TestEntityResolveri  c                 N    [        5       nUR                  [        S5      5        U$ )Ns	   <entity/>)r   r   r   )r:   r   r!  inpsrcs       r;   r3  0ExpatReaderTest.TestEntityResolver.resolveEntity  s!     ]F  !67Mr>   rJ   N)rK   rL   rM   rN   r3  rO   rJ   r>   r;   TestEntityResolverrN    s    	r>   rR  c                    [        5       nUR                  [        S5        UR                  U R	                  5       5        [        5       nUR                  [        U5      5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  5         U R                  UR                  5       [        S-   5        g )NTr7  #  <!ENTITY test SYSTEM "whatever">
r8  <doc>&test;</doc>s   <doc><entity></entity></doc>)r   r  r   rE  rR  r   r  r	   r<  r  r.   ro   r  r:   r  rq   s      r;   !test_expat_entityresolver_enabled1ExpatReaderTest.test_expat_entityresolver_enabled  s    .5  !8!8!:;  f!56'(:;F'(*E8-9 	:r>   c                    [        5       nU R                  UR                  [        5      S5        UR	                  U R                  5       5        [        5       nUR                  [        U5      5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  5         U R                  UR                  5       [        S-   5        g )NFr7  rT  r8  rU     <doc></doc>)r   r.   
getFeaturer   rE  rR  r   r  r	   r<  r  ro   r  rV  s      r;   !test_expat_entityresolver_default1ExpatReaderTest.test_expat_entityresolver_default  s    **+?@%H  !8!8!:;  f!56'(:;F'(*E'-( 	)r>   c                        \ rS rSrS rS rSrg)ExpatReaderTest.AttrGathereri#  c                     X l         g rg   _attrs)r:   r  r%   s      r;   r1  )ExpatReaderTest.AttrGatherer.startElement%      Kr>   c                     X0l         g rg   ra  )r:   r  qnamer%   s       r;   rv  +ExpatReaderTest.AttrGatherer.startElementNS(  rd  r>   ra  N)rK   rL   rM   rN   r1  rv  rO   rJ   r>   r;   AttrGathererr_  #  s    	 	 r>   rh  c                     [        5       nU R                  5       nUR                  U5        UR                  S5        UR	                  5         U R                  UR                  5        g )Nr<  )r   rh  r  r<  r  r<   rb  r:   r  gathers      r;   test_expat_attrs_empty&ExpatReaderTest.test_expat_attrs_empty+  sL    ""$  (H.r>   c                     [        5       nU R                  5       nUR                  U5        UR                  S5        UR	                  5         U R                  UR                  5        g )Nz<doc attr='val'/>)r   rh  r  r<  r  rH   rb  rj  s      r;   test_expat_attrs_wattr&ExpatReaderTest.test_expat_attrs_wattr5  sM    ""$  ('(.r>   c                     [        S5      nU R                  5       nUR                  U5        UR                  S5        UR	                  5         U R                  UR                  5        g )NrE   r<  )r   rh  r  r<  r  rB   rb  rj  s      r;   test_expat_nsattrs_empty(ExpatReaderTest.test_expat_nsattrs_empty?  sO    q!""$  (H!!&--0r>   c                    [        S5      nU R                  5       nUR                  U5        UR                  S[        -  5        UR                  5         UR                  nU R                  UR                  5       S5        U R                  UR                  5       [        S4/5        U R                  UR                  5       / :H  =(       d    UR                  5       S/:H  5        U R                  [        U5      S5        U R                  [        S4U5        U R                  UR                  [        S45      S5        U R                  UR                  [        S4S5      S5        U R                  [        UR!                  5       5      [        S4S4/5        U R                  [        UR#                  5       5      S/5        U R                  UR%                  [        S45      S5        U R                  U[        S4   S5        g )NrE   z"<doc xmlns:ns='%s' ns:attr='val'/>r$   r@   rF   r&   )r   rh  r  r<  rA   r  rb  r.   r/   r0   r   r1   r2   rG   r6   r4   r7   r8   r)   )r:   r  rk  r%   s       r;   test_expat_nsattrs_wattr(ExpatReaderTest.test_expat_nsattrs_wattrI  s   q!""$  (86AB*A.)VV,<+=>*b0 :*yk9	<UQ'vv&.FF#34e<FF#3R8%@ekkm,0@%/H.IJelln-w7(895A/0%8r>   c                     [        5       n[        5       n[        U5      nUR                  U5        UR	                  [
        5        U R                  UR                  5       [        5        g rg   )	r   r   r	   r  rm   r  r.   ro   r  r:   r  rq   r  s       r;   test_expat_inpsource_filename-ExpatReaderTest.test_expat_inpsource_filenameb  sK    f%  (\"*L9r>   c                     [        5       n[        5       n[        U5      nUR                  U5        UR	                  [        [        5      5        U R                  UR                  5       [        5        g rg   )
r   r   r	   r  rm   r   r  r.   ro   r  rx  s       r;   test_expat_inpsource_sysid*ExpatReaderTest.test_expat_inpsource_sysidl  sP    f%  ([./*L9r>   c                 v   [         R                  n[        R                  " [        U5        U R                  [         R                  U5        [        5       n[        5       n[        U5      nUR                  U5        UR                  [        U5      5        U R                  UR                  5       [        5        g rg   )r   r  r  r	  r  r  rh   r   r   r	   r  rm   r   r.   ro   r  r
  s        r;   #test_expat_inpsource_sysid_nonascii3ExpatReaderTest.test_expat_inpsource_sysid_nonasciiv  s}    ((e,	((%0f%  (['(*L9r>   c                 X   [        5       n[        5       n[        U5      nUR                  U5        [	        5       n[        [        S5       nUR                  U5        UR                  U5        S S S 5        U R                  UR                  5       [        5        g ! , (       d  f       N3= fr  )r   r   r	   r  r   r_   r  r   rm   r.   ro   r  r:   r  rq   r  rP  ra   s         r;    test_expat_inpsource_byte_stream0ExpatReaderTest.test_expat_inpsource_byte_stream  s|    f%  (,%  #LL  & 	*L9	 &%s   #B
B)c                 V   [        5       n[        5       n[        U5      nUR                  U5        [	        5       n[        [        SSS9 nUR                  U5        UR                  U5        S S S 5        U R                  UR                  5       [        5        g ! , (       d  f       N3= fr  )r   r   r	   r  r   r_   r  r  rm   r.   ro   r  r  s         r;   %test_expat_inpsource_character_stream5ExpatReaderTest.test_expat_inpsource_character_stream  s~    f%  (,|<%%a(LL  = 	*L9	 =<s   
#B
B(c                    [        5       n[        U5      n[        5       nUR                  U5        UR	                  S5        UR	                  S5        UR                  5         U R                  UR                  5       [        S-   5        g )N<doc></doc>rZ  )	r   r	   r   r  r<  r  r.   ro   r  r:   rq   r  r  s       r;   test_expat_incremental&ExpatReaderTest.test_expat_incremental  se    f%  (GH*EN,BCr>   c                    [        5       n[        U5      n[        5       nUR                  U5        UR	                  S5        UR	                  S5        [        5       n[        U5      nUR                  U5        UR                  5         UR	                  S5        UR	                  S5        UR	                  S5        UR                  5         U R                  UR                  5       [        S-   5        g )Nr  textr  s   <doc>text</doc>)
r   r	   r   r  r<  resetr  r.   ro   r  r  s       r;   test_expat_incremental_reset,ExpatReaderTest.test_expat_incremental_reset  s    f%  (GFf%  (GFH*E4F,FGr>         r   zExpat z" does not support reparse deferralc                    [        5       n[        U5      n[        5       nUR                  U5        S H  nUR	                  U5        M     U R                  UR                  5       [        5        U R                  UR                  R                  5       5        UR                  5         U R                  UR                  R                  5       5        U R                  UR                  5       [        S-   5        UR	                  S5        UR                  5         U R                  UR                  5       [        S-   5        g )Nz<doc>   <doc>r  rZ  )r   r	   r   r  r<  r.   ro   r  r   _parserGetReparseDeferralEnabledflushr  r:   rq   r  r  chunks        r;   #test_flush_reparse_deferral_enabled3ExpatReaderTest.test_flush_reparse_deferral_enabled  s     f%  ("EKK # 	*E2@@BC@@BC*EH,<=H*EN,BCr>   c                    [        5       n[        U5      n[        5       nUR                  U5        S H  nUR	                  U5        M     [
        R                  S:  a?  UR                  R                  S5        U R                  UR                  5       [        5        U R                  UR                  R                  5       5        UR                  5         U R                  UR                  R                  5       5        U R                  UR                  5       [        S-   5        UR	                  S5        UR                  5         U R                  UR                  5       [        S-   5        g )Nr  r  Fr  r  rZ  )r   r	   r   r  r<  pyexpatversion_infor  SetReparseDeferralEnabledr.   ro   r  r  r  r  r  r  s        r;   $test_flush_reparse_deferral_disabled4ExpatReaderTest.test_flush_reparse_deferral_disabled  s   f%  ("EKK # 9,NN44U;V__.6AACDAACD*EH,<=H*EN,BCr>   c                    [        5       n[        U5      n[        5       nUR                  U5        UR	                  S5        UR	                  S5        UR                  5         U R                  UR                  5       S 5        U R                  UR                  5       S 5        U R                  UR                  5       S5        g )Nr  r  rE   )
r   r	   r   r  r<  r  r.   getSystemIdgetPublicIdgetLineNumberr  s       r;   test_expat_locator_noinfo)ExpatReaderTest.test_expat_locator_noinfo  s    f%  (GH++-t4++-t4--/3r>   c                    [        5       n[        U5      n[        5       nUR                  U5        UR	                  [
        5        U R                  UR                  5       [
        5        U R                  UR                  5       S 5        g rg   )	r   r	   r   r  rm   r  r.   r  r  r  s       r;   test_expat_locator_withinfo+ExpatReaderTest.test_expat_locator_withinfo  sf    f%  (\"++-|<++-t4r>   c                    [         R                  n[        R                  " [        U5        U R                  [         R                  U5        [        5       n[        U5      n[        5       nUR                  U5        UR                  U5        U R                  UR                  5       U5        U R                  UR                  5       S 5        g rg   )r   r  r  r	  r  r  rh   r   r	   r   r  rm   r.   r  r  )r:   r  rq   r  r  s        r;   $test_expat_locator_withinfo_nonascii4ExpatReaderTest.test_expat_locator_withinfo_nonascii  s    ((e,	((%0f%  (U++-u5++-t4r>   rJ   N))rK   rL   rM   rN   r  r  requires_nonascii_filenamesr  r  r  r(  r5  r>  rH  rK  rR  rW  r\  r   rh  rl  ro  rr  ru  ry  r|  r  r  r  r  r  unittestskipIfr  r  r  r  r  r  r  rO   rJ   r>   r;   r  r  p  s    	:	: !: !:
:
:
E 
E	 	Q 
"
0 : )$ ~  //192:: !: !:::
DH* __W))I5g223 40 01D1D,D645 !5 !5r>   r  c                   :    \ rS rSrS rS rS r " S S5      rSrg)	ErrorReportingTesti$  c                 j   [        5       nUR                  [        5       5        [        5       nUR	                  [        S5      5        SnUR                  U5         UR                  U5        U R                  5         g ! [         a*  nU R                  UR                  5       U5         S nAg S nAff = f)Ns   <foo bar foobar>za file name)r   r  r   r   r   r   r1  rm   failr   r.   r  )r:   r  r2  r  rT  s        r;   test_expat_inpsource_location0ErrorReportingTest.test_expat_inpsource_location%  s      !12W%89:4 	4LL IIK 	4Q]]_d33	4s   !A> >
B2 B--B2c                    [        5       nUR                  [        5       5        U R                  [        UR
                  [        S5      5        U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nz<foo>   rE   )
r   r  r   r'   r   rm   r   r.   getColumnNumberr  )r:   r  s     r;   test_expat_incomplete(ErrorReportingTest.test_expat_incomplete2  sh      !12+V\\8G;LM//115--/3r>   c           
      4   [        [        SS U R                  SS5      5      5        [        [        SS U R                  S S5      5      5        [        [        SS U R                  SS 5      5      5        [        [        SS U R                  S S 5      5      5        g )NmessagerE   )strr   DummyLocatorri   s    r;   test_sax_parse_exception_str/ErrorReportingTest.test_sax_parse_exception_str9  s     	i"//157 	8 	i"//a8: 	; 	i"//48: 	; 	i"//d;= 	>r>   c                   2    \ rS rSrS rS rS rS rS rSr	g)	ErrorReportingTest.DummyLocatoriK  c                     Xl         X l        g rg   )_lineno_colno)r:   linenocolnos      r;   r  (ErrorReportingTest.DummyLocator.__init__L  s    !LKr>   c                     g)NpubidrJ   ri   s    r;   r  +ErrorReportingTest.DummyLocator.getPublicIdP      r>   c                     g)NsysidrJ   ri   s    r;   r  +ErrorReportingTest.DummyLocator.getSystemIdS  r  r>   c                     U R                   $ rg   )r  ri   s    r;   r  -ErrorReportingTest.DummyLocator.getLineNumberV  s    <<r>   c                     U R                   $ rg   )r  ri   s    r;   r  /ErrorReportingTest.DummyLocator.getColumnNumberY  s    ;;r>   )r  r  N)
rK   rL   rM   rN   r  r  r  r  r  rO   rJ   r>   r;   r  r  K  s    	 			 	r>   r  rJ   N)	rK   rL   rM   rN   r  r  r  r  rO   rJ   r>   r;   r  r  $  s    44>$ r>   r  c                   ,    \ rS rSrS rS rS rS rSrg)XmlReaderTestib  c                 8    U R                  [        0 5      5        g rg   )r<   r   ri   s    r;   test_attrs_emptyXmlReaderTest.test_attrs_emptye  s    r 23r>   c                 <    U R                  [        SS05      5        g )Nr$   rF   )rH   r   ri   s    r;   test_attrs_wattrXmlReaderTest.test_attrs_wattrh  s    /? @Ar>   c                 :    U R                  [        0 0 5      5        g rg   )rB   r   ri   s    r;   test_nsattrs_empty XmlReaderTest.test_nsattrs_emptyk  s    !!"22r":;r>   c                    [        [        S4S0[        S4S05      nU R                  UR                  5       S5        U R                  UR	                  5       [        S4/5        U R                  UR                  5       S/5        U R                  [        U5      S5        U R                  [        S4U5        U R                  [        UR                  5       5      [        S4/5        U R                  UR                  [        S45      S5        U R                  UR                  [        S4S5      S5        U R                  [        UR                  5       5      [        S4S4/5        U R                  [        UR                  5       5      S/5        U R                  UR                  [        S45      S5        U R                  UR                  S5      S5        U R                  UR                  S5      [        S45        U R                  U[        S4   S5        U R                  UR!                  [        S45      S5        g )Nr$   rF   r@   rE   r&   )r   rA   r.   r/   r0   r1   r2   rG   r4   r5   r6   r7   r8   r)   r*   r+   r,   r9   s     r;   test_nsattrs_wattr XmlReaderTest.test_nsattrs_wattrn  s    66"2U!;#)6"2Y!?A 	*A.)VV,<+=>*YK8UQ'vv&.ejjl+vv.>-?@FF#34e<FF#3R8%@ekkm,0@%/H.IJelln-w7(895A..y95A--i866:JK/0%8--vv.>?Kr>   rJ   N)	rK   rL   rM   rN   r  r  r  r  rO   rJ   r>   r;   r  r  b  s    4B<Lr>   r  c                        \ rS rSrS rS rSrg)LexicalHandlerTesti  c                 "   S U l         SU l        SU l        SU l        SU l        SU l        [        5       U l        U R                  R                  SR                  U R                  U R                  5      5        U R                  R                  SR                  U R                  5      5        U R                  R                  SR                  U R
                  S	   5      5        U R                  R                  S
R                  U R                  5      5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  SR                  U R                  S	   5      5        U R                  R                  SR                  U R                  S   5      5        U R                  R                  SR                  U R                  S   5      5        U R                  R                  S5        U R                  R                  SR                  U R                  5      5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  SR                  U R                  S   U R                  S	   U R                  S   5      5        U R                  R                  SR                  U R
                  S   5      5        U R                  R                  SR                  U R                  5      5        U R                  R                  S	5        S U l        S U l        S U l        S U l        S U l        S U l        SU l        / U l        g )Nr  zUTF-8wish)nbspr2  target)zComment in a DTDzReally! You think so?z#<?xml version="{}" encoding="{}"?>
z<!DOCTYPE {} [
z<!-- {} -->
r   z,<!ELEMENT {} (to,from,heading,body,footer)>
z<!ELEMENT to (#PCDATA)>
z<!ELEMENT from (#PCDATA)>
z<!ELEMENT heading (#PCDATA)>
z<!ELEMENT body (#PCDATA)>
z<!ELEMENT footer (#PCDATA)>
z<!ENTITY {} "&#xA0;">
z&<!ENTITY {} "Written by: Alexander.">
rE   z+<!ENTITY {} "Hope it gets to: Aristotle.">
r  r8  z<{}>z<to>Aristotle</to>
z<from>Alexander</from>
z <heading>Supplication</heading>
z <body>Teach me patience!</body>
z<footer>&{};&{};&{};</footer>
z</{}>
F)r  specified_versionspecified_encodingspecified_doctypespecified_entity_namesspecified_commentr   	test_datar`   formatseekversionrU   
standalonedoctypepublicIDsystemID
end_of_dtdcommentsri   s    r;   r   LexicalHandlerTest.setUp  s$   !&")!'&B#";!C#VD$:$:$($;$;=	> 	/#VD$:$:;	=_#VD$:$:1$=>	@L#VD$:$:;	=89:;=>:;<=6#VD$?$?$BC	EF#VD$?$?$BC	EK#VD$?$?$BC	EV$V]]4+A+ABC3478@A@A>#VD$?$?$B$($?$?$B$($?$?$BD	E 	_33D4J4J14MNOY--d.D.DEFA r>   c                     " S S[         5      n[        5       U l        U R                  R                  [	        5       5        U R                  R                  SU" U 5      5        [        5       nUR                  U R                  5        U R                  R                  U5        U R                  U R                  U R                  5        U R                  U R                  5        U R                  U R                  5        U R!                  U R"                  5        U R                  [%        U R&                  5      [%        U R(                  5      5        U R                  SU R(                  S    S3U R&                  S   5        g )Nc                   :   ^  \ rS rSrU 4S jrS rS rS rSrU =r	$ )<LexicalHandlerTest.test_handlers.<locals>.TestLexicalHandleri  c                 2   > [         TU ]  " U0 UD6  Xl        g rg   superr  test_harnessr:   r  r   kwargs	__class__s       r;   r  ELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__       $1&1$0!r>   c                 d    XR                   l        X R                   l        X0R                   l        g rg   )r  r  r  r  )r:   r  r  r  s       r;   startDTDELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.startDTD  s&    ,3!!)-5!!*-5!!*r>   c                 &    SU R                   l        g r  )r  r  ri   s    r;   endDTDCLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.endDTD  s    /3!!,r>   c                 N    U R                   R                  R                  U5        g rg   )r  r  r  )r:   r  s     r;   commentDLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.comment  s    !!**11$7r>   r  )
rK   rL   rM   rN   r  r  r  r  rO   __classcell__r  s   @r;   TestLexicalHandlerr     s    16
48 8r>   r  -http://xml.org/sax/properties/lexical-handlerrc  r   )r   r   r  r  r   setPropertyr   r  r  rm   r.   r  r  r  r  r  r   r  r2   r  r  )r:   r  r2  s      r;   test_handlers LexicalHandlerTest.test_handlers  s   	8 	8  $o%%n&67;t$	& !!$..1&!t'='=>$--($--((T]]+T334	61T33A67q94==;KLr>   )r  r  rU   r  r  r  r  r  r  r  r  r  r  r  r  NrK   rL   rM   rN   r   r  rO   rJ   r>   r;   r  r    s    4lMr>   r  c                        \ rS rSrS rS rSrg)CDATAHandlerTesti  c                    S U l         / U l        U R                  R                  S5        U R                  R                  S5        SU l        [	        5       U l        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  U R                  S   S    S35        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  S	U R                  S
   S    S35        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  S5        / U l        SU l	        g )N)zParseable character dataF)z <> &% - assorted other XML junk.Tr   z<root_doc>
z<some_pcdata>

z</some_pcdata>
z<some_cdata>
z	<![CDATA[rE   z]]>
z</some_cdata>
z</root_doc>
F)
r  specified_charsr  
char_indexr   r  r`   r  chardatain_cdatari   s    r;   r   CDATAHandlerTest.setUp  s3   !##$GH##$NO!^,./ 4 4Q 7 :;2>?/0-.y)=)=a)@)C(DEJK./_-A r>   c                     " S S[         5      n " S S[        5      n[        5       U l        U R                  R	                  U" U 5      5        U R                  R                  SU" U 5      5        [        5       nUR                  U R                  5        U R                  R                  U5        U R                  U R                  5        U R                  U R                  S5        g )Nc                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ ):CDATAHandlerTest.test_handlers.<locals>.TestLexicalHandleri  c                 2   > [         TU ]  " U0 UD6  Xl        g rg   r  r  s       r;   r  CCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__  r	  r>   c                 &    SU R                   l        g r  r  r#  ri   s    r;   
startCDATAECDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.startCDATA  s    -1!!*r>   c                 &    SU R                   l        g )NFr+  ri   s    r;   endCDATACCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.endCDATA  s    -2!!*r>   r  )	rK   rL   rM   rN   r  r,  r/  rO   r  r  s   @r;   r  r'    s    123 3r>   r  c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )7CDATAHandlerTest.test_handlers.<locals>.TestCharHandleri  c                 2   > [         TU ]  " U0 UD6  Xl        g rg   r  r  s       r;   r  @CDATAHandlerTest.test_handlers.<locals>.TestCharHandler.__init__  r	  r>   c                     US:w  ao  U R                   nUR                  UR                     nUR                  US   U5        UR                  US   UR                  5        U=R                  S-  sl        g g )Nr  r   rE   )r  r   r!  r.   r#  )r:   r	  hts       r;   rC  BCDATAHandlerTest.test_handlers.<locals>.TestCharHandler.characters  sc    d?))A))!,,7AMM!A$0MM!A$

3LLA%L #r>   r  )rK   rL   rM   rN   r  rC  rO   r  r  s   @r;   TestCharHandlerr2    s    1& &r>   r9  r  r  )r   r   r   r  r  r  r   r  r  rm   r  r#  r.   r!  )r:   r  r9  r2  s       r;   r  CDATAHandlerTest.test_handlers  s    		3 		3	&n 	& $o%%od&;<;t$	& !!$..1&!'!,r>   )r!  r"  r#  r  r   r  Nr  rJ   r>   r;   r  r    s    *#-r>   r  __main__rg   ).)Wrn   r   r   r   r   r   r  r   SkipTestxml.sax.saxutilsr	   r
   r   r   r   r   xml.sax.expatreaderr   xml.sax.handlerr   r   r   xml.sax.xmlreaderr   r   r   ior   r   r  os.pathr  r  r  sysurllib.errorr   urllib.requestrB  test.supportr   r   test.support.os_helperr   r   r  TEST_XMLFILE_OUTrY   UnicodeEncodeErrorsupports_nonascii_filenamespathsupports_unicode_filenamesr  getfilesystemencodingUnicodeError	TypeError
skipUnlessr  rA   TestCaser!   rV   r[   rb   rd   r   r   r   r+  r  r  r  r  r  r  r  r_   ra   r  r  r  r  r  r  r  rK   mainrJ   r>   r;   <module>rS     s  K K  8MA A -- - K K       
 !  " ! 3 
=9N=A A G$ # 	ww)),  ''(A(A(CD
 '11#.0  
12?(## 2?jG
M
-zM!! zMx-2X&& -2j188$$ 18hN9X.. N9f_Y _YB#z8#4#4 #Gj("3"3 G" "	FZ):): 	FF:x/@/@ F, 	9L)) L, 

D!Q668L "k5k k5h6** 6|LK LBVM** VMr9-x(( 9-x zMMO ]0  8


6
7786  A


?
@@A )$ , ',#,B "!s5   J "J; *K K(J8;K
K%$K%(
K6