
    daf                        d dl mZmZmZmZmZ d dlZd dlmZ 	  e        d dl	m
Z
mZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZ d d	lmZmZ d dlZd dlZd dl Z d dl!Z!d dl"Z"d d
l#m$Z$ d dl%Z&d dl'm(Z( d dl'm)Z) d dl*m+Z+m,Z,  e)dd      Z- e)dd      Z.	 e-j_                  d       e.j_                  d       dZ1ejd                  jf                  s+	 e(jh                  j_                   e"jj                                 ejp                  e1d      Z9dZ: G d dejv                        Z<d@dZ=dAdZ>dAdZ? G d dejv                        Z@ G d d ejv                        ZA G d! d"ejv                        ZB G d# d$ejv                        ZC G d% d&      ZD G d' d(eDejv                        ZE G d) d*eDejv                        ZF G d+ d,eF      ZG G d- d.eDejv                        ZH G d/ d0eDejv                        ZId1ZJ G d2 d3ejv                        ZK eLe.d4      5 ZMeMj                         ZOddd        G d5 d6e<      ZP G d7 d8ejv                        ZQ G d9 d:e<      ZR G d; d<ejv                        ZS G d= d>ejv                        ZTeUd?k(  r ej                          yy# e$ r  ej                  d      w xY w# e0$ r  ej                  d      w xY w# e6e7f$ r dZ1Y w xY w# 1 sw Y   xY w)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                       e Zd Zd Zd Zd Zy)XmlTestBasec                    | j                  t        |j                  d       | j                  t        |j                  d       | j                  t        |j                  d       | j                  t        |j
                  d       | j                  t        |j                  d       | j                  |j                         d       | j                  |j                         g        | j                  |j                         g        | j                  t        |      d       | j                  d|       | j                  t        |j                               g        | j                  |j                  d      d        | j                  |j                  dd      d       | j                  t        |j!                               g        | j                  t        |j#                               g        y )Nattrr   attrs   )assertRaisesKeyErrorgetValuegetValueByQNamegetNameByQNamegetQNameByName__getitem__assertEqual	getLengthgetNames	getQNameslenassertNotInlistkeysgetitemsvaluesselfr$   s     (/root/Python-3.12.4/Lib/test/test_sax.pyverify_empty_attrsz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                 ,   | j                  t        |j                  t        df       | j                  t        |j                  d       | j                  t        |j
                  d       | j                  t        |j                  t        df       | j                  t        |j                  t        df       | j                  |j                         d       | j                  |j                         g        | j                  |j                         g        | j                  t        |      d       | j                  t        df|       | j                  t        |j                               g        | j                  |j!                  t        df      d        | j                  |j!                  t        dfd      d       | j                  t        |j#                               g        | j                  t        |j%                               g        y )Nr#   ns:attrr   r%   )r&   r'   r(   ns_urir)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   s     r:   verify_empty_nsattrsz 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                    | j                  |j                         d       | j                  |j                         dg       | j                  |j                         dg       | j                  t	        |      d       | j                  d|       | j                  t        |j                               dg       | j                  |j                  d      d       | j                  |j                  dd      d       | j                  t        |j                               dg       | j                  t        |j                               dg       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |d   d       | j                  |j                  d      d       y )N   r#   valr%   )r#   rC   )r-   r.   r/   r0   r1   assertInr3   r4   r5   r6   r7   r(   r)   r*   r+   r8   s     r:   verify_attrs_wattrz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__r;   r@   rE    r<   r:   r!   r!   6   s    3"3"?r<   r!   c                     || S d|d| S N<?xml version="1.0" encoding=""?>
rI   )docencodings     r:   xml_strrP   k   s    
 8@#FFr<   c                 F    |du r|}t        | |      j                  |d      S )N.xmlcharrefreplace)rP   encode)rN   rO   decl_encodings      r:   	xml_bytesrU   p   s*     3&--h8KLLr<   c                     |du r|}t        t        d|d      5 }|j                  t        | |             d d d        y # 1 sw Y   y xY w)N.wrR   )rO   errors)openr   writerP   )rN   rO   rT   fs       r:   make_xml_filer\   u   sH     	fcH5H	I -Q	]+,- - -s	   ?Ac                   L    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)	ParseTestu,   <money value="$£€𐅻">$£€𐅻</money>c                 6    t        j                  t               y N)r   unlinkr   r9   s    r:   tearDownzParseTest.tearDown   s     r<   c                     ddl m} t               } ||t        |d             | j	                  |j                         t        | j                  d             y )Nr   )parser   )xml.saxre   r   r	   r-   getvaluerP   data)r9   r[   re   results       r:   check_parsezParseTest.check_parse   s?    !afg./*GDIIw,GHr<   c           	         d}|D ]  }| j                  t        t        | j                  |                   t	        | j                  |       t        t        d|      5 }| j                  |       d d d        | j                  t        | j                               t	        | j                  |d        t        t        d|      5 }| j                  |       d d d         y # 1 sw Y   sxY w# 1 sw Y   xY w)Nus-ascii
iso-8859-1r   utf-16utf-16leutf-16berrO   )rj   r   rP   rh   r\   rY   r   r9   	encodingsrO   r[   s       r:   test_parse_textzParseTest.test_parse_text   s    7	! 	$HXgdii&BCD$))X.fcH5 $  #$Xdii01$))Xt4fcH5 $  #$ $	$$ $$ $s   C"C."C+	.C7	c           
         d}|D ]  }| j                  t        t        | j                  |                   t	        | j                  |       | j                  t
               t        t
        d      5 }| j                  |       d d d        | j                  t        t        | j                  |d                    t	        | j                  |d        | j                  t
               t        t
        d      5 }| j                  |       d d d         | j                  t        t        | j                  dd                   t	        | j                  dd       | j                  t
               t        t
        d      5 }| j                  |       d d d        | j                  t        t        | j                  dd                    t	        | j                  dd        | j                  t
               t        t
        d      5 }| j                  |       d d d        | j                  t        t        | j                  d                   t	        | j                  d       | j                  t
               t        t
        d      5 }| j                  |       d d d        | j                  t              5  | j                  t        t        | j                  dd                    d d d        t	        | j                  dd        | j                  t              5  | j                  t
               d d d        t        t
        d      5 }| j                  t              5  | j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   y xY w)Nrm   r   ro   rp   rq   rb	utf-8-sigr   rn   )	rj   r   rU   rh   r\   r   rY   r&   r   rt   s       r:   test_parse_bytesz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	  |, 	PWYtyy,%MNO	Pdiit4|, 	%V$	%&$ 	$1""<0 $  #$	$ 	$=$ $
$ $	  	 
	  	 	  	 	P 	P	% 	%$ $	$ 	$sx   2N7N?NN(N560OOO&O0O&N	N	N%(N25N?OOO#	O&&O/c                 n    t        | j                  dd        | j                  t        t                     y )Nr   )r\   rh   rj   r   r   rb   s    r:   test_parse_path_objectz ParseTest.test_parse_path_object   s%    dii$/&)*r<   c                     t        | j                  dd        t        t        d      5 }t	               }|j                  |       |j                  d       | j                  |       d d d        y # 1 sw Y   y xY w)Nrn   ry   )r\   rh   rY   r   r   setByteStreamsetEncodingrj   )r9   r[   inputs      r:   test_parse_InputSourcez ParseTest.test_parse_InputSource   sd    diit4&$ 	$1ME"l+U#		$ 	$ 	$s   >A//A8c                 ^   t         d fd}t        j                  d|      5  t        | j                  dd        | j                  t              5  | j                  t               d d d        | j                  j                         d d d        y # 1 sw Y   -xY w# 1 sw Y   y xY w)Nc                       |  S r`   rI   )argsbuiltin_openfileobjs    r:   	mock_openz4ParseTest.test_parse_close_source.<locals>.mock_open   s    "D)GNr<   zxml.sax.saxutils.open)side_effectrn   )rY   r   patchr\   rh   r&   r   rj   r   
assertTrueclosed)r9   r   r   r   s     @@r:   test_parse_close_sourcez!ParseTest.test_parse_close_source   s    	
 ZZ/YG 	,$))\48""<0 )  ()OOGNN+		, 	,) )	, 	,s#   -B#B+#B#B 	B##B,c                     ddl m} t               } ||t        |d             | j	                  |j                         t        | j                  d             y )Nr   )parseStringr   )rf   r   r   r	   r-   rg   rP   rh   )r9   sr   ri   s       r:   check_parseStringzParseTest.check_parseString   s?    'A|FG45*GDIIw,GHr<   c                     d}|D ]'  }| j                  t        | j                  |             ) | j                  | j                         y )Nrl   )r   rP   rh   r9   ru   rO   s      r:   test_parseString_textzParseTest.test_parseString_text   sE    7	! 	AH""7499h#?@	Atyy)r<   c                 .   d}|D ]M  }| j                  t        | j                  |             | j                  t        | j                  |d              O | j                  t        | j                  dd             | j                  t        | j                  dd              | j                  t        | j                  d             | j                  t              5  | j                  t        | j                  dd              d d d        y # 1 sw Y   y xY w)Nrx   rz   r   rn   )r   rU   rh   r&   r   r   s      r:   test_parseString_bytesz ParseTest.test_parseString_bytes   s     L	! 	IH""9TYY#AB""9TYY$#GH	I 	yKIJyKFGyLAB|, 	M""9TYYd#KL	M 	M 	Ms   'DDN)rF   rG   rH   rh   rc   rj   rv   r{   r}   r   r   r   r   r   rI   r<   r:   r^   r^   |   s=    OD!I$($T+$,I*Mr<   r^   c                   $    e Zd Zd Zd Zd Zd Zy)MakeParserTestc                     ddl m}  |       }ddl m}  |       }ddl m}  |       }ddl m}  |       }ddl m}  |       }ddl m}  |       }y )Nr   r   )rf   r   )r9   r   ps      r:   test_make_parser2z MakeParserTest.test_make_parser2   s@     	(M'M'M'M'M'Mr<   c                     t        dg       t        d       t        dh       t        t        dh             t        dd i       t        t        dg             y )Nmodule)r   r   	frozensetiterrb   s    r:   test_make_parser3z MakeParserTest.test_make_parser3
  sK     	XJL!XJIxj)*Xt$%D($%r<   c                     t        g        t        t                      t        t                      t        t                      t        i        t        t	        g              y r`   )r   tuplesetr   r   rb   s    r:   test_make_parser4z MakeParserTest.test_make_parser4  s:    BEGCEIK BDHr<   c                     t        ddg       t        d       t        ddh       t        t        ddh             t        d d d       t        t        ddg             y )Nmodule1module2)r   r   r   rb   s    r:   test_make_parser5z MakeParserTest.test_make_parser5  sX     	Y	*+*+Y	*+Iy)45667D)Y/01r<   N)rF   rG   rH   r   r   r   r   rI   r<   r:   r   r      s    "&2r<   r   c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)SaxutilsTestc                 :    | j                  t        d      d       y )NDonald Duck & CoDonald Duck &amp; Cor-   r
   rb   s    r:   test_escape_basiczSaxutilsTest.test_escape_basic/  s     235KLr<   c                 :    | j                  t        d      d       y )N<Donald Duck & Co>&lt;Donald Duck &amp; Co&gt;r   rb   s    r:   test_escape_allzSaxutilsTest.test_escape_all2  s     457	9r<   c                 @    | j                  t        dddi      d       y Nu   Hei på deg   åz&aring;zHei p&aring; degr   rb   s    r:   test_escape_extrazSaxutilsTest.test_escape_extra6  s!    y/AB+	-r<   c                 :    | j                  t        d      d       y )Nr   r   r-   r   rb   s    r:   test_unescape_basicz SaxutilsTest.test_unescape_basic;  s    "89;MNr<   c                 :    | j                  t        d      d       y )Nr   r   r   rb   s    r:   test_unescape_allzSaxutilsTest.test_unescape_all>  s    "@A-	/r<   c                 @    | j                  t        dddi      d       y r   r   rb   s    r:   test_unescape_extraz SaxutilsTest.test_unescape_extraB  s!    -$1CD+	-r<   c                 @    | j                  t        dddi      d       y )Nz	&amp;foo;z&foo;splatr   rb   s    r:   test_unescape_amp_extraz$SaxutilsTest.test_unescape_amp_extraF  s    +/ABGLr<   c                 :    | j                  t        d      d       y )Nr   z"Donald Duck &amp; Co"r-   r   rb   s    r:   test_quoteattr_basicz!SaxutilsTest.test_quoteattr_basicJ  s    #561	3r<   c                 :    | j                  t        d      d       y )NzIncludes "double" quotesz'Includes "double" quotes'r   rb   s    r:   test_single_quoteattrz"SaxutilsTest.test_single_quoteattrN      #=>7	9r<   c                 :    | j                  t        d      d       y )NzIncludes 'single' quotesz"Includes 'single' quotes"r   rb   s    r:   test_double_quoteattrz"SaxutilsTest.test_double_quoteattrR  r   r<   c                 :    | j                  t        d      d       y )Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes"r   rb   s    r:   test_single_double_quoteattrz)SaxutilsTest.test_single_double_quoteattrV  s    #LMN	Pr<   c                     t        dg      }y )Nzxml.parsers.no_such_parserr   )r9   r   s     r:   test_make_parserzSaxutilsTest.test_make_parser[  s     567r<   N)rF   rG   rH   r   r   r   r   r   r   r   r   r   r   r   r   rI   r<   r:   r   r   -  sB    M9-
O/-M399P
8r<   r   c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)PrepareInputSourceTestc                     t         j                  | _        t        | j                  d      5 }|j	                  d       d d d        y # 1 sw Y   y xY w)NrW   zThis was read from a file.)r   r   filerY   rZ   )r9   tmps     r:   setUpzPrepareInputSourceTest.setUpc  sA    $$	$))S! 	4SII23	4 	4 	4s   AAc                 B    t        j                  | j                         y r`   )r   ra   r   rb   s    r:   rc   zPrepareInputSourceTest.tearDownh  s    #r<   c                     t        d      S Ns   This is a byte stream.)r   rb   s    r:   make_byte_streamz'PrepareInputSourceTest.make_byte_streamk  s    011r<   c                     t        d      S NzThis is a character stream.)r   rb   s    r:   make_character_streamz,PrepareInputSourceTest.make_character_streamn  s    566r<   c                     | j                  |       | j                  |j                         |       |j                          y r`   )assertIsNotNoner-   readclose)r9   streamcontents      r:   checkContentz#PrepareInputSourceTest.checkContentq  s/    V$0r<   c                     t        | j                        }|j                  | j                                t	        |      }| j                  |j                                | j                  |j                         d       y r   )	r   r   setCharacterStreamr   r   assertIsNonegetByteStreamr   getCharacterStreamr9   srcpreps      r:   test_character_streamz,PrepareInputSourceTest.test_character_streamw  sd    $))$t99;<#C($,,./$1137	9r<   c                     t        | j                        }|j                  | j                                t	        |      }| j                  |j                                | j                  |j                         d       y r   )	r   r   r   r   r   r   r   r   r   r   s      r:   test_byte_streamz'PrepareInputSourceTest.test_byte_stream  sf     $))$$//12#C($1134$,,.3	5r<   c                     t        | j                        }t        |      }| j                  |j	                                | j                  |j                         d       y Ns   This was read from a file.)r   r   r   r   r   r   r   r   s      r:   test_system_idz%PrepareInputSourceTest.test_system_id  sO     $))$#C($1134$,,.7	9r<   c                     t        | j                        }| j                  |j                                | j	                  |j                         d       y r   )r   r   r   r   r   r   r9   r   s     r:   test_stringz"PrepareInputSourceTest.test_string  sC    #DII.$1134$,,.7	9r<   c                     t        t        | j                              }| j                  |j	                                | j                  |j                         d       y r   )r   r   r   r   r   r   r   r   s     r:   test_path_objectsz(PrepareInputSourceTest.test_path_objects  sH    #HTYY$78$1134$,,.7	9r<   c                     t        | j                               }| j                  |j                                | j	                  |j                         d       y r   )r   r   r   r   r   r   r   s     r:   test_binary_filez'PrepareInputSourceTest.test_binary_file  sJ     $D$9$9$;<$1134$,,.3	5r<   c                     t        | j                               }| j                  |j                                | j	                  |j                         d       y r   )r   r   r   r   r   r   r   s     r:   test_text_filez%PrepareInputSourceTest.test_text_file  sJ     $D$>$>$@A$,,./$1137	9r<   N)rF   rG   rH   r   rc   r   r   r   r   r   r   r   r   r   r   rI   r<   r:   r   r   a  s>    4
$279599959r<   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)
XmlgenTestc                    | j                         }t        |      }|j                          |j                  di        |j	                  d       |j                          | j                  |j                         | j                  d             y )NrN   <doc></doc>	ioclassr	   startDocumentstartElement
endElementendDocumentr-   rg   xmlr9   ri   gens      r:   test_xmlgen_basiczXmlgenTest.test_xmlgen_basic  si    6"#u*DHH],CDr<   c                 "   | j                         }t        |d      }|j                          |j                  di        |j	                  d       |j                          | j                  |j                         | j                  d             y )NTshort_empty_elementsrN   <doc/>r   r  s      r:   test_xmlgen_basic_emptyz"XmlgenTest.test_xmlgen_basic_empty  sk    6=#u*DHHX,>?r<   c                 @   | j                         }t        |      }|j                          |j                  di        |j	                  d       |j                  d       |j                          | j                  |j                         | j                  d             y )NrN   huhei<doc>huhei</doc>
r   r	   r  r  
charactersr  r  r-   rg   r  r  s      r:   test_xmlgen_contentzXmlgenTest.test_xmlgen_content  sv    6"#wu*DHH5G,HIr<   c                 D   | j                         }t        |d      }|j                          |j                  di        |j	                  d       |j                  d       |j                          | j                  |j                         | j                  d             y )NTr
  rN   r  r  r  r  s      r:   test_xmlgen_content_emptyz$XmlgenTest.test_xmlgen_content_empty  sx    6=#wu*DHH5G,HIr<   c                 B   | j                         }t        |      }|j                          |j                  dd       |j	                  di        |j                  d       |j                          | j                  |j                         | j                  d             y )Ntestrh   rN   z<?test data?><doc></doc>)
r   r	   r  processingInstructionr  r  r  r-   rg   r  r  s      r:   test_xmlgen_pizXmlgenTest.test_xmlgen_pi  s}    6"!!&&1#u*HH/0	2r<   c                 @   | j                         }t        |      }|j                          |j                  di        |j	                  d       |j                  d       |j                          | j                  |j                         | j                  d             y )NrN   z<huhei&z<doc>&lt;huhei&amp;</doc>r  r  s      r:   test_xmlgen_content_escapez%XmlgenTest.test_xmlgen_content_escape  sy    6"#y!u*HH01	3r<   c                     | j                         }t        |      }|j                          |j                  dddi       |j                  dddi       |j	                  d       |j                  dddi       |j	                  d       |j                  dddi       |j	                  d       |j	                  d       |j                          | j                  |j                         | j                  d             y )	NrN   a"e'z'"z
	zK<doc a='"'><e a="'"></e><e a="'&quot;"></e><e a="&#10;&#13;&#9;"></e></doc>r   r  s      r:   test_xmlgen_attr_escapez"XmlgenTest.test_xmlgen_attr_escape  s    6"c
+sCj)ssEl+ssHo.su*DHH1-2 	3r<   c                 ^   d}|D ]  }| j                         }t        ||      }|j                          |j                  dddi       |j	                  d       |j                  d       |j                          | j                  |j                         | j                  d|              y )N	ziso-8859-15r   rz   ro   rq   rp   zutf-32zutf-32bezutf-32lers   rN   r     €u   <doc a="€">€</doc>r  r9   ru   rO   ri   r  s        r:   test_xmlgen_encodingzXmlgenTest.test_xmlgen_encoding  s    7	 " 	MH\\^Fv9CUS(O4NN8$NN5!OOV__.7(KM	Mr<   c                 L   | j                         }t        |d      }|j                          |j                  dddi       |j	                  d       |j                  d       |j                          | j                  |j                         | j                  dd             y )Nasciirs   rN   r  r$  z<doc a="&#8364;">&#8364;</doc>r  r  s      r:   test_xmlgen_unencodablez"XmlgenTest.test_xmlgen_unencodable   s    6G4h0x u*HH5HH	Jr<   c                 @   | j                         }t        |      }|j                          |j                  di        |j	                  d       |j                  d       |j                          | j                  |j                         | j                  d             y )NrN    <doc> </doc>
r   r	   r  r  ignorableWhitespacer  r  r-   rg   r  r  s      r:   test_xmlgen_ignorablez XmlgenTest.test_xmlgen_ignorable-  sw    6"#$u*DHH^,DEr<   c                 D   | j                         }t        |d      }|j                          |j                  di        |j	                  d       |j                  d       |j                          | j                  |j                         | j                  d             y )NTr
  rN   r+  r,  r-  r  s      r:   test_xmlgen_ignorable_emptyz&XmlgenTest.test_xmlgen_ignorable_empty9  sy    6=#$u*DHH^,DEr<   c                    d}|D ]  }| j                         }t        ||      }|j                          |j                  dddi       |j	                  dj                  |             |j                  dj                  |             |j                  d       |j                          | j                  |j                         | j                  d|              y )Nr#  rs   rN   r  r$  r+  u   <doc a="€">€ </doc>)r   r	   r  r  r  rS   r.  r  r  r-   rg   r  r%  s        r:   test_xmlgen_encoding_bytesz%XmlgenTest.test_xmlgen_encoding_bytesE  s    7	 " 	NH\\^Fv9CUS(O4NN8??845##CJJx$89NN5!OOV__.88LN	Nr<   c                    | j                         }t        |      }|j                          |j                  dt               |j                  t        dfdi        |j                  dd i        |j                  dd        |j                  t        dfd       |j                  d       |j                          | j                  |j                         | j                  dt        z               y )Nns1rN   ns1:docNudocz/<ns1:doc xmlns:ns1="%s"><udoc></udoc></ns1:doc>r   r	   r  startPrefixMappingr?   startElementNSendElementNSendPrefixMappingr  r-   rg   r  r  s      r:   test_xmlgen_nszXmlgenTest.test_xmlgen_nsW  s    6"uf-FE?Ir:>44.&%)4U#*DHH<)/0-1 	2r<   c                    | j                         }t        |d      }|j                          |j                  dt               |j                  t        dfdi        |j                  dd i        |j                  dd        |j                  t        dfd       |j                  d       |j                          | j                  |j                         | j                  dt        z               y )NTr
  r5  rN   r6  r7  z)<ns1:doc xmlns:ns1="%s"><udoc/></ns1:doc>r9  r  s      r:   test_xmlgen_ns_emptyzXmlgenTest.test_xmlgen_ns_emptyi  s    6=uf-FE?Ir:>44.&%)4U#*DHH6)/0-1 	2r<   c                 &   | j                         }t        |      }|j                          |j                  ddddi       |j	                  dd       |j                          | j                  |j                         | j                  d             y )NNr  r  Nbcz<a b="c"></a>	r   r	   r  r;  r<  r  r-   rg   r  r  s      r:   test_1463026_1zXmlgenTest.test_1463026_1{  st    6";k#->?c**DHH_,EFr<   c                 *   | j                         }t        |d      }|j                          |j                  ddddi       |j	                  dd       |j                          | j                  |j                         | j                  d             y )NTr
  rB  r  rC  rE  z
<a b="c"/>rF  r  s      r:   test_1463026_1_emptyzXmlgenTest.test_1463026_1_empty  sv    6=;k#->?c**DHH\,BCr<   c                 h   | j                         }t        |      }|j                          |j                  d d       |j	                  ddi        |j                  dd       |j                  d        |j                          | j                  |j                         | j                  d             y )NquxrK  r  r  z<a xmlns="qux"></a>r   r	   r  r:  r;  r<  r=  r  r-   rg   r  r  s      r:   test_1463026_2zXmlgenTest.test_1463026_2  s    6"tU+<b1s+T"*DHH5J,KLr<   c                 l   | j                         }t        |d      }|j                          |j                  d d       |j	                  ddi        |j                  dd       |j                  d        |j                          | j                  |j                         | j                  d             y )NTr
  rK  rL  r  z<a xmlns="qux"/>rM  r  s      r:   test_1463026_2_emptyzXmlgenTest.test_1463026_2_empty  s    6=tU+<b1s+T"*DHH5G,HIr<   c                 l   | j                         }t        |      }|j                          |j                  dd       |j	                  ddddi       |j                  dd       |j                  d       |j                          | j                  |j                         | j                  d             y )NmyrK  rL  r  rC  rE  z"<my:a xmlns:my="qux" b="c"></my:a>rM  r  s      r:   test_1463026_3zXmlgenTest.test_1463026_3  s    6"tU+<{3.?@s+T"*HH9:	<r<   c                 p   | j                         }t        |d      }|j                          |j                  dd       |j	                  ddddi       |j                  dd       |j                  d       |j                          | j                  |j                         | j                  d	             y )
NTr
  rR  rK  rL  r  rC  rE  z<my:a xmlns:my="qux" b="c"/>rM  r  s      r:   test_1463026_3_emptyzXmlgenTest.test_1463026_3_empty  s    6=tU+<{3.?@s+T"*HH34	6r<   c                 2   t        d      }t               }|j                  t        d       | j	                         }t        |      }|j                  |       |j                  |       | j                  |j                         | j                  d             y )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	   setContentHandlerre   r-   rg   r  )r9   test_xmlparserri   r  s        r:   test_5027_1zXmlgenTest.test_5027_1  s      ,d36"  %X*#$	%r<   c                    | j                         }t        |      }|j                          |j                  dd       |j	                  ddi        ddi}|j	                  dd|       |j                  d	       |j                  dd       |j                  dd       |j                  d       |j                          | j                  |j                         | j                  d
             y )Nr  http://example.com/ns)r^  g1r_  )z$http://www.w3.org/XML/1998/namespacelangen)r^  g2rb  HellorW  )r   r	   r  r:  r;  r  r<  r=  r  r-   rg   r  )r9   ri   r  	lang_attrs       r:   test_5027_2zXmlgenTest.test_5027_2  s     6"s$;<:D"EEtL	:D)Lw8$?8$?S!*#$	%r<   c                 p    | j                         }d } ||       | j                  |j                         y )Nc                 ^    t        |       }|j                          |j                  di        y )NrN   )r	   r  r  )outr  s     r:   funcz+XmlgenTest.test_no_close_file.<locals>.func  s(    s#CUB'r<   )r   assertFalser   )r9   ri   ri  s      r:   test_no_close_filezXmlgenTest.test_no_close_file  s-    	( 	V'r<   c           	         | j                         }t        |      }|j                  dddi       |j                  d       |j	                  d       |j                  dddi       |j	                  d       | j                  |j                         | j                  d      t        | j                  d	            d         y )
Nfoor  1.0rc  barrD  z2.0z+<foo a="1.0">Hello</foo><bar b="2.0"></bar> )	r   r	   r  r  r  r-   rg   r  r1   r  s      r:   test_xmlgen_fragmentzXmlgenTest.test_xmlgen_fragment  s    6" 	e-wue-u 	*HHBCCQSDUDVW	Yr<   N)rF   rG   rH   r  r  r  r  r  r  r!  r&  r)  r/  r1  r3  r>  r@  rG  rI  rN  rP  rS  rU  r\  re  rk  rq  rI   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                       e Zd ZeZddZdZy)StringXmlgenTestc                     d|d|S rK   rI   r9   rN   rO   s      r:   r  zStringXmlgenTest.xml  s    <DcJJr<   Nrn   )rF   rG   rH   r   r   r  r)  rI   r<   r:   rs  rs    s    GK #r<   rs  c                       e Zd ZeZddZy)BytesXmlgenTestc                 2    d|d|j                  |d      S )NrL   rM   rR   rS   ru  s      r:   r  zBytesXmlgenTest.xml   s    3 !'2E!F	Gr<   Nrv  )rF   rG   rH   r   r   r  rI   r<   r:   rx  rx    s    GGr<   rx  c                   "    e Zd Z G d de      Zy)WriterXmlgenTestc                   :    e Zd Zej                  ZdZd Zd Zd Z	y)WriterXmlgenTest.ioclassFc                      yNTrI   rb   s    r:   seekablez!WriterXmlgenTest.ioclass.seekable)  s    r<   c                     t        |       S r`   )r1   rb   s    r:   tellzWriterXmlgenTest.ioclass.tell,  s    t9r<   c                 $    dj                  |       S )Nr<   )joinrb   s    r:   rg   z!WriterXmlgenTest.ioclass.getvalue0  s    88D>!r<   N)
rF   rG   rH   r3   appendrZ   r   r  r  rg   rI   r<   r:   r   r~  %  s    			"r<   r   N)rF   rG   rH   r3   r   rI   r<   r:   r|  r|  $  s    "$ "r<   r|  c                       e Zd Zd ZddZy)StreamWriterXmlgenTestc                 t    t               } t        j                  d      |d      }|j                  |_        |S )Nr(  rR   )r   codecs	getwriterrg   )r9   rawwriters      r:   r   zStreamWriterXmlgenTest.ioclass4  s3    i*!!'*30CD,,r<   c                 2    d|d|j                  dd      S NrL   rM   r(  rR   rz  ru  s      r:   r  zStreamWriterXmlgenTest.xml:      3 !'1D!E	Fr<   Nrv  )rF   rG   rH   r   r  rI   r<   r:   r  r  3  s    Fr<   r  c                   8    e Zd Zej                  dz   Zd ZddZy)StreamReaderWriterXmlgenTestz-codecsc                      t        j                   j                  dddd       fd} j                  |       fd}|_        S )NrW   r(  rR   r   )rO   rX   	bufferingc                  d    j                          t        j                   j                         y r`   )r   r   ra   fname)r9   r  s   r:   cleanupz5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupD  s    LLNTZZ(r<   c                      j                          t        j                  d      5 } | j                         cd d d        S # 1 sw Y   y xY wNry   )r   rY   namer   )r[   r  s    r:   rg   z6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalueH  s:    LLNfkk4(  Avvx     s   AA)r  rY   r  
addCleanuprg   )r9   r  rg   r  s   `  @r:   r   z$StreamReaderWriterXmlgenTest.ioclassA  sG    TZZw$71F	) 	 	 
 #r<   c                 2    d|d|j                  dd      S r  rz  ru  s      r:   r  z StreamReaderWriterXmlgenTest.xmlP  r  r<   Nrv  )rF   rG   rH   r   r   r  r   r  rI   r<   r:   r  r  >  s    y(EFr<   r  s,   <?xml version="1.0" encoding="iso-8859-1"?>
c                       e Zd Zd Zy)XMLFilterBaseTestc                 |   t               }t        |      }t               }|j                  |       |j	                          |j                  di        |j                  d       |j                  d       |j                  d       |j                          | j                  |j                         t        dz          y )NrN   r   r+  s   <doc>content </doc>)r   r	   r   rY  r  r  r  r.  r  r  r-   rg   start)r9   ri   r  filters       r:   test_filter_basicz#XMLFilterBaseTest.test_filter_basicX  s    6"  %E2&)$""3'% *E4J,JKr<   N)rF   rG   rH   r  rI   r<   r:   r  r  W  s    Lr<   r  ry   c                   z   e Zd Zd Zd Zed        Zd Zd Z G d d      Z	 G d d	      Z
d
 Zd Zd Z G d d      Zd Zd Z G d de      Zd Zd Zd Zd Zd Zd Zed        Zd Zd Zd Zd Z ej>                  e jB                  dk  de jB                   d       d!        Z"d" Z#d# Z$d$ Z%ed%        Z&y&)'ExpatReaderTestc                    t               }t               }t        |      }|j                  |       t	        t
        d      5 }|j                  |       d d d        | j                  |j                         t               y # 1 sw Y   .xY wr  
r   r   r	   rY  rY   TEST_XMLFILEre   r-   rg   xml_test_outr9   r[  ri   xmlgenr[   s        r:   test_expat_binary_filez&ExpatReaderTest.test_expat_binary_filet  sm    f%  (,% 	LLO	 	*L9	 	s   B  B	c                    t               }t               }t        |      }|j                  |       t	        t
        dd      5 }|j                  |       d d d        | j                  |j                         t               y # 1 sw Y   .xY wNrtrn   rs   r  r  s        r:   test_expat_text_filez$ExpatReaderTest.test_expat_text_file  so    f%  (,|< 	LLO	 	*L9	 	s   BBc                 v   t         j                  }t        j                  t        |       | j                  t         j                  |       t               }t               }t        |      }|j                  |       |j                  t        |d             | j                  |j                         t               y r  )r   TESTFN_UNICODEshutilcopyfiler  r  ra   r   r   r	   rY  re   rY   r-   rg   r  r9   r  r[  ri   r  s        r:   test_expat_binary_file_nonasciiz/ExpatReaderTest.test_expat_binary_file_nonascii  s    ((e,	((%0f%  (T%&'*L9r<   c                 B   t        j                  t              }t               }t	               }t        |      }|j                  |       t        |d      5 }|j                  |       d d d        | j                  |j                         t               y # 1 sw Y   .xY wr  )osfsencoder  r   r   r	   rY  rY   re   r-   rg   r  )r9   r  r[  ri   r  r[   s         r:   !test_expat_binary_file_bytes_namez1ExpatReaderTest.test_expat_binary_file_bytes_name  s{    L)f%  (% 	!LLO	 	*L9	 	s   BBc                 z   t               }t               }t        |      }|j                  |       t	        t
        d      5 }t	        |j                         dd      5 }|j                  |       d d d        d d d        | j                  |j                         t               y # 1 sw Y   6xY w# 1 sw Y   :xY w)Nry   F)closefd)r   r   r	   rY  rY   r  filenore   r-   rg   r  )r9   r[  ri   r  r[   f2s         r:   test_expat_binary_file_int_namez/ExpatReaderTest.test_expat_binary_file_int_name  s    f%  (,% 	!ahhj$6 !"R !	! 	*L9! !	! 	!s$   B1B%0B1%B.	*B11B:c                       e Zd Zd Zd Zd Zy)ExpatReaderTest.TestDTDHandlerc                      g | _         g | _        y r`   )
_notations	_entitiesrb   s    r:   __init__z'ExpatReaderTest.TestDTDHandler.__init__  s     DO DNr<   c                 @    | j                   j                  |||f       y r`   )r  r  )r9   r  publicIdsystemIds       r:   notationDeclz+ExpatReaderTest.TestDTDHandler.notationDecl  s    OO""D(H#=>r<   c                 B    | j                   j                  ||||f       y r`   )r  r  )r9   r  r  r  ndatas        r:   unparsedEntityDeclz1ExpatReaderTest.TestDTDHandler.unparsedEntityDecl  s    NN!!48U"CDr<   N)rF   rG   rH   r  r  r  rI   r<   r:   TestDTDHandlerr    s    	!	?	Er<   r  c                       e Zd Zd Zd Zy)"ExpatReaderTest.TestEntityRecorderc                     g | _         y r`   )entitiesrb   s    r:   r  z+ExpatReaderTest.TestEntityRecorder.__init__  s	    DMr<   c                     | j                   j                  ||f       t               }|j                  |       |j	                  |       |S r`   )r  r  r   setPublicIdsetSystemId)r9   r  r  sources       r:   resolveEntityz0ExpatReaderTest.TestEntityRecorder.resolveEntity  sA    MM  (H!56 ]Fx(x(Mr<   N)rF   rG   rH   r  r  rI   r<   r:   TestEntityRecorderr    s    		r<   r  c                    t               }| j                         }|j                  |       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j	                          | j                  |j                  dg       | j                  |j                  dg       y )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.gifr  )r   r  setDTDHandlerfeedr   r-   r  r  )r9   r[  handlers      r:   test_expat_dtdhandlerz%ExpatReaderTest.test_expat_dtdhandler  s    %%'W%'(DEnoFM"++YZ	\**-N,OPr<   c                    | j                  t        j                  j                         t	               }|j                  t        d       | j                         }|j                  |       | j                  t              5  |j                  d       d d d        | j                  |j                  dg       y # 1 sw Y   'xY w)NT8<!DOCTYPE external SYSTEM "unsupported://non-existing">
)Nzunsupported://non-existing)r  urllibrequest
urlcleanupr   rX  r   r  setEntityResolverr&   r   r  r-   r  r9   r[  resolvers      r:   test_expat_external_dtd_enabledz/ExpatReaderTest.test_expat_external_dtd_enabled  s    112.5**,  *x( 	KKK	 	 DE	
		 	s    B88Cc                     t               }| j                         }|j                  |       |j                  d       |j                  d       |j	                          | j                  |j                  g        y )Nr  z<doc />)r   r  r  r  r   r-   r  r  s      r:   test_expat_external_dtd_defaultz/ExpatReaderTest.test_expat_external_dtd_default  sa    **,  *G	
 	I**B/r<   c                       e Zd Zd Zy)"ExpatReaderTest.TestEntityResolverc                 N    t               }|j                  t        d             |S )Ns	   <entity/>)r   r   r   )r9   r  r  inpsrcs       r:   r  z0ExpatReaderTest.TestEntityResolver.resolveEntity  s!     ]F  !67Mr<   N)rF   rG   rH   r  rI   r<   r:   TestEntityResolverr    s    	r<   r  c                    t               }|j                  t        d       |j                  | j	                                t               }|j                  t        |             |j                  d       |j                  d       |j                  d       |j                  d       |j                          | j                  |j                         t        dz          y )NTr  #  <!ENTITY test SYSTEM "whatever">
r  <doc>&test;</doc>s   <doc><entity></entity></doc>)r   rX  r   r  r  r   rY  r	   r  r   r-   rg   r  r9   r[  ri   s      r:   !test_expat_entityresolver_enabledz1ExpatReaderTest.test_expat_entityresolver_enabled  s    .5  !8!8!:;  f!56'(:;F'(*E8-9 	:r<   c                    t               }| j                  |j                  t              d       |j	                  | j                                t               }|j                  t        |             |j                  d       |j                  d       |j                  d       |j                  d       |j                          | j                  |j                         t        dz          y )NFr  r  r  r     <doc></doc>)r   r-   
getFeaturer   r  r  r   rY  r	   r  r   rg   r  r  s      r:   !test_expat_entityresolver_defaultz1ExpatReaderTest.test_expat_entityresolver_default  s    **+?@%H  !8!8!:;  f!56'(:;F'(*E'-( 	)r<   c                       e Zd Zd Zd Zy)ExpatReaderTest.AttrGathererc                     || _         y r`   _attrs)r9   r  r$   s      r:   r  z)ExpatReaderTest.AttrGatherer.startElement%  	    DKr<   c                     || _         y r`   r  )r9   r  qnamer$   s       r:   r;  z+ExpatReaderTest.AttrGatherer.startElementNS(  r  r<   N)rF   rG   rH   r  r;  rI   r<   r:   AttrGathererr  #  s    	 	 r<   r  c                     t               }| j                         }|j                  |       |j                  d       |j	                          | j                  |j                         y )Nr  )r   r  rY  r  r   r;   r  r9   r[  gathers      r:   test_expat_attrs_emptyz&ExpatReaderTest.test_expat_attrs_empty+  sL    ""$  (H.r<   c                     t               }| j                         }|j                  |       |j                  d       |j	                          | j                  |j                         y )Nz<doc attr='val'/>)r   r  rY  r  r   rE   r  r  s      r:   test_expat_attrs_wattrz&ExpatReaderTest.test_expat_attrs_wattr5  sM    ""$  ('(.r<   c                     t        d      }| j                         }|j                  |       |j                  d       |j	                          | j                  |j                         y )NrB   r  )r   r  rY  r  r   r@   r  r  s      r:   test_expat_nsattrs_emptyz(ExpatReaderTest.test_expat_nsattrs_empty?  sO    q!""$  (H!!&--0r<   c                    t        d      }| j                         }|j                  |       |j                  dt        z         |j                          |j                  }| j                  |j                         d       | j                  |j                         t        dfg       | j                  |j                         g k(  xs |j                         dgk(         | j                  t        |      d       | j                  t        df|       | j                  |j                  t        df      d       | j                  |j                  t        dfd      d       | j                  t        |j!                               t        dfdfg       | j                  t        |j#                               dg       | j                  |j%                  t        df      d       | j                  |t        df   d       y )NrB   z"<doc xmlns:ns='%s' ns:attr='val'/>r#   r>   rC   r%   )r   r  rY  r  r?   r   r  r-   r.   r/   r   r0   r1   rD   r5   r3   r6   r7   r(   )r9   r[  r  r$   s       r:   test_expat_nsattrs_wattrz(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                     t               }t               }t        |      }|j                  |       |j	                  t
               | j                  |j                         t               y r`   )	r   r   r	   rY  re   r  r-   rg   r  r9   r[  ri   r  s       r:   test_expat_inpsource_filenamez-ExpatReaderTest.test_expat_inpsource_filenameb  sK    f%  (\"*L9r<   c                     t               }t               }t        |      }|j                  |       |j	                  t        t                     | j                  |j                         t               y r`   )
r   r   r	   rY  re   r   r  r-   rg   r  r  s       r:   test_expat_inpsource_sysidz*ExpatReaderTest.test_expat_inpsource_sysidl  sP    f%  ([./*L9r<   c                 t   t         j                  }t        j                  t        |       | j                  t         j                  |       t               }t               }t        |      }|j                  |       |j                  t        |             | j                  |j                         t               y r`   )r   r  r  r  r  r  ra   r   r   r	   rY  re   r   r-   rg   r  r  s        r:   #test_expat_inpsource_sysid_nonasciiz3ExpatReaderTest.test_expat_inpsource_sysid_nonasciiv  s}    ((e,	((%0f%  (['(*L9r<   c                 N   t               }t               }t        |      }|j                  |       t	               }t        t        d      5 }|j                  |       |j                  |       d d d        | j                  |j                         t               y # 1 sw Y   .xY wr  )r   r   r	   rY  r   rY   r  r   re   r-   rg   r  r9   r[  ri   r  r  r[   s         r:    test_expat_inpsource_byte_streamz0ExpatReaderTest.test_expat_inpsource_byte_stream  s    f%  (,% 	!  #LL 	! 	*L9		! 	!s   #BB$c                 R   t               }t               }t        |      }|j                  |       t	               }t        t        dd      5 }|j                  |       |j                  |       d d d        | j                  |j                         t               y # 1 sw Y   .xY wr  )r   r   r	   rY  r   rY   r  r   re   r-   rg   r  r  s         r:   %test_expat_inpsource_character_streamz5ExpatReaderTest.test_expat_inpsource_character_stream  s    f%  (,|< 	!%%a(LL 	! 	*L9		! 	!s   #BB&c                    t               }t        |      }t               }|j                  |       |j	                  d       |j	                  d       |j                          | j                  |j                         t        dz          y )N<doc></doc>r  )	r   r	   r   rY  r  r   r-   rg   r  r9   ri   r  r[  s       r:   test_expat_incrementalz&ExpatReaderTest.test_expat_incremental  se    f%  (GH*EN,BCr<   c                    t               }t        |      }t               }|j                  |       |j	                  d       |j	                  d       t               }t        |      }|j                  |       |j                          |j	                  d       |j	                  d       |j	                  d       |j                          | j                  |j                         t        dz          y )Nr  textr  s   <doc>text</doc>)
r   r	   r   rY  r  resetr   r-   rg   r  r  s       r:   test_expat_incremental_resetz,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                 ~   t               }t        |      }t               }|j                  |       dD ]  }|j	                  |        | j                  |j                         t               | j                  |j                  j                                |j                          | j                  |j                  j                                | j                  |j                         t        dz          |j	                  d       |j                          | j                  |j                         t        dz          y )Nz<doc>   <doc>r  r  )r   r	   r   rY  r  r-   rg   r  r   _parserGetReparseDeferralEnabledflushr   r9   ri   r  r[  chunks        r:   #test_flush_reparse_deferral_enabledz3ExpatReaderTest.test_flush_reparse_deferral_enabled  s     f%  (" 	EKK	 	*E2@@BC@@BC*EH,<=H*EN,BCr<   c                    t               }t        |      }t               }|j                  |       dD ]  }|j	                  |        t
        j                  dk\  r?|j                  j                  d       | j                  |j                         t               | j                  |j                  j                                |j                          | j                  |j                  j                                | j                  |j                         t        dz          |j	                  d       |j                          | j                  |j                         t        dz          y )Nr%  r!  Fr'  r  r  )r   r	   r   rY  r  pyexpatversion_infor(  SetReparseDeferralEnabledr-   rg   r  rj  r)  r*  r   r+  s        r:   $test_flush_reparse_deferral_disabledz4ExpatReaderTest.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                    t               }t        |      }t               }|j                  |       |j	                  d       |j	                  d       |j                          | j                  |j                         d        | j                  |j                         d        | j                  |j                         d       y )Nr  r  rB   )
r   r	   r   rY  r  r   r-   getSystemIdgetPublicIdgetLineNumberr  s       r:   test_expat_locator_noinfoz)ExpatReaderTest.test_expat_locator_noinfo  s    f%  (GH++-t4++-t4--/3r<   c                    t               }t        |      }t               }|j                  |       |j	                  t
               | j                  |j                         t
               | j                  |j                         d        y r`   )	r   r	   r   rY  re   r  r-   r4  r5  r  s       r:   test_expat_locator_withinfoz+ExpatReaderTest.test_expat_locator_withinfo  sf    f%  (\"++-|<++-t4r<   c                    t         j                  }t        j                  t        |       | j                  t         j                  |       t               }t        |      }t               }|j                  |       |j                  |       | j                  |j                         |       | j                  |j                         d        y r`   )r   r  r  r  r  r  ra   r   r	   r   rY  re   r-   r4  r5  )r9   r  ri   r  r[  s        r:   $test_expat_locator_withinfo_nonasciiz4ExpatReaderTest.test_expat_locator_withinfo_nonascii  s    ((e,	((%0f%  (U++-u5++-t4r<   N)'rF   rG   rH   r  r  requires_nonascii_filenamesr  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r	  r  r  r  r  r  r  r  r   unittestskipIfr/  r0  r-  r2  r7  r9  r;  rI   r<   r:   r  r  p  s"   	:	: !: !:
:
:
E 
E	 	Q 
"
0 : )$ ~  //192:: !: !:::
DH* X__W))I5g223 40 01D1D,D645 !5 !5r<   r  c                   2    e Zd Zd Zd Zd Z G d d      Zy)ErrorReportingTestc                 h   t               }|j                  t                      t               }|j	                  t        d             d}|j                  |       	 |j                  |       | j                          y # t        $ r*}| j                  |j                         |       Y d }~y d }~ww xY w)Ns   <foo bar foobar>za file name)r   rY  r   r   r   r   r  re   failr   r-   r4  )r9   r[  r  r  r  s        r:   test_expat_inpsource_locationz0ErrorReportingTest.test_expat_inpsource_location%  s      !12W%89:4 	4LL IIK 	4Q]]_d33	4s   !A> >	B1 B,,B1c                    t               }|j                  t                      | j                  t        |j
                  t        d             | j                  |j                         d       | j                  |j                         d       y )Nz<foo>   rB   )
r   rY  r   r&   r   re   r   r-   getColumnNumberr6  )r9   r[  s     r:   test_expat_incompletez(ErrorReportingTest.test_expat_incomplete2  sh      !12+V\\8G;LM//115--/3r<   c           
      4   t        t        dd | j                  dd                   t        t        dd | j                  d d                   t        t        dd | j                  dd                    t        t        dd | j                  d d                    y )NmessagerB   )strr   DummyLocatorrb   s    r:   test_sax_parse_exception_strz/ErrorReportingTest.test_sax_parse_exception_str9  s     	i"//157 	8 	i"//a8: 	; 	i"//48: 	; 	i"//d;= 	>r<   c                   *    e Zd Zd Zd Zd Zd Zd Zy)ErrorReportingTest.DummyLocatorc                      || _         || _        y r`   )_lineno_colno)r9   linenocolnos      r:   r  z(ErrorReportingTest.DummyLocator.__init__L  s    !DLDKr<   c                      y)NpubidrI   rb   s    r:   r5  z+ErrorReportingTest.DummyLocator.getPublicIdP      r<   c                      y)NsysidrI   rb   s    r:   r4  z+ErrorReportingTest.DummyLocator.getSystemIdS  rV  r<   c                     | j                   S r`   )rP  rb   s    r:   r6  z-ErrorReportingTest.DummyLocator.getLineNumberV  s    <<r<   c                     | j                   S r`   )rQ  rb   s    r:   rF  z/ErrorReportingTest.DummyLocator.getColumnNumberY  s    ;;r<   N)rF   rG   rH   r  r5  r4  r6  rF  rI   r<   r:   rK  rN  K  s    	 			 	r<   rK  N)rF   rG   rH   rC  rG  rL  rK  rI   r<   r:   r@  r@  $  s    44>$ r<   r@  c                   $    e Zd Zd Zd Zd Zd Zy)XmlReaderTestc                 8    | j                  t        i              y r`   )r;   r   rb   s    r:   test_attrs_emptyzXmlReaderTest.test_attrs_emptye  s    r 23r<   c                 <    | j                  t        ddi             y )Nr#   rC   )rE   r   rb   s    r:   test_attrs_wattrzXmlReaderTest.test_attrs_wattrh  s    /? @Ar<   c                 :    | j                  t        i i              y r`   )r@   r   rb   s    r:   test_nsattrs_emptyz XmlReaderTest.test_nsattrs_emptyk  s    !!"22r":;r<   c                    t        t        dfdit        dfdi      }| j                  |j                         d       | j                  |j	                         t        dfg       | j                  |j                         dg       | j                  t        |      d       | j                  t        df|       | j                  t        |j                               t        dfg       | j                  |j                  t        df      d       | j                  |j                  t        dfd      d       | j                  t        |j                               t        dfdfg       | j                  t        |j                               dg       | j                  |j                  t        df      d       | j                  |j                  d      d       | j                  |j                  d      t        df       | j                  |t        df   d       | j                  |j!                  t        df      d       y )Nr#   rC   r>   rB   r%   )r   r?   r-   r.   r/   r0   r1   rD   r3   r4   r5   r6   r7   r(   r)   r*   r+   r8   s     r:   test_nsattrs_wattrz 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<   N)rF   rG   rH   r^  r`  rb  rd  rI   r<   r:   r\  r\  b  s    4B<Lr<   r\  c                       e Zd Zd Zd Zy)LexicalHandlerTestc                 "   d | _         d| _        d| _        d| _        d| _        d| _        t               | _        | j                  j                  dj                  | j                  | j                               | j                  j                  dj                  | j                               | j                  j                  dj                  | j
                  d	                | j                  j                  d
j                  | j                               | j                  j                  d       | j                  j                  d       | j                  j                  d       | j                  j                  d       | j                  j                  d       | j                  j                  dj                  | j                  d	                | j                  j                  dj                  | j                  d                | j                  j                  dj                  | j                  d                | j                  j                  d       | j                  j                  dj                  | j                               | j                  j                  d       | j                  j                  d       | j                  j                  d       | j                  j                  d       | j                  j                  dj                  | j                  d   | j                  d	   | j                  d                | j                  j                  dj                  | j
                  d                | j                  j                  dj                  | j                               | j                  j                  d	       d | _        d | _        d | _        d | _        d | _        d | _        d| _        g | _        y )Nrn  zUTF-8wish)nbspr  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.">
rB   z+<!ENTITY {} "Hope it gets to: Aristotle.">
r"  r  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_datarZ   formatseekversionrO   
standalonedoctypepublicIDsystemID
end_of_dtdcommentsrb   s    r:   r   z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                     G d dt               }t               | _        | j                  j                  t	                      | j                  j                  d ||              t               }|j                  | j                         | j                  j                  |       | j                  | j                  | j                         | j                  | j                         | j                  | j                         | j!                  | j"                         | j                  t%        | j&                        t%        | j(                               | j                  d| j(                  d    d| j&                  d          y )Nc                   0     e Zd Z fdZd Zd Zd Z xZS )<LexicalHandlerTest.test_handlers.<locals>.TestLexicalHandlerc                 2    t        |   |i | || _        y r`   superr  test_harnessr9   r  r   kwargs	__class__s       r:   r  zELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__       $1&1$0!r<   c                 j    || j                   _        || j                   _        || j                   _        y r`   )r  ru  rv  rw  )r9   ru  rv  rw  s       r:   startDTDzELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.startDTD  s,    ,3!!)-5!!*-5!!*r<   c                 &    d| j                   _        y r  )r  rx  rb   s    r:   endDTDzCLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.endDTD  s    /3!!,r<   c                 N    | j                   j                  j                  |       y r`   )r  ry  r  )r9   r  s     r:   commentzDLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.comment  s    !!**11$7r<   )rF   rG   rH   r  r  r  r  __classcell__r  s   @r:   TestLexicalHandlerr|    s    16
48r<   r  -http://xml.org/sax/properties/lexical-handlerr+  r   )r   r   r[  rY  r   setPropertyr   r   rp  re   r-   ru  rm  r   rv  rw  r   rx  r1   ry  ro  )r9   r  r  s      r:   test_handlersz 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<   NrF   rG   rH   r   r  rI   r<   r:   rf  rf    s    4lMr<   rf  c                       e Zd Zd Zd Zy)CDATAHandlerTestc                    d | _         g | _        | j                  j                  d       | j                  j                  d       d| _        t	               | _        | j
                  j                  d       | j
                  j                  d       | j
                  j                  | j                  d   d    d       | j
                  j                  d       | j
                  j                  d       | j
                  j                  d	| j                  d
   d    d       | j
                  j                  d       | j
                  j                  d       | j
                  j                  d       g | _        d| _	        y )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[rB   z]]>
z</some_cdata>
z</root_doc>
F)
r[  specified_charsr  
char_indexr   rp  rZ   rr  chardatain_cdatarb   s    r:   r   zCDATAHandlerTest.setUp  s3   !##$GH##$NO!^,./ 4 4Q 7 :;2>?/0-.y)=)=a)@)C(DEJK./_-A r<   c                     G d dt               } G d dt              }t               | _        | j                  j	                   ||              | j                  j                  d ||              t               }|j                  | j                         | j                  j                  |       | j                  | j                         | j                  | j                  d       y )Nc                   *     e Zd Z fdZd Zd Z xZS ):CDATAHandlerTest.test_handlers.<locals>.TestLexicalHandlerc                 2    t        |   |i | || _        y r`   r~  r  s       r:   r  zCCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__  r  r<   c                 &    d| j                   _        y r  r  r  rb   s    r:   
startCDATAzECDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.startCDATA  s    -1!!*r<   c                 &    d| j                   _        y )NFr  rb   s    r:   endCDATAzCCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.endCDATA  s    -2!!*r<   )rF   rG   rH   r  r  r  r  r  s   @r:   r  r    s    123r<   r  c                   $     e Zd Z fdZd Z xZS )7CDATAHandlerTest.test_handlers.<locals>.TestCharHandlerc                 2    t        |   |i | || _        y r`   r~  r  s       r:   r  z@CDATAHandlerTest.test_handlers.<locals>.TestCharHandler.__init__  r  r<   c                     |dk7  ro| j                   }|j                  |j                     }|j                  |d   |       |j                  |d   |j                         |xj                  dz  c_        y y )Nr  r   rB   )r  r  r  r-   r  )r9   r   hts       r:   r  zBCDATAHandlerTest.test_handlers.<locals>.TestCharHandler.characters  sc    d?))A))!,,7AMM!A$0MM!A$

3LLA%L #r<   )rF   rG   rH   r  r  r  r  s   @r:   TestCharHandlerr    s    1&r<   r  r  r"  )r   r   r   r[  rY  r  r   r   rp  re   rj  r  r-   r  )r9   r  r  r  s       r:   r  zCDATAHandlerTest.test_handlers  s    		3 		3	&n 	& $o%%od&;<;t$	& !!$..1&!'!,r<   Nr  rI   r<   r:   r  r    s    *#-r<   r  __main__r`   ).)Wrf   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.requestr  test.supportr   r   test.support.os_helperr   r   r  TEST_XMLFILE_OUTrS   UnicodeEncodeErrorsupports_nonascii_filenamespathsupports_unicode_filenamesr  getfilesystemencodingUnicodeError	TypeError
skipUnlessr<  r?   TestCaser!   rP   rU   r\   r^   r   r   r   r   rs  rx  r|  r  r  r  r  rY   r[   r   r  r  r@  r\  rf  r  rF   mainrI   r<   r:   <module>r     s
  K K  8MA A -- - K K       
 !  " ! 3 
=9N=A A G$ # 	ww)),  ''(A(A(A(CD
 2h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HMMO ]0  8
(

6
7786  A
(

?
@@A )$ , ',#,B s5   J "J7 *K K"J47K	KK"K+