
    0hh                       S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	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rS SKJr  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJrJr  S S	KJ r   S S
K!J"r"  Sq#Sq$\" SSS9r% \%RM                  S5        \" SSS9r)\" SSS9r*Sr+Sr,Sr-Sr.Sr/Sr0Sr1S r2S r3SS.S jr4S r5 " S S \Rl                  5      r7SuS" jr8S# r9 " S$ S%5      r: " S& S'\Rl                  5      r; " S( S)\Rl                  5      r<0 r=S*\=S+'   S,\=S-'   S.\=S/'   S0\=S1'   S2\=S3'   S4\=S5'   S6\=S7'   S8\=S9'   S:R}                  \R~                  " \%S!5      5      \=S;'   S<\=S='   0 r@S>\@S?'   S@\@SA'   SB\=SC'   SD\=SE'   SF\=SG'    " SH SI\Rl                  5      rA " SJ SK\Rl                  5      rB " SL SM\:\Rl                  5      rC " SN SO\:\Rl                  5      rD " SP SQ\E5      rF " SR SS\E5      rG " ST SU\E5      rH " SV SW\:\Rl                  5      rI " SX SY\Rl                  5      rJ " SZ S[\Rl                  5      rK " S\ S]\Rl                  5      rL " S^ S_\Rl                  5      rM " S` Sa\Rl                  5      rN " Sb Sc\Rl                  5      rO " Sd Se\Rl                  5      rP " Sf Sg\Rl                  5      rQ " Sh Si\Rl                  5      rR " Sj Sk\Rl                  5      rS " Sl Sm\Rl                  5      rT " Sn So\Rl                  5      rUSp rV " Sq Sr\Rl                  5      rWSvSs jrX\YSt:X  a  \R                  " 5         gg! \' a    \RP                  " S5      ef = f)w    N)nullcontext)partial)productislice)support)	os_helper)warnings_helper)findfile
gc_collect	swap_attr	swap_item)import_fresh_module)TESTFNz
simple.xmlxmltestdatasubdirutf-8z!filename is not encodable to utf8zsimple-ns.xmlzexpat224_utf8_bug.xmlz<body>
  <tag class='a'>text</tag>
  <tag class='b' />
  <section>
    <tag class='b' id='inner'>subtext</tag>
  </section>
</body>
zz<section>
  <tag class='b' id='inner'>subtext</tag>
  <nexttag />
  <nextsection>
    <tag />
  </nextsection>
</section>
zy
<body xmlns="http://effbot.org/ns">
  <tag>text</tag>
  <tag />
  <section>
    <tag>subtext</tag>
  </section>
</body>
z
<root>
<h:table xmlns:h="hello">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="foo">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>
zy<!DOCTYPE points [
<!ENTITY % user-entities SYSTEM 'user-entities.xml'>
%user-entities;
]>
<document>&entity;</document>
zl<!DOCTYPE points [
<!ENTITY entity SYSTEM "file:///non-existing-file.xml">
]>
<document>&entity;</document>
z<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Foo [
<!ELEMENT foo (bar*)>
<!ELEMENT bar (#PCDATA)*>
<!ATTLIST bar xml:lang CDATA "eng">
<!ENTITY qux "quux">
]>
<foo>
<bar>&qux;</bar>
</foo>
c                      [         [        L $ NETpyET     </opt/python-3.13.8/usr/lib/python3.13/test/test_xml_etree.pyis_python_implementationr   ~   s     :r   c                 Z    U R                   n[        R                  R                  U SSUS9$ )N__eq__T)autospecwraps)r   mockpatchobject)clseqs     r   equal_wrapperr&      s+    
 
B::S(TDDr   F)quietc                    ^ ^ UU 4S jnU$ )Nc                 H   >^  UUU 4S jn[         R                  " UT 5        U$ )Nc                  v   > [         R                  " TST06   T" U 0 UD6  S S S 5        g ! , (       d  f       g = f)Nr'   )r	   check_warnings)argskwargsfiltersr'   tests     r   newtest1checkwarnings.<locals>.decorator.<locals>.newtest   s0     //FFd%f% GFFs   	*
8)	functoolsupdate_wrapper)r/   r0   r.   r'   s   ` r   	decorator checkwarnings.<locals>.decorator   s    	& 	  $/r   r   )r'   r.   r4   s   `` r   checkwarningsr6      s     r   c                 ^    U R                  S[        R                  R                  5       5      $ )N   
)replaceoslinesepencode)datas    r   convlinesepr>      s     <<rzz00233r   c                        \ rS rSrS rS rSrg)
ModuleTest   c                 (    SSK Jn  SSK Jn  SSK Jn  g )Nr   )ElementTreeElementIncludeElementPath)	xml.etreerC   rE   rG   )selfrC   rE   rG   s       r   test_sanityModuleTest.test_sanity   s     	*,)r   c                 >    Sn[         R                  " U [        USS9  g )N)xml.etree.ElementTree_elementtree)
HTML_EMPTY)not_exported)r   check__all__r   )rI   namess     r   test_allModuleTest.test_all   s    9T2u?Kr   r   N)__name__
__module____qualname____firstlineno__rJ   rS   __static_attributes__r   r   r   r@   r@      s    *Lr   r@   Tc                    US:w  a  [         R                  " 5       nO[         R                  " 5       n[        R	                  U 5      nUR
                  " U4SU0UD6  U(       a  UR                  5       $ UR                  S5        U$ )Nunicodeencodingr   )ioBytesIOStringIOr   rC   writegetvalueseek)elem	to_stringr\   optionsfiletrees         r   	serializerh      sc    9zz|{{}>>$DJJt2h2'2}}		!r   c                 D    U  Vs/ s H  oR                   PM     sn$ s  snf r   tag)seqrc   s     r   summarize_listrm      s    !$%HH%%%   c                   0    \ rS rSr\S 5       rS rS rSrg)ElementTestCase   c                 &    [         [        1U l        g r   )r   r   modulesr$   s    r   
setUpClassElementTestCase.setUpClass   s    Rjr   c                     [        [        R                  X#5         [        R                  " X5      nS S S 5        [        [        R                  X$5         [        R
                  " W5      nS S S 5        U$ ! , (       d  f       NI= f! , (       d  f       W$ = f! [        R                   a_  n[        [        S4[        S4/5      n	[        R                  " SU< SU	R                  X35      < SU	R                  XD5      < 35      UeS nAff = f)NcETr   zFailed to round-trip z from z to )r   sysrs   pickledumpsloadsPicklingErrordictr   r   r   
TestFailedget)
rI   objnamedumperloaderprototempresultpehumans
             r   pickleRoundTripElementTestCase.pickleRoundTrip   s    	L3;;5||C/ 63;;5d+ 6  6555  ## 	L2u+f~67E$$(+(-		&(A(-		&(A&C D JLL	LsL   B A6"B B,B 6
B B 
BB B D-ADDc                    U R                  U[        R                  [        R                  45        U R                  U[        R                  [        R                  45        U R	                  [        [        U5      5      [        [        U5      5      5        [        X5       H  u  p4U R                  X45        M     [        R                  " SSSS5      nU R	                  U" U5      U" U5      5        g )Nrk   tailtextattrib)assertIsInstancer   Elementr   assertEquallenlistzipassertEqualElementsoperator
attrgetter)rI   alicebobxy
propertiess         r   r   #ElementTestCase.assertEqualElements   s    ebjj$,,%?@cBJJ#=>T%[)3tCy>:ODA$$Q* $((I
E*JsO<r   r   N)	rU   rV   rW   rX   classmethodru   r   r   rY   r   r   r   rp   rp      s    ! !=r   rp   c                   4   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r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. r0S/ r1S0 r2S1 r3S2r4g3)4ElementTreeTest   c                 :    U R                  [        U5      U5        g r   )r   rh   )rI   rc   expecteds      r   serialize_checkElementTreeTest.serialize_check   s    4(3r   c                 8   U R                  [        5         [        R                  S5      nS S S 5        U R                  [        5         [        R                  [        R                  5       5      nS S S 5        g ! , (       d  f       NT= f! , (       d  f       g = f)N )assertRaises	TypeErrorr   rC   rI   rg   s     r   test_constructor ElementTreeTest.test_constructor   s`     y)>>"%D *y)>>".."23D *) *)))s   A:	(B:
B
Bc                    [         R                  5       n[         R                  S5      nUR                  U5        U R	                  UR                  5       R                  S5        U R	                  UR                  5       U5        [         R                  5       nU R                  [        5         UR                  S5        S S S 5        U R                  [        5         UR                  [         R                  5       5        S S S 5        U R                  [        5         UR                  S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NO= f! , (       d  f       g = f)Nrk   r   )	r   rC   r   _setrootr   getrootrk   r   r   )rI   rg   elements      r   test_setrootElementTreeTest.test_setroot   s     ~~**U#g++U31 ~~y)MM" *y)MM"..*+ *y)MM$ *)	 *)))))s$   .D9$E
E9
E

E
E)c                   ^ ^^ UU 4S jm[         R                  S5      nT" U5        [         R                  U5      nT" UR                  5       5        [         R                  SSS9n[         R                  U5      nT R	                  [        U5      S5        [         R                  SSS9nU 4S jmT" UR                  5        T" UR                  5        T" UR                  5        T" UR                  5        T" UR                  5        T" UR                  5        T" UR                  5        T" UR                  5        T" UR                  5        T" UR                  5        T" UR                   5        T" UR"                  5        T" UR$                  5        T" UR&                  5        T" UR(                  5        U4S jnU" UR                  S5      5        U" UR                  S	5      5        U" UR                  S5      5        U" UR                  S	5      5        T R+                  [         R,                  [         R.                  5        T R+                  [         R0                  [         R2                  5        g )
Nc                 (  > TR                  [        R                  U 5      SS9  [        U 5      nS H2  nTR                  [	        X5      SU-  S9  TR                  X!SU-  S9  M4     TR                  U R                  [        5        TR                  U R                  [        5        U R                  b   TR                  U R                  [        5        U R                  b   TR                  U R                  [        5        U  H  nT" U5        M     g )Nznot an elementmsg)rk   r   r   r   zno %s memberzno %s visible by dir)
assertTruer   	iselementdirhasattrassertInr   rk   strr   r~   r   r   )r   direlemattrrc   check_elementrI   s       r   r   5ElementTreeTest.test_interface.<locals>.check_element   s    OOBLL17GOH'lG7 6*T1   3d2T9  ; 8 !!'++s3!!'..$7||'%%gllC8||'%%gllC8d#  r   rk      tägvaluekeyz^<Element 't\xe4g' at 0x.*>$c                 @   > TR                  [        U S5      SU -  S9  g )N__call__z%s not callabler   )r   r   )methodrI   s    r   check_method4ElementTreeTest.test_interface.<locals>.check_method  s%    OOGFJ7)F2  4r   c                 *   > T" U R                   5        g r   )__next__)itr   s    r   
check_iter2ElementTreeTest.test_interface.<locals>.check_iter.  s    %r   *)r   r   rC   r   assertRegexreprappendextendinsertremovefinditerfindfindallfindtextclearr   setkeysitemsiteritertextr   XML
fromstringPIProcessingInstruction)rI   r   rg   r   r   r   s   `   @@r   test_interfaceElementTreeTest.test_interface   s   	$$ **U#g~~g&dlln%**X7*3~~g&g(GH**U*0	4 	W^^$W^^$W^^$W^^$W\\"W%%&W__%W%%&W]]#W[[!W[[!W\\"W]]#W\\"W%%&	& 	7##E*+7##C()4=='(4==%& 	/ 8 89r   c                 R   [         R                  S5      nU R                  UR                  S5        SUl        U R                  UR                  S5        SUl        U R                  UR                  S5        U R	                  UR
                  5        SUl        U R                  UR
                  S5        SUl        U R                  UR
                  S5        U R	                  UR                  5        SUl        U R                  UR                  S5        SUl        U R                  UR                  S5        U R                  UR                  0 5        SS	S
.Ul        U R                  UR                  SS	S
.5        SSS.Ul        U R                  UR                  SSS.5        g )Nrk   TagTAGTextTEXTTailTAILbd)acBD)AC)r   r   r   rk   assertIsNoner   r   r   )rI   r   s     r   test_set_attribute"ElementTreeTest.test_set_attribute;  sH   **U#e,e,e,',,'v.v.',,'v.v.,"-s)=>"-s)=>r   c                    [         R                  S5      nU R                  US5        [         R                  S5      nUR	                  U5        U R                  US5        UR                  U5        U R                  US5        UR                  SU5        U R                  US5        UR                  U5        UR                  U/5        U R                  US5        UR                  U5        UR                  [        U/5      5        U R                  US5        UR                  U5        [         R                  SSS	9nU R                  US
5        [         R                  S5      nUR	                  U5        U R                  US5        UR                  SU5        U R                  US5        UR                  U5        U R                  US5        UR                  U5        U R                  US
5        U R                  [        5       nUR                  U5        S S S 5        U R                  [        WR                  5      S5        U R                  US
5        XDU/USS& U R                  US   S5        U R                  USS US   US   /5        U R                  US SS2   US   US   /5        USS2	 U R                  US5        g ! , (       d  f       N= f)N<body><tag/></body><body><tag /></body>tag2z<body><tag /><tag2 /></body>r   z<body><tag2 /><tag /></body>rk   r   r   z<tag key="value" />subtagz!<tag key="value"><subtag /></tag>z+<tag key="value"><subtag /><subtag /></tag>zlist.remove(x): x not in list   z
<subtag />	      )r   r   r   r   r   r   r   r   r   r   
ValueErrorr   r   	exception)rI   rc   er   
subelementcms         r   test_simpleopsElementTreeTest.test_simpleopsV  sv    vv+,T#9:JJvAT#ABAT#9:AqT#ABAQCT#ABAD!IT#ABA**U*0W&;<ZZ)
z"W&IJq*%W=	?z"W&IJz"W&;<z*bNN:& +R\\*,KLW&;<"
;!WQZ61
GAJ'?@!AWQZ(@AAaCLW=	? +*s   K


Kc                     U R                  [        R                  S5      S5        U R                  [        R                  S5      S5        U R                  [        R                  S5      S5        g )Nz<tag>hello</tag>z)<tag>&#104;&#101;&#108;&#108;&#111;</tag>z<tag><![CDATA[hello]]></tag>)r   r   r   rI   s    r   
test_cdataElementTreeTest.test_cdata  s[     	RVV$67"	$RVV$OP"	$RVV$BC"	$r   c                    [         R                  " [        R                  S5      5      n[        R                  US9nU R                  UR                  S5      R                  S5        U R                  UR                  S5      R                  S5        [        R                  [        S9nU R                  UR                  S5      R                  S5        U R                  UR                  S5      R                  S5        g )Nr   )rf   rk   section/tagr   zelement/../empty-elementempty-element)
r]   r^   
SAMPLE_XMLr<   r   rC   r   r   rk   SIMPLE_XMLFILE)rI   
stringfilerg   s      r   test_file_initElementTreeTest.test_file_init  s    ZZ
 1 1' :;
~~:~.5)--u5=155u=~~>~29-119=#=>BB	!r   c                    SSK Jn  [        R                  [        5      nUR
                  R                  5         [        S5       H3  n[        R                  U5      R                  S[        U5      -   5        M5     [        UR
                  5      n[        S5       H3  n[        R                  U5      R                  S[        U5      -   5        M5     U R                  [        UR
                  5      U5        [        S5       H3  n[        R                  U5      R                  S[        U5      -   5        M5     U R                  [        UR
                  5      U5        [        S5       H3  n[        R                  U5      R                  S[        U5      -   5        M5     U R                  [        UR
                  5      S5        g )Nr   rF   
   z./   iX  i  )rH   rG   r   r   r  _cacher   rangerC   r   r   r   r   assertGreater
assertLess)rI   rG   rc   icache_len_10s        r   test_path_cacheElementTreeTest.test_path_cache  s*    	*vvj!  "rABNN4055d3q6kB;--.rABNN4055d3q6kB[//0,?rABNN4055d3q6kB3{112LAsAR^^D166tCF{CK../5r   c                    SS K n[        R                  S5      nUR                   " U5      nUR                  " U5      nSUR	                  S5      l        U R                  US5        U R                  US5        U R                  US5        g )Nr   z<tag>hello<foo/></tag>barfooz<tag>hello<bar /></tag>z<tag>hello<foo /></tag>)copyr   r   deepcopyr   rk   r   )rI   r"  e1e2e3s        r   	test_copyElementTreeTest.test_copy  st     	VV,-YYr]]]2"R!:;R!:;R!:;r   c                 .   [         R                  S5      nUR                  S5        U R                  UR                  SS5      S5        UR	                  SS5        U R                  UR                  S5      S5        [         R                  SSS9nU R                  UR                  S5      S5        U R                  UR
                  SS05        SS0n[         R                  SU5      nUR                  5         U R                  UR                  S5      S5        U R                  UR
                  SS05        SS0n[         R                  " S0 UD6nUR                  5         U R                  UR                  S5      S5        U R                  UR
                  SS05        [         R                  SSS0SS9nU R                  UR                  S5      S5        U R                  UR
                  SS05        [         R                  S5      nSUl        UR	                  S	S
5        UR	                  SS5        U R                  [         R                  U5      S5        U R                  [        UR                  5       5      S	S/5        U R                  [        UR                  5       5      SS/5        U R                  UR
                  S   S5        SUR
                  S'   SUR
                  S'   U R                  [         R                  U5      S5        [         R                  S5      nUR	                  SS5        UR	                  SS5        UR	                  SS5        UR	                  SS5        U R                  [         R                  U5      S5        g )Nrk   r   defaultr   r   otherr/   aatestatestvaltestbtest2s-   <test testa="testval" testb="test2">aa</test>)r-  r.  )r/  r0  test1testcs;   <test testa="testval" testb="test1" testc="test2">aa</test>r   r   
r   z	
 r   z

		  s[   <test a="&#13;" b="&#13;&#10;" c="&#09;&#10;&#13; " d="&#10;&#10;&#13;&#13;&#09;&#09;  " />rj   )r   r   r   r   r   r   r   r   tostringsortedr   r   )rI   rc   r   s      r   test_attribElementTreeTest.test_attrib  s    zz% %3Y? %'2zz%Wz-%'2ug&67!zz%(%'2ug&67!zz*6*%'2ug&67zz%%!1wz?%'2ug&67zz&!	)$'"T*@	B		,w.@A

-%'9:	<W-w7&G&GT*N	P zz&!dfi &'T*n	pr   c                    [         R                  S5      nSS0nUR                  SU5      nU R                  UR                  USS9  UR                  U5        U R                  US5        UR                  5         U R                  US5        UR                  U5        U R                  US5        UR                  X3/5        U R                  US	5        U/US S & U R                  US5        [        U/5      US S & U R                  US5        g )
Nrk   r   r   r   zattrib aliasingr   z!<tag><subtag key="value" /></tag><tag />zM<tag><subtag key="value" /><subtag key="value" /><subtag key="value" /></tag>)
r   r   makeelementassertIsNotr   r   r   r   r   tuple)rI   rc   r   subelems       r   test_makeelement ElementTreeTest.test_makeelement  s     zz% !""8V45FGGT#FG

T9-GT#FGW&'T[	])QT#FG	"QT#FGr   c                 `   [         R                  [        5      n[        R                  " 5       nUR                  USS9  U R                  UR                  5       S5        [         R                  [        5      n[        R                  " 5       nUR                  USS9  U R                  UR                  5       S5        [        [        5       nUR                  5       nS S S 5        [         R                  5       nU R                  UR                  S5        UR                  W5        U R                  UR!                  5       S5        [         R#                  5       n[         R                  US9nUR                  U5        U R                  UR!                  5       S5        g ! , (       d  f       N= f)Nr[   r\   zi<root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>z<ns0:root xmlns:ns0="namespace">
   <ns0:element key="value">text</ns0:element>
   <ns0:element>text</ns0:element>tail
   <ns0:empty-element />
</ns0:root>z^Expat target)r   parser  r]   r_   r`   r   ra   SIMPLE_NS_XMLFILEopenread	XMLParserr   versionfeedr   closeTreeBuilder)rI   rg   streamfr=   parserrD  s          r   test_parsefileElementTreeTest.test_parsefile  sC    xx'

6I
.*	 xx)*

6I
.*	 .!Q668D " 4DV\\^	 !V,DV\\^	! "!s   F
F-c                    [         R                  S5      nU R                  [         R                  USS9S5        [         R	                  S5      nU R                  [         R                  USS9S5        / SQn[         R                  U5      nU R                  [         R                  U5      S5        U R                  SR                  [         R                  U5      5      S5        U R                  [         R                  US5      S5        [         R                  S5      u  p4U R                  [        U5      S	5        [         R                  S
5      u  p4U R                  [        U5      S5        U R                  US   R                  S5        g )N<html><body>text</body></html>r[   rB  )z<html><body>ztext</boz
dy></html>   <html><body>text</body></html>r   asciisE   <?xml version='1.0' encoding='ascii'?>
<html><body>text</body></html>r   z(<html><body id='body'>text</body></html>r   body)r   r   r   r5  r   fromstringlistjointostringlistXMLIDr   rk   )rI   r   sequence_idss        r   test_parseliteral!ElementTreeTest.test_parseliteral,  s:   &&9:WyA0	2-- @AWyA0	2=##H-W-1	3"//'":;1	3Wg62	3 :;S1%DES1%V&1r   c           	         [         R                  nU" [        5      nU R                  UR                  5        [        U5      u  p4U R                  UR                  5        U R                  X4R                  4S5        U R                  U VVs/ s H  u  p4X4R                  4PM     snn/ SQ5        U R                  UR                  R                  S5        U" [        5      nU R                  U VVs/ s H  u  p4X4R                  4PM     snn/ SQ5        [        [        S5       nU" U5      n[        U5      u  p4U R                  X4R                  4S5        U R                  U VVs/ s H  u  p4X4R                  4PM     snn/ SQ5        U R                  UR                  R                  S5        S S S 5        SnU" [        U5      nU R                  U VVs/ s H  u  p4X4R                  4PM     snn/ 5        SnU" [        US9nU R                  U VVs/ s H  u  p4X4R                  4PM     snn/ 5        SnU" [        U5      nU R                  U VVs/ s H  u  p4X4R                  4PM     snn/ S	Q5        S
nU" [        U5      nU R                  U VVs/ s H  u  p4US;   a  X4R                  4OX44PM     snn/ SQ5        SnU" [        R                  " S5      U5      nU VVs/ s H  u  p4UPM	     nnnU R                  USS/5        Sn[        [        S5       nU R                  [        5       n	U" X5        S S S 5        U R                  UR                  5        S S S 5        U R                  [!        W	R"                  5      S5        [$        R&                  " U 5         U R                  [        5       n	U" [        U5        S S S 5        U R                  [!        U	R"                  5      S5        A	S S S 5        [        R(                  " S5      nSnU" XV5      nU R                  U VVs/ s H  u  p4X44PM
     snnSS/5        [        R                  " S5      nU" U5      n
[        U
5      u  p4U R                  X4R                  4S5        U R                  [         R*                  5       n	[        U
5        S S S 5        U R                  [!        W	R"                  5      S5        U R-                  [.        R0                  [2        5        [        [2        S5       nUR5                  S5        S S S 5        U" [2        5      n
[        U
5      u  p4U R                  X4R                  4S5        [$        R&                  " U 5         U R                  [         R*                  5       n	[        U
5        S S S 5        U R                  [!        U	R"                  5      S5        A	A
S S S 5        [$        R&                  " U 5         U" [        5      n
A
S S S 5        [$        R&                  " U 5         U" [        5      n
U
R7                  5         A
S S S 5        [$        R&                  " U 5         U" [        5      n
[        U
5      u  p4U R                  X4R                  4S5        A
AS S S 5        [$        R&                  " U 5         U" [        5      n
[        U
5      u  p4U
R7                  5         U R                  X4R                  4S5        A
AS S S 5        U R                  [8        5         U" S5        S S S 5        g s  snnf s  snnf s  snnf ! , (       d  f       GN= fs  snnf s  snnf s  snnf s  snnf s  snnf ! , (       d  f       GN== f! , (       d  f       GN,= f! , (       d  f       GN= f! , (       d  f       GN= fs  snnf ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN?= f! , (       d  f       GN"= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GND= f! , (       d  f       g = f)Nendr   )rb  rc  r  rc  rootrf  )rc  {namespace}elementrg  rc  {namespace}empty-elementrc  {namespace}rootrbr   eventsstartrc  rq  rf  rq  r   rb  rt  rb  )rq  r  rd  re  )rq  rc  start-nsend-ns)
ru  )r   	namespacerq  rl  rq  rh  rg  rz  rg  rq  rj  ri  rk  rv  Nru  rv  z<root xmlns=''/>ru  rv  rq  rc  bogusunknown event 'bogus's   <?xml version='1.0' encoding='iso-8859-1'?>
<body xmlns='http://&#233;ffbot.org/ns'
      xmlns:cl='http://effbot.org/ns'>text</body>
)ru  )ru  )r   u   http://éffbot.org/ns)ru  )u   cléhttp://effbot.org/nsz<document />junk)rc  documentz.junk after document element: line 1, column 12wbs   <document />junknonexistent)r   	iterparser  r   rf  nextr   rk   rF  rG  r]   r_   r   r  assertFalseclosedr   r  r	   check_no_resource_warningr^   
ParseError
addCleanupr   unlinkr   r`   rL  FileNotFoundError)rI   r  contextactionrc   sourcero  resrO  r  r   s              r   test_iterparseElementTreeTest.test_iterparseB  s    LL	N+',,'G}',,'&((+-?@I688,I L 	
 	))62-.I688,I L 	 .$'6'G=LFfhh/1CDWMW\Vvxx0WM P 
 W\\--v6 ( NF3I688,I2NN6:I688,I2N!NF3I688,I 	L 		 8-v6.57.5lf 17:J0J688,39.A.579	 (BKK(;<fE*12',&v'2z845*.$'1"":."!$ /QXX& ( 	R\\*,CD66t<"":.".&1 /S.0GH	 = GH F+WEW\V6.WE=@H 	
 /0vBx&((+-@Ar}}-H .R\\*@	B 		((&1&$1GG'(  vBx&((+-@A66t<""2==1RR 2S.DFB = 66t<>*B = 66t<>*BHHJ =
 66t<>*B8LFfhh/1CDD	 = 66t<>*B8LFHHJfhh/1CDD = 01m$ 21U J J N	 (' J J J7" 3
 /. (' /. =< F .-   21 =< =< =<
 =< =< 21s  \9
3\?
'A]*]1]]
]#
])
"]/
/]5&^<	];#^+^1^.^15_
6_	#_	 _?)_-5/_?`.`#*9`5A	a'	a]
];
^
	^
^
^.	)^11
_ 	
_
_*-
_<	7_??
`
` #
`25
a
a
a'c                 T   [         R                  nU" [        5      nUR                  5         U R	                  [
        5         [        U5        S S S 5        UR                  5         [        [        S5       nU" U5      nUR                  5         U R                  UR                  5        U R	                  [
        5         [        U5        S S S 5        UR                  5         S S S 5        U" [        5      n[        U5      u  pEU R                  XER                  4S5        UR                  5         U R	                  [
        5         [        U5        S S S 5        UR                  5         [        [        S5       nU" U5      n[        U5      u  pEU R                  XER                  4S5        UR                  5         U R                  UR                  5        U R	                  [
        5         [        U5        S S S 5        UR                  5         S S S 5        U" [        5      n[        U5        UR                  5         U R	                  [
        5         [        U5        S S S 5        UR                  5         [        [        S5       nU" U5      n[        U5        UR                  5         U R                  UR                  5        U R	                  [
        5         [        U5        S S S 5        UR                  5         S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNX= f! , (       d  f       GNR= f! , (       d  f       GN= f! , (       d  f       GN`= f! , (       d  f       GNZ= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nrm  rb  )r   r  r  rL  r   StopIterationr  rG  r  r  r   rk   r   )rI   r  r   r  r  rc   s         r   test_iterparse_close$ElementTreeTest.test_iterparse_close  se   LL	~&

}-H .

.$'66"BHHJV]]+""=1R 2HHJ ( ~&Bx&((+-?@

}-H .

.$'66"B8LFfhh/1CDHHJV]]+""=1R 2HHJ ( ~&R

}-H .

.$'66"BHHHJV]]+""=1R 2HHJ ('K .- 21	 (' .- 21 (' .- 21 ('s   L
6A	L.?LL.M :A3M$-M9M$M6	ANN)N

L
L+	&L..
L= 
M
M!	M$$
M36
N
N	N
N'c                    [         R                  S5      nSUl        U R                  US5        S[         R	                  US5      l        U R                  US5        S Ul        U R                  US5        UR                  S[         R                  S	5      5        U R                  US
5        [         R                  SS5      US'   U R                  US5        g )Nrk   r   z<tag>text</tag>subtextr   z'<tag>text<subtag>subtext</subtag></tag>ztext<subtag>subtext</subtag>r   commentz*text<!--comment--><subtag>subtext</subtag>r   r   z)text<?key value?><subtag>subtext</subtag>)	r   r   r   r   
SubElementrk   r   Commentr   rI   rc   s     r   test_writefileElementTreeTest.test_writefile  s    zz% 	T#45-6dH%*T#LM T#ABArzz),-T<	> %%w'QT#NOr   c                     [        [        5       nUR                  5       nS S S 5         " S S[        5      nU" 5       n[        R                  US9nUR                  W5        U R                  U/ SQ5        [        [        5       nUR                  5       nS S S 5         " S S[        5      nU" 5       n[        R                  US9nUR                  U5        U R                  U/ SQ5        g ! , (       d  f       N= f! , (       d  f       Nn= f)Nc                   &    \ rS rSrS rS rS rSrg)4ElementTreeTest.test_custom_builder.<locals>.Builderi"  c                 *    U R                  SU45        g Nrq  r   rI   rk   r   s      r   rq  :ElementTreeTest.test_custom_builder.<locals>.Builder.start#      WcN+r   c                 *    U R                  SU45        g Nrc  r  rI   rk   s     r   rc  8ElementTreeTest.test_custom_builder.<locals>.Builder.end%      UCL)r   c                     g r   r   rI   r   s     r   r=   9ElementTreeTest.test_custom_builder.<locals>.Builder.data'      r   r   N)rU   rV   rW   rX   rq  rc  r=   rY   r   r   r   Builderr  "  s    ,*r   r  rC  rr  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)r  i9  c                 *    U R                  SU45        g r  r  r  s      r   rq  r  :  r  r   c                 *    U R                  SU45        g r  r  r  s     r   rc  r  <  r  r   c                     g r   r   r  s     r   r=   r  >  r  r   c                 *    U R                  SX45        g )Npir  )rI   rD  r=   s      r   r  7ElementTreeTest.test_custom_builder.<locals>.Builder.pi@  s    T601r   c                 *    U R                  SU45        g )Nr  r  )rI   r=   s     r   r  <ElementTreeTest.test_custom_builder.<locals>.Builder.commentB  s    Y-.r   c                 *    U R                  SX45        g )Nru  r  )rI   prefixuris      r   start_ns=ElementTreeTest.test_custom_builder.<locals>.Builder.start_nsD  s    Z56r   c                 *    U R                  SU45        g Nrv  r  rI   r  s     r   end_ns;ElementTreeTest.test_custom_builder.<locals>.Builder.end_nsF      Xv./r   r   N)rU   rV   rW   rX   rq  rc  r=   r  r  r  r  rY   r   r   r   r  r  9  s%    ,*2/70r   ))r  r  r=   )r  	 comment )ru  r   rx  ry  rz  rg  rz  rg  r{  ri  rk  rv  r   )	rG  r  rH  r   r   rI  rK  r   rF  )rI   rO  r=   r  builderrP  s         r   test_custom_builder#ElementTreeTest.test_custom_builder  s     .!Q668D "	d 	 )W-D 	# 		 #$668D %	0d 	0 )W-D # 	W "!. %$s   C.C?.
C<?
Dc                      " S S[         5      nU" 5       n[        R                  US9nUR                  [        R
                  " S5      5        U R                  U/ SQ5        g )Nc                       \ rS rSrS rSrg)@ElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builderi[  c                 *    U R                  SU45        g r  r  r  s     r   r  GElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builder.end_ns\  r  r   r   N)rU   rV   rW   rX   r  rY   r   r   r   r  r  [  s    0r   r  rC  a              <?pi data?>
            <!-- comment -->
            <root xmlns='namespace' xmlns:p='pns' xmlns:a='ans'>
               <a:element key='value'>text</a:element>
               <p:element>text</p:element>tail
               <empty-element/>
            </root>
            ))rv  r   )rv  pr  )r   r   rI  rK  textwrapdedentr   )rI   r  r  rP  s       r   test_custom_builder_only_end_ns/ElementTreeTest.test_custom_builder_only_end_nsZ  sZ    	0d 	0 )W-HOO %  	 	 # 	r   c                     [         R                  S S9nU R                  UR                  [         R                  5        [         R                  5       nU R                  UR                  [         R                  5        g )NrC  )r   rI  r   rD  rM  )rI   rP  parser2s      r   %test_initialize_parser_without_target5ElementTreeTest.test_initialize_parser_without_targetp  sO    T*fmmR^^< ,,.gnnbnn=r   c                 H   [        [        S5       n[        R                  U5      nS S S 5        U R	                  WR                  5       R                  5        Vs/ s H  n[        U5      PM     sn/ SQ/ / / /5        U R	                  UR                  5        Vs/ s H  n[        U5      PM     sn/ SQ/ / / /5        [        R                  [        5      nU R	                  [        [        U5      5      S5        U R	                  [        [        US   5      5      S5        U R	                  US S  [        U5      5        US   nUS   nUSS2	 U R	                  [        [        U5      5      S5        U R	                  XCS   5        U R	                  XSS   5        XT/USS& U R	                  XSS   5        U R	                  XCS   5        U R                  XCS   5        UR                  5         U R	                  [        U5      / 5        g ! , (       d  f       GN= fs  snf s  snf )Nrm  )r   r   r     r   r   r   )rG  r  r   rE  r   r   r   rm   r   r  r   r   assertNotEqualr   )rI   rO  rg   rc   child1child2s         r   test_childrenElementTreeTest.test_childreny  s    .$'188A;D (&*lln&9&9&;=&;d ).&;=7	?	 	&*iik3&1d ).&137	5	 vvj!T$Z!,T$q']+Q/a$t*-aa1IT$Z!,a)a)$Qq	a)a)FG,

dR(A ('=3s   HHH
Hc                     [         R                  S5      nU R                  [         R                  U5      S5        [         R	                  S5      nU R                  [         R                  U5      S5        g )NrT  rU  )r   r   r   r5  r   r  s     r   test_writestring ElementTreeTest.test_writestring  sT    vv67T*,MN}}=>T*,MNr   c                    [         R                  S5      n[         R                  U5        U R                  [         R	                  U5      S5        [         R                  S5      n[         R                  U5        U R                  [         R	                  U5      S5        [         R                  S5      n[         R                  U5        U R                  [         R	                  U5      S5        [         R                  S5      n[         R                  U5        U R                  [         R	                  U5      S5        [         R                  S5      n[         R                  U5        U R                  [         R	                  U5      S	5        [         R                  S
5      n[         R                  U5        U R                  [         R	                  U5      S5        g )Nz<root></root>s   <root />rT  s"   <html>
  <body>text</body>
</html>z!<html> <body>text</body>  </html>z"<html><body>text</body>tail</html>s%   <html>
  <body>text</body>tail</html>z=<html><body><p>par</p>
<p>text</p>	<p><br/></p></body></html>s^   <html>
  <body>
    <p>par</p>
    <p>text</p>
    <p>
      <br />
    </p>
  </body>
</html>8<html><body><p>pre<br/>post</p><p>text</p></body></html>sJ   <html>
  <body>
    <p>pre<br />post</p>
    <p>text</p>
  </body>
</html>r   r   indentr   r5  r  s     r   test_indentElementTreeTest.test_indent  sD   vvo&
		$T*K8vv67
		$T*,STvv9:
		$T*,STvv:;
		$T*,UVvvWX
		$KK	
 vvPQ
		$KK	
r   c                 <   [         R                  S5      n[         R                  USS9  U R                  [         R	                  U5      S5        [         R                  S5      n[         R                  USS9  U R                  [         R	                  U5      S5        g )Nr  	)spacesD   <html>
	<body>
		<p>pre<br />post</p>
		<p>text</p>
	</body>
</html>r   s>   <html>
<body>
<p>pre<br />post</p>
<p>text</p>
</body>
</html>r  r  s     r   test_indent_space!ElementTreeTest.test_indent_space  s    vvPQ
		$d	#KK	
 vvPQ
		$b	!KK	
r   c                 l   [         R                  S5      n[         R                  U5        U R                  UR	                  5        Vs1 s H  o"R
                  iM     sn1 Sk5        U R                  UR	                  5        Vs1 s H  o"R                  iM     sn1 Sk5        U R                  [        UR	                  5        Vs1 s H  o"R
                  iM     sn5      [        UR	                  5        Vs1 s H  n[        UR
                  5      iM     sn5      5        g s  snf s  snf s  snf s  snf )Nz@<html><body><p>par</p><p>text</p><p><br/></p><p /></body></html>>   N

  
    >   Nparr   r  r  
      )	r   r   r  r   r   r   r   r   id)rI   rc   els      r   test_indent_space_caching)ElementTreeTest.test_indent_space_caching  s    vvXY
		$#yy{+{WW{+*	
 	#yy{+{WW{+?	
 	499;/;R;/0tyy{3{BGG{34	
 , , 03s   D"D'D,7D1c                    [         R                  S5      nU R                  [        5         [         R	                  USS9  S S S 5        U R                  [         R                  U5      S5        [         R	                  USS9  U R                  [         R                  U5      S5        [         R                  S5      n[         R	                  USSS	9  U R                  [         R                  U5      S
5        g ! , (       d  f       N= f)Nr  )levels9   <html><body><p>pre<br />post</p><p>text</p></body></html>r   s^   <html>
      <body>
        <p>pre<br />post</p>
        <p>text</p>
      </body>
    </html>r    )r  r  sI   <html>
  <body>
   <p>pre<br />post</p>
   <p>text</p>
  </body>
 </html>)r   r   r   r  r  r   r5  r  s     r   test_indent_level!ElementTreeTest.test_indent_level  s    vvPQz*IId"I% +KKH	

 			$a	 KK	
 vvPQ
		$as	+KK	
) +*s   C66
Dc                     [         R                  S5      nU R                  [         R                  USS9S5        U R                  [         R                  USSS9S5        g )N0<body xmlns="http://effbot.org/ns"><tag/></body>r[   rB  A<ns0:body xmlns:ns0="http://effbot.org/ns"><ns0:tag /></ns0:body>r  r\   default_namespace1<body xmlns="http://effbot.org/ns"><tag /></body>r   r   r   r5  r  s     r   test_tostring_default_namespace/ElementTreeTest.test_tostring_default_namespace  sX    vvHIKKyK1O	
 	KKyDZK[?	
r   c                 x    [         R                  S5      nU R                  [         R                  USSS9S5        g )Nr   r[   foobarr  zP<ns1:body xmlns="foobar" xmlns:ns1="http://effbot.org/ns"><ns1:tag /></ns1:body>r  r  s     r   3test_tostring_default_namespace_different_namespaceCElementTreeTest.test_tostring_default_namespace_different_namespace$  s4    vvHIKKyHKM^	
r   c                     [         R                  S5      nSnU R                  [        U5         [         R	                  USSS9  S S S 5        g ! , (       d  f       g = f)Nr   z>^cannot use non-qualified names with default_namespace option$r[   r	  r  )r   r   assertRaisesRegexr  r5  )rI   rc   EXPECTED_MSGs      r   5test_tostring_default_namespace_original_no_namespaceEElementTreeTest.test_tostring_default_namespace_original_no_namespace+  sD    vv+,W##J=KKyHKM >==s   A
Ac                 v    [         R                  S5      nU R                  [         R                  USS9S5        g )Nr   r[   rB  r   r  r  s     r    test_tostring_no_xml_declaration0ElementTreeTest.test_tostring_no_xml_declaration1  s2    vv+,KKyK1"	
r   c                 x    [         R                  S5      nU R                  [         R                  USSS9S5        g )Nr   utf8Tr\   xml_declarations:   <?xml version='1.0' encoding='utf8'?>
<body><tag /></body>r  r  s     r   test_tostring_xml_declaration-ElementTreeTest.test_tostring_xml_declaration8  s4    vv+,KKvtKDJ	
r   c                 x    [         R                  S5      nU R                  [         R                  USSS9S5        g )Nr   r[   Tr  ;<?xml version='1.0' encoding='utf-8'?>
<body><tag /></body>r  r  s     r   .test_tostring_xml_declaration_unicode_encoding>ElementTreeTest.test_tostring_xml_declaration_unicode_encoding?  s4    vv+,KKy$KGJ	
r   c           
          [         R                  S5      n/ SQnU HK  u  p4nU R                  SU SU 35         U R                  [         R	                  UUUS9U5        S S S 5        MM     g ! , (       d  f       M_  = f)N   <body><tag>ø</tag></body>))   <body><tag>&#248;</tag></body>NN)   <body><tag>ø</tag></body>UTF-8N)r   US-ASCIIN)E   <?xml version='1.0' encoding='ISO-8859-1'?>
<body><tag></tag></body>
ISO-8859-1N)r  r[   N)r   NF)r!  r"  F)r   r#  F)s   <body><tag></tag></body>r%  F)r  r[   F)sH   <?xml version='1.0' encoding='us-ascii'?>
<body><tag>&#248;</tag></body>NT)sA   <?xml version='1.0' encoding='UTF-8'?>
<body><tag>ø</tag></body>r"  T)sH   <?xml version='1.0' encoding='US-ASCII'?>
<body><tag>&#248;</tag></body>r#  T)r$  r%  T)uA   <?xml version='1.0' encoding='utf-8'?>
<body><tag>ø</tag></body>r[   Tz	encoding=z xml_declaration=r  )r   r   subTestr   r5  )rI   rc   	TESTCASESexpected_retvalr\   r  s         r   #test_tostring_xml_declaration_cases3ElementTreeTest.test_tostring_xml_declaration_casesF  s    vv23
	< ;D6O	( 411@0AC D  KK!)(7   
 $D D ;DD Ds   &A,,
A;	c           
          [         R                  S5      nU R                  SR                  [         R	                  USS95      S5        U R                  SR                  [         R	                  USSS95      S5        g )	Nr   r   r[   rB  r  r  r  r  )r   r   r   rY  rZ  r  s     r   #test_tostringlist_default_namespace3ElementTreeTest.test_tostringlist_default_namespacer  sj    vvHIGGBOOD9O=>O	
 	GGBOOD9PfOgh?	
r   c           	         [         R                  S5      nU R                  SR                  [         R	                  USS95      S5        U R                  SR                  [         R	                  USS95      S	5        [         R	                  USSS
9nU R                  SR                  U5      S5        U R                  US   S5        U R                  / SQUSS  5        g )Nr   r   r[   rB  r   r   T)r  s>   <?xml version='1.0' encoding='us-ascii'?>
<body><tag /></body>r  r  r   z%^<\?xml version='1.0' encoding='.+'?>)z<body>z<tagz />z</body>r   )r   r   r   rY  rZ  r   )rI   rc   
stringlists      r   !test_tostringlist_xml_declaration1ElementTreeTest.test_tostringlist_xml_declaration}  s    vv+,GGBOOD9O=>"	
 	HHR__T4_@AN	

 __TIt_T
GGJJ	
 	A(PQA:ab>Rr   c           
        ^ ^ SU 4S jjnU" SS5        U" SS5        U" SS5        U" SS5        U" S	S
5        U" SS5        S mU4S jn/ SQnU HA  nT R                  [        R                  [        R                  U" U5      5      5      S5        MC     / SQnU H.  nT R	                  [
        [        R                  U" U5      5        M0     / SQnU H8  nT R	                  [        R                  [        R                  U" U5      5        M:     T R	                  [
        [        R                  T" S5      R                  S5      5        T R	                  [        [        R                  T" S5      R                  S5      5        g )Nc                    > SU < SU< S3nTR                  [        R                  UR                  U 5      5      R                  U5        TR                  [        R                  U5      R                  U5        g )Nz<?xml version='1.0' encoding='z'?><xml>z</xml>)r   r   r   r<   r   )r\   rW  xmlrI   s      r   check,ElementTreeTest.test_encoding.<locals>.check  sU    d$CRVVCJJx$89>>ERVVC[--t4r   rV  r   us-ascii
iso-8859-1   ½ziso-8859-15u   €cp437u   √	mac-romanu   ˚c                     SU -  $ )Nz*<?xml version='1.0' encoding='%s'?><xml />r   rB  s    r   r5  *ElementTreeTest.test_encoding.<locals>.xml  s    ?(JJr   c                 2   > T" U 5      R                  U 5      $ r   )r<   )r\   r5  s    r   bxml+ElementTreeTest.test_encoding.<locals>.bxml  s    x=''11r   )CrV  r   z	utf-8-sigutf-16utf-16beutf-16lez	iso8859-1z	iso8859-2z	iso8859-3z	iso8859-4z	iso8859-5z	iso8859-6z	iso8859-7z	iso8859-8z	iso8859-9z
iso8859-10z
iso8859-13z
iso8859-14z
iso8859-15z
iso8859-16r;  cp720cp737cp775cp850cp852cp855cp856cp857cp858cp860cp861cp862cp863cp865cp866cp869cp874cp1006cp1125cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258zmac-cyrillicz	mac-greekzmac-icelandz
mac-latin2r<  zmac-turkishz
iso2022-jpziso2022-jp-1ziso2022-jp-2ziso2022-jp-2004ziso2022-jp-3ziso2022-jp-extzkoi8-rzkoi8-tzkoi8-ukz1048hzptcp154s   <xml />)big5	big5hkscscp932cp949cp950zeuc-jpzeuc-jis-2004zeuc-jisx0213zeuc-krgb2312gbkgb18030z
iso2022-krjohabz	shift-jiszshift-jis-2004zshift-jisx0213zutf-7)
cp037cp424cp500cp864cp875cp1026cp1140utf_32	utf_32_be	utf_32_le	undefinedxxx)r   )	r   r   r5  r   r   r  r  r<   LookupError)rI   r6  r@  supported_encodingsr\   &unsupported_ascii_compatible_encodings(unsupported_ascii_incompatible_encodingsr5  s   `      @r   test_encodingElementTreeTest.test_encoding  s:   	5
 	gsj#lF#mX&gx k8$	K	2
" ,HR[[X)?@*M ,2
. ?Hj"&&$x.A ?4
0 AHbmmRVVT(^D A 	*bffc+.>.E.Eg.NO+rvvs5z/@/@/IJr   c                 B   [         R                  S5      nSUl        U R                  [	        U5      S5        U R                  [	        US S9S5        U R                  [	        USS9S5        U R                  [	        USS9S5        U R                  [	        USS9S	5        g )
Nz-<html><link/><script>1 &lt; 2</script></html>r  z/<html><link /><script>1 &lt; 2</script></html>
r   r5  htmlz*<html><link><script>1 < 2</script></html>
r   z1 < 2
)r   r   r   r   rh   rI   r  s     r   test_methodsElementTreeTest.test_methods  s     FFBC1B	D1T2B	D1U3B	D1V4=	?1V4i@r   c                     [         R                  S5      nU R                  [        U5      S5        U R                  [        USS9S5        g )Nz(<html><CamelCase>text</CamelCase></html>r  r  r   r   r   rh   r  s     r   test_issue18347ElementTreeTest.test_issue18347  sB    FF=>1:	<1V4:	<r   c                     [         R                  S5      nU R                  [        USS9S5        U R	                  US5        U R                  [         R                  5       n[         R                  S5        S S S 5        U R                  [        WR                  5      S5        U R                  [         R                  5       n[         R                  [        5        S S S 5        U R                  [        UR                  5      S5        [         R                  5       nS	UR                  S
'   UR                  [        5        UR                  5       nU R	                  US5        U R                  [         R                  5       n[         R                  [        5        S S S 5        U R                  [        UR                  5      S5        g ! , (       d  f       GN[= f! , (       d  f       GN= f! , (       d  f       NX= f)Nz*<document title='&#x8230;'>test</document>r8  rB  s*   <document title="&#33328;">test</document>u%   <document title="舰">test</document>z<document>&entity;</document>z#undefined entity: line 1, column 10z,undefined entity &entity;: line 5, column 10r   entityz<document>text</document>z,undefined entity &entity;: line 4, column 10)r   r   r   rh   r   r   r  r   r  
ENTITY_XMLrI  r  rK  rL  EXTERNAL_ENTITY_XML)rI   r  r  rP  rf  s        r   test_entityElementTreeTest.test_entity  si   
 FF?@1z:=	?Q JK r}}-FF23 .R\\*5	7 r}}-FF: .R\\*>	@
 "(hJ||~T#>? r}}-FF&' .R\\*>	@- .-
 .- .-s$   !GGG/
G
G,/
G=c                    [         R                  S5      nU R                  US5        [         R                  S5      nU R                  US5        [         R                  S5      nU R                  US5        [         R                  S5      nU R                  US5        [         R                  [        5      nU R                  US	5        g )
Nz<tag xml:lang='en' />z<tag xml:lang="en" />zC<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' />zC<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" />z7<html:html xmlns:html='http://www.w3.org/1999/xhtml' />z7<html:html xmlns:html="http://www.w3.org/1999/xhtml" />zG<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope' />zE<ns0:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope" />z<ns0:body xmlns:ns0="http://effbot.org/ns">
  <ns0:tag>text</ns0:tag>
  <ns0:tag />
  <ns0:section>
    <ns0:tag>subtext</ns0:tag>
  </ns0:section>
</ns0:body>)r   r   r   SAMPLE_XML_NSr  s     r   test_namespaceElementTreeTest.test_namespace  s    
 vv-.T#:; vv[\TQ	S vvOPTE	G vv_`TS	U vvm$T	r   c                    [         R                  S5      nU R                  US5        [         R                  [         R                  S5      5      nU R                  US5        [         R                  [         R                  SS5      5      nU R                  US5        [         R                  [         R                  SS5      5      n[         R	                  U[         R                  SS5      5      n[         R	                  U[         R                  SS5      5      nU R                  US5        UR                  5         SUR                  S	'   U R                  US
5        UR                  5         SUR                  [         R                  S	5      '   U R                  US
5        UR                  5         SUR                  S	'   U R                  US5        UR                  5         [         R                  S5      UR                  S	'   U R                  US5        UR                  5         [         R                  S5      n[         R                  S5      UR                  S'   UR                  U5        UR                  U5        U R                  US5        U R                  [        [         R                  SS5      5      S5        U R                  [        [         R                  S5      5      S5        [         R                  SS5      n[         R                  SS5      nU R                  X45        [         R                  SS5      nU R                  X45        U R                  US5        U R                  US5        g )Nz{uri}tagz<ns0:tag xmlns:ns0="uri" />r  rk   tag1r   z;<ns0:tag xmlns:ns0="uri"><ns0:tag1 /><ns0:tag2 /></ns0:tag>r   z{uri}keyz+<ns0:tag xmlns:ns0="uri" ns0:key="value" />z
{uri}valuez0<ns0:tag xmlns:ns0="uri" ns0:key="{uri}value" />z/<ns0:tag xmlns:ns0="uri" ns0:key="ns0:value" />z{uri2}valuez	{uri1}keyz{<ns0:tag xmlns:ns0="uri" xmlns:ns1="uri1" xmlns:ns2="uri2"><tag ns1:key="ns2:value" /><tag ns1:key="ns2:value" /></ns0:tag>nsz{ns}tagz	other-tagzns:tag)r   r   r   QNamer  r   r   r   r   r   r  )rI   rc   r>  q1q2s        r   
test_qnameElementTreeTest.test_qname'  s   
 zz*%T#@Azz"((:./T#@Azz"((5%01T#@Azz"((5%01--bhhuf&=>--bhhuf&=>TI	K
 	

")JT9	; 	

,3BHHZ()T9	; 	

".JT>	@ 	

"$((<"8JT=	? 	

**U#&(hh}&={#GGT	 	RXXdE23Y?RXXi019=XXdE"XXdE" XXdK(B#B)Y'r   c                 .    [         R                  S5      ng )Nz<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>)r   r   r  s     r   test_doctype_public#ElementTreeTest.test_doctype_publich  s     vv $ %r   c                   ^ ^ SSK Jm  S>UU 4S jjnU" SS/5        U" SSS/5        U" SS	S
/5        U" SS	S/5        U" S/ SQ5        U" S/ SQ5        U" S/ SQ5        U" S/ SQ5        U" S/ SQ5        U" SSS/5        U" S/ SQ5        U" SS/5        U" S/ SQ5        U" SS/5        U" S/ S Q5        U" S!/ S"Q5        U" S#/ S$Q5        U" S%S	S&/5        U" S'S'/5        U" S(/ S)Q5        U" S*/ S+Q5        U" S,S,/5        U" S-S-/5        U" S.S./5        U" S/S//5        U" S0/ S1Q5        U" S2/ S3QS4S505        U" S6S7/S8S505        U" S9S	S7/S4S505        U" S:S	S6/S8S505        U" S;S	S</S8S505        U" S%S	S&/S5S5S=.5        g )?Nr   rF   c                    > TR                  TR                  X5       VVs/ s H  u  p4U=(       d    UPM     snnU5        g s  snnf r   )r   xpath_tokenizer)r  r   
namespacesoprk   rG   rI   s        r   r6  3ElementTreeTest.test_xpath_tokenizer.<locals>.checks  sJ    -8-H-H-WY-W'" !iCi-WY%' Ys   A
r   ztext()r   ()z@name@r   z@*zpara[1])para[1]zpara[last()])r  r  lastr  r  z*/para)r   /r  z/doc/chapter[5]/section[2])r  docr  chapterr  5r  r  sectionr  2r  zchapter//para)r  //r  z//parar  r  z//olist/item)r  olistr  item.z.//para)r  r  r  ..z../@lang)r  r  r  langzchapter[title])r  r  titler  z#employee[@secretary and @assistant])
employeer  r  	secretaryr   andr   r  	assistantr  z	@{ns}attrz{ns}attr{http://spam}eggz
./spam.egg)r  r  zspam.eggz.//{http://spam}egg)r  r  r  z{ns}*{}*{*}tag{*}*z	.//{*}tag)r  r  r  z
./xsd:type)r  r  &{http://www.w3.org/2001/XMLSchema}typexsdz http://www.w3.org/2001/XMLSchematyper  r   z	@xsd:typez@typez@{*}typez{*}type)r   r  r   )rH   rG   )rI   r6  rG   s   ` @r   test_xpath_tokenizer$ElementTreeTest.test_xpath_tokenizerp  s   )	' 	' 	cC5h'gV}%dS#Ji01n>?h*+*.	/ 	o89hv'n:;cC5i,-dTFj23 >?3 6K 	L 	kC,- #5"67l23#%DE 	gy!eeWh
#fvhk01 	lP89	;f?@56	8kC!IJ89	;gV}56	8j3	*56	8kC,579	:r   c                    U R                  [        R                  [        R                  SS5      5      S5        U R                  [        R                  [        R	                  SS5      5      S5        U R                  [        R                  [        R	                  SS5      5      S5        U R                  [        R                  [        R	                  SS5      S5      S5        g )	Nr/   instructions   <?test instruction?>z
<testing&>s   <?test <testing&>?>u   <testing&>ãzlatin-1s=   <?xml version='1.0' encoding='latin-1'?>
<?test <testing&>?>)r   r   r5  r   r   r	  s    r   test_processinginstruction*ElementTreeTest.test_processinginstruction  s     	R%=%=fm%TU'	)RUU6=%AB'	)
 	RUU6<%@A&	(RUU63C%DiP+	,r   c                     S H  nXR                  5       4 Hp  nSU-  n[        [        R                  SU-  5      SS9nU R	                  XC5        [        [        R                  SU< SU< S35      SS9nU R	                  XC5        Mr     M     g )	N)AREABASEBASEFONTBRCOLEMBEDFRAMEHRIMGINPUTISINDEXLINKMETAPARAMSOURCETRACKWBRz<%s>z<%s />r  r  <z></r/  )lowerrh   r   r   r   )rI   r   rc   r   
serializeds        r   #test_html_empty_elems_serialization3ElementTreeTest.test_html_empty_elems_serialization  s~    2G !--/2!D=&rvvho'>vN
  6&rvvT$.G'H.46
  6 32r   c                     [         R                  SSSS9n[        R                  " 5        n[         R	                  U5        S S S 5        U R                  WR                  5       S5        g ! , (       d  f       N/= f)N
cirriculumpublicexamplestatuscompanyz1<cirriculum status="public" company="example" />
)r   r   r   captured_stdoutdumpr   ra   )rI   r  stdouts      r   test_dump_attribute_order)ElementTreeTest.test_dump_attribute_order  sX    JJ|HiJH$$&&GGAJ '*M	O '&s   A**
A8c                     [         R                  SSSS9nU R                  [        U5      S5        U R                  [        USS9S5        g )	Nr  r  r  r  z0<cirriculum status="public" company="example" />r  r  z;<cirriculum status="public" company="example"></cirriculum>)r   r   r   rh   rI   rf  s     r   test_tree_write_attribute_order/ElementTreeTest.test_tree_write_attribute_order  sI    zz,xzK4K	M47M	Or   c                 x    [         R                  [        5      nU R                  US   R                  SS05        g )Nr   z*{http://www.w3.org/XML/1998/namespace}langeng)r   r   ATTLIST_XMLr   r   r  s     r   test_attlist_default$ElementTreeTest.test_attlist_default  s1    }}[)aFN	Pr   r   N)5rU   rV   rW   rX   r   r   r   r   r   r  r
  r  r  r'  r7  r?  rQ  r_  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r)  r,  r1  r}  r  r  r  r  r  r  r  r  r  r  r  r  rY   r   r   r   r   r      s   44 &A:F?6*?X$	!6 
<4plH,+Z2,U%n1fP";z,>#)JO*
X
2
 
@	

N


*X	
S&9KvA<#@JB?(B%8:t, 7OOPr   r   c                      \ rS rSrSS jrSS jrSS jrSS jrSS jrS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS r\R.                  " \R2                  S:  S\R2                   S35      S 5       rS rSrg)XMLPullParserTesti  Nc                     Uc  UR                  U5        O2[        S[        U5      U5       H  nUR                  X%XS-    5        M     U(       a  UR                  5         g g Nr   )rK  r  r   flush)rI   rP  r=   
chunk_sizer  r  s         r   _feedXMLPullParserTest._feed  sO    KK1c$i4D1<01 5LLN r   c           	          U R                  [        UR                  5       U5       VVs/ s H  u  pEXER                  UR                  44PM      snnU5        g s  snnf r   )r   r   read_eventsrk   r   )rI   rP  r   
max_eventseventrc   s         r   assert_eventsXMLPullParserTest.assert_events  sX     &v'9'9';Z HJ H hh		*+ HJ	Js   %A
c                 j    U R                  [        [        UR                  5       U5      5      U5        g r   )r   r   r   r  )rI   rP  r   r  s       r   assert_event_tuples%XMLPullParserTest.assert_event_tuples  s+    **,j9:	r   c                     [        UR                  5       U5      nU R                  U VVs/ s H  u  pVXVR                  4PM     snnU5        g s  snnf r   )r   r  r   rk   )rI   rP  r   r  ro  r  rc   s          r   assert_event_tags#XMLPullParserTest.assert_event_tags  sE    **,j9H688,H!	#Hs   A
c                 .   [         R                  5       nU R                  U/ 5        U R                  USX5        U R                  U/ 5        U R                  USX5        U R                  U/ 5        U R                  USX5        U R                  US/5        U R                  USX5        U R                  USX5        U R                  USS/5        U R                  USX5        U R                  US	/5        U R	                  UR                  5       5        g )
N<!-- comment -->
z+<root>
  <element key='value'>text</element>
rb  <element>text</element>tail
<empty-element/>
rd  </root>
re  r   XMLPullParserr  r  r   rL  )rI   r  r  rP  s       r   test_simple_xml!XMLPullParserTest.test_simple_xml  s   !!#vr*

6/Cvr*

6A	& 	vr*

65*4v(:';<

6:JN

6/Cv$( 	 	

6;
:v'89&,,.)r   c                 $    U R                  SSS9  g )Nr   Tr  r  r  r	  s    r   test_simple_xml_chunk_1)XMLPullParserTest.test_simple_xml_chunk_1      6r   c                 $    U R                  SSS9  g )N   Tr  r  r	  s    r   test_simple_xml_chunk_5)XMLPullParserTest.test_simple_xml_chunk_5  r  r   c                 "    U R                  SS9  g )N   )r  r  r	  s    r   test_simple_xml_chunk_22*XMLPullParserTest.test_simple_xml_chunk_22  s    +r   c                    [         R                  5       nUR                  5       nU R                  US5        [	        U5      u  p4U R                  X4R                  4S5        U R                  US5        [	        U5      u  p4U R                  X4R                  4S5        U R                  [        5         [	        U5        S S S 5        g ! , (       d  f       g = f)Nz-<root>
  <element key='value'>text</element>
rb  r  re  )	r   r  r  r  r  r   rk   r   r  )rI   rP  r   r  rc   s        r   test_feed_while_iterating+XMLPullParserTest.test_feed_while_iterating  s    !!#!

6LMBx&((+-?@

6;'Bx&((+_=}-H .--s   2C
Cc                 j   [         R                  5       nU R                  U/ 5        U R                  US5        U R                  U/ 5        U R                  US5        U R                  U/ 5        U R                  US5        U R                  U/ 5        U R                  US5        U R                  US/5        U R                  US5        U R                  US5        U R                  USS/5        U R                  US	5        U R                  US
/5        U R	                  UR                  5       5        g )Nr
  <root xmlns='namespace'>
"<element key='value'>text</elementr  rg  r  r  ri  r  rk  r  rI   rP  s     r   test_simple_xml_with_ns)XMLPullParserTest.test_simple_xml_with_ns$  s   !!#vr*

6/0vr*

678vr*

6?@vr*

65!v(E'FG

6:;

6/0v)/( 	 	

6;'v(B'CD&,,.)r   c                    [         R                  SS9nU R                  US5        U R                  US5        U R                  [	        UR                  5       5      S/5        U R                  US5        U R                  US5        U R                  US5        U R                  US	5        U R                  US
5        U R                  [	        UR                  5       5      S/5        U R                  UR                  5       5        g )Nr}  rn  r
  r%  rw  r&  r  r  r  r  r|  )r   r  r  r   r   r  r   rL  r'  s     r   test_ns_events XMLPullParserTest.test_ns_events9  s    !!)?!@

6/0

678##%&,-	/ 	

6?@

65!

6:;

6/0

6;'f00236F5GH&,,.)r   c                 N   [         R                  SS9nU R                  US5        U R                  USS/SS9  U R	                  US/S	S9  U R                  US
5        U R	                  USS/5        U R                  US5        UR                  5         U R	                  US/5        g )N)ru  rq  rc  rn   <tag xmlns='abc' xmlns:p='xyz'>
ru  )r   abcru  )r  xyzr   r  rq  {abc}tagr   
<child />
rq  
{abc}childrc  r8  </tag>
rc  r5  r   r  r  r  r  rL  r'  s     r   test_ns_events_start&XMLPullParserTest.test_ns_events_startH  s    !!)E!F

6>?  %&*
  	! 	 	v!(
 	 	 	

6=)v#!(
 	
 	

6:&v(
 	r   c                 t   [         R                  SS9nU R                  US5        U R                  USS/SS9  U R	                  US/S	S9  U R                  US
5        U R	                  USS/5        U R                  US5        UR                  5         U R	                  US/S	S9  U R                  USS/5        g )N)ru  rq  rc  rv  rn  r.  r/  r1  r   r3  r4  r   r6  r7  r9  r:  r;  r|  r<  r'  s     r   test_ns_events_start_end*XMLPullParserTest.test_ns_events_start_end_  s    !!)O!P

6>?  %&*
  	! 	 	v!(
 	 	 	

6=)v#!(
 	
 	

6:&v(
 	 	 	  *
 	r   c                    [         R                  SS9nU R                  US5        U R                  U/ 5        [         R                  SS9nU R                  US5        U R	                  U/ 5        [         R                  SS9nU R                  US5        U R                  US/5        U R                  US5        U R                  US	/5        U R                  US
5        U R                  US/5        U R                  US5        U R                  U/ SQ5        U R                  US5        U R                  UR                  5       5        U R                  US/5        [         R                  SS9nU R                  US5        U R                  U/ 5        U R                  US5        U R                  US/5        U R                  US5        U R                  US	/5        U R                  US
5        U R                  U/ 5        U R                  US5        U R                  USS/5        U R                  US5        U R                  UR                  5       5        g )Nr   rn  z<root/>
rp  <!-- text here -->
z<root>
rs  r&  rt  r  rb  z8<element xmlns='foo'>text<empty-element/></element>tail
)rq  {foo}elementrq  {foo}empty-element)rc  rG  )rc  rE  z</root>re  )rq  r
  rD  rF  )r   r  r  r  r  r   rL  r'  s     r   test_eventsXMLPullParserTest.test_eventsz  s%   !!!,

6;'vr*!!)9!:

61262&!!)9!:

6:&v(9':;

6?@v(<'=>

65!v(:';<

6N	Pv ( 	 	

69%&,,.)v'89!!!4

6/0vr*

6:&v(9':;

6?@v(<'=>

65!vr*

6N	Pv%+( 	 	

69%&,,.)r   c                 
   [         R                  SS9nU R                  US5        U R                  US[         R                  S44/5        U R                  US5        U R                  US[         R                  S44/5        U R                  US5        U R                  US	/5        U R                  US
5        U R                  US[         R                  S44/5        U R                  US5        U R                  US/5        U R                  US5        U R                  US[         R                  S44/5        [         R                  SS9nU R                  US5        U R                  US[         R                  S44/5        g )N)rq  r  rc  rn  rC  r  z text here z<!-- more text here -->
z more text here z<root-tag>text)rq  root-tagz<!-- inner comment-->
z inner commentz</root-tag>
)rc  rK  z<!-- outer comment -->
z outer comment )r  )r   r  r  r  r  r  r'  s     r   test_events_comment%XMLPullParserTest.test_events_comment  sa   !!)D!E

6126Y]0K$L#MN

6676Y=O0P$Q#RS

6+,v(='>?

6456Y=M0N$O#PQ

6?+v(;'<=

6566Y=N0O$P#QR!!!6

6126Y]0K$L#MNr   c                 ,   [         R                  SS9nU R                  US5        U R                  US[         R                  S44/5        [         R                  SS9nU R                  US5        U R                  US[         R                  S44/5        g )	N)rq  r  rc  rn  z<?pitarget?>
r  pitarget)r  z<?pitarget some text ?>
zpitarget some text )r   r  r  r  r   r'  s     r   test_events_pi XMLPullParserTest.test_events_pi  s    !!)?!@

6+,6TBEE:+>$?#@A!!!1

6676TBEE3H+I$J#KLr   c                    SS1n[         R                  US9nU R                  US5        U R                  USS/5         " S S5      n[         R                  U" 5       S9nU R                  US5        U R                  USS/5        g )	Nrc  rq  rn  z<foo>bar</foo>)rq  r!  )rc  r!  c                   &    \ rS rSrS rS rS rSrg)9XMLPullParserTest.test_events_sequence.<locals>.DummyIteri  c                 (    [        / SQ5      U l        g )N)rq  rc  ru  )r   ro  r	  s    r   __init__BXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__init__  s    "#?@r   c                     U $ r   r   r	  s    r   __iter__BXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__iter__  s    r   c                 ,    [        U R                  5      $ r   )r  ro  r	  s    r   r   BXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__next__  s    DKK((r   rn  N)rU   rV   rW   rX   rV  rY  r   rY   r   r   r   	DummyIterrT    s    A)r   r]  )r   r  r  r  )rI   eventsetrP  r]  s       r   test_events_sequence&XMLPullParserTest.test_events_sequence  s    7#!!!2

6+,v(8.'IJ	) 	) !!!5

6+,v(8.'IJr   c                    U R                  [        5         [        R                  SS9  S S S 5        U R	                  [        S5         [        R                  S S 5       S9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr~  rn  r  c              3   @   #    U  H  oR                  5       v   M     g 7fr   )decode).0r   s     r   	<genexpr>7XMLPullParserTest.test_unknown_event.<locals>.<genexpr>  s     $V9UAXXZZ9Us   )s   starts   ends   bogus)r   r  r   r  r  r	  s    r   test_unknown_event$XMLPullParserTest.test_unknown_event  si    z*$=> +##J0GH$V9U$VW IH +*HHs   A,A=,
A:=
Br      r   zExpat z" does not support reparse deferralc                 0   [         R                  SS9nS H  nUR                  U5        M     U R                  U/ 5        [         [        L a3  U R                  UR                  R                  R                  5       5        UR                  5         U R                  US/5        [         [        L a3  U R                  UR                  R                  R                  5       5        UR                  S5        UR                  5         U R                  US/5        g )Nrp  rn  z<docr/  rq  r  </doc>rc  r  )
r   r  rK  r  r   r   _parserGetReparseDeferralEnabledr  rL  rI   rP  chunks      r   #test_flush_reparse_deferral_enabled5XMLPullParserTest.test_flush_reparse_deferral_enabled  s     !!)9!:"EKK # 	vr*:OOFNN22LLNOv(8'9::OOFNN22LLNOHv'78r   c                    [         R                  SS9nS H  nUR                  U5        M     [        R                  S:  aU  [         [
        La  U R                  S5        UR                  R                  R                  S5        U R                  U/ 5        [         [
        L a3  U R                  UR                  R                  R                  5       5        UR                  5         U R                  US/5        [         [
        L a3  U R                  UR                  R                  R                  5       5        UR                  S5        UR                  5         U R                  US	/5        g )
Nrp  rn  rl  ri  zDXMLParser.(Get|Set)ReparseDeferralEnabled methods not available in CFrm  rn  ro  )r   r  rK  pyexpatversion_infor   skipTestrp  SetReparseDeferralEnabledr  r  rq  r  rL  rr  s      r   $test_flush_reparse_deferral_disabled6XMLPullParserTest.test_flush_reparse_deferral_disabled  s   !!)9!:"EKK # 9,: !; <NN""<<UC""62.:V^^33MMOPv(8'9::V^^33MMOPHv'78r   r   )NFr   )rU   rV   rW   rX   r  r  r  r  r  r  r  r  r"  r(  r+  r=  r@  rH  rL  rP  r_  rg  unittestskipIfrw  rx  rt  r{  rY   r   r   r   r  r    s    
#
**77,
***.6,*\O&MK&X __W))I5g223 40 01919*9r   r  z<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml"/>
</document>
C1.xmlz<?xml version='1.0'?>
<disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
zdisclaimer.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been accessed
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
C2.xml324387z	count.txtz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been <em>accessed</em>
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
C2b.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example><xi:include href="data.xml" parse="text"/></example>
</document>
C3.xmlzQ<?xml version='1.0'?>
<data>
  <item><![CDATA[Brooks & Shields]]></item>
</data>
zdata.xmlaW  <?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="example.txt" parse="text">
    <xi:fallback>
      <xi:include href="fallback-example.txt" parse="text">
        <xi:fallback><a href="mailto:bob@example.org">Report error</a></xi:fallback>
      </xi:include>
    </xi:fallback>
  </xi:include>
</div>
C5.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>Example.</p>
  <xi:include href="{}"/>
</document>
default.xmla  <?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
</document>
include_c1_repeated.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml" parse="BAD_TYPE"/>
</document>
B1.xmlzn<?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:fallback></xi:fallback>
</div>
B2.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive2.xml:</p>
  <xi:include href="Recursive2.xml"/>
</document>
Recursive1.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive3.xml:</p>
  <xi:include href="Recursive3.xml"/>
</document>
zRecursive2.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="Recursive1.xml"/>
</document>
zRecursive3.xmlc                   F    \ rS rSrSS jrSS jrS rS rS rS r	S	 r
S
rg)XIncludeTesti  Nc                      [         U   nUS:X  a  [        R	                  U5      nU$ ! [         a    [        S5      ef = f)Nresource not foundr5  )XINCLUDEKeyErrorOSErrorr   r   )rI   hrefrE  r\   r=   s        r   xinclude_loaderXIncludeTest.xinclude_loader  sH    	0D>D E>66$<D	  	0.//	0s   	( >c                     g r   r   )rI   r  rP  r\   s       r   none_loaderXIncludeTest.none_loader  s    r   c                     US:X  a9  [        US5       n[        R                  U5      R                  5       sS S S 5        $ g ! , (       d  f       g = f)Nr5  rm  )rG  r   rE  r   )rI   r  rE  rO  s       r   
_my_loaderXIncludeTest._my_loader  sA     E>dD!Qxx{**, "!  "!s   #A
Ac                     SSK Jn  U R                  S5      nUR                  X R                  5        U R                  [        U5      S5        g )Nr   rD   r  z<document>
  <p>Example.</p>
  <root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>
</document>)rH   rE   r  includer  r   rh   )rI   rE   r  s      r   test_xinclude_default"XIncludeTest.test_xinclude_default  s@    ,""=1sOO43	r   c                 ~   SSK Jn  U R                  S5      nUR                  X R                  5        U R	                  [        U5      S5        U R                  S5      nUR                  X R                  5        U R	                  [        U5      S5        U R                  S5      nUR                  X R                  5        U R	                  [        U5      S5        U R                  S	5      nUR                  X R                  5        U R	                  [        U5      S
5        U R                  S5      nU R                  [        5       nUR                  X R                  5        S S S 5        U R	                  [        WR                  5      S5        U R	                  [        U5      S5        g ! , (       d  f       NO= f)Nr   rD   r  a  <document>
  <p>120 Mz is adequate for an average home user.</p>
  <disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
</document>r  zO<document>
  <p>This document has been accessed
  324387 times.</p>
</document>r  zX<document>
  <p>This document has been <em>accessed</em>
  324387 times.</p>
</document>r  z<document>
  <p>The following is the source of the "data.xml" resource:</p>
  <example>&lt;?xml version='1.0'?&gt;
&lt;data&gt;
  &lt;item&gt;&lt;![CDATA[Brooks &amp; Shields]]&gt;&lt;/item&gt;
&lt;/data&gt;
</example>
</document>r  r  aI  <div xmlns:ns0="http://www.w3.org/2001/XInclude">
  <ns0:include href="example.txt" parse="text">
    <ns0:fallback>
      <ns0:include href="fallback-example.txt" parse="text">
        <ns0:fallback><a href="mailto:bob@example.org">Report error</a></ns0:fallback>
      </ns0:include>
    </ns0:fallback>
  </ns0:include>
</div>)
rH   rE   r  r  r   rh   r   r  r   r  rI   rE   r  r  s       r   test_xincludeXIncludeTest.test_xinclude  s}   , ''1x)=)=>8,	 ''1x)=)=>8,	 ''	2x)=)=>8,	 ''1x)=)=>8,	 ''1w'2""8-A-AB (R\\*,@A8,		 ('s   	F..
F<c                     SSK Jn  U R                  S5      nUR                  X R                  5        U R	                  S[        UR                  S5      5      5        g )Nr   rD   r  r   z.//p)rH   rE   r  r  r   r   r   )rI   rE   r  s      r   test_xinclude_repeated#XIncludeTest.test_xinclude_repeated  sJ    ,''(ABx)=)=>H$4$4V$< =>r   c                 
   SSK Jn  [        R                  [        S   5      nU R                  UR                  5       nUR                  X R                  S9  S S S 5        U R                  [        WR                  5      S5        [        R                  [        S   5      nU R                  UR                  5       nUR                  X R                  S9  S S S 5        U R                  [        UR                  5      S5        [        R                  [        S   5      nU R                  UR                  5       nUR                  X R                  S9  S S S 5        U R                  [        UR                  5      S	5        [        R                  [        S
   5      nU R                  UR                  5       nUR                  X R                  S9  S S S 5        U R                  [        UR                  5      S5        U R                  S5      nU R                  UR                  5       nUR                  X R                  5        S S S 5        U R                  [        UR                  5      S5        U R                  S5      nU R                  UR                  5       nUR                  X R                  S S9  S S S 5        U R                  [        UR                  5      S5        U R                  S5      nU R                  UR                  5       nUR                  X R                  SS9  S S S 5        U R                  [        UR                  5      S5        U R                  S5      nU R                  UR                  5       nUR                  X R                  SS9  S S S 5        U R                  [        UR                  5      S5        U R                  S5      nU R                  UR                  5       nUR                  X R                  SS9  S S S 5        U R                  [        UR                  5      S5        U R                  S5      nU R                  UR                  5       nUR                  X R                  SS9  S S S 5        U R                  [        UR                  5      S5        g ! , (       d  f       GNh= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN$= f! , (       d  f       GN= f! , (       d  f       GN_= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN9= f! , (       d  f       N= f)Nr   rD   r  )r   z%cannot load 'disclaimer.xml' as 'xml'r  z!cannot load 'count.txt' as 'text'r  z1unknown parse type in xi:include tag ('BAD_TYPE')r  zYxi:fallback tag must be child of xi:include ('{http://www.w3.org/2001/XInclude}fallback')r  z#recursive include of Recursive2.xml)	max_depthzAmaximum xinclude depth reached when including file Recursive2.xmlr   zAmaximum xinclude depth reached when including file Recursive3.xmlr   zAmaximum xinclude depth reached when including file Recursive1.xmlr  )rH   rE   r   r   r  r   FatalIncludeErrorr  r  r   r   r  XINCLUDE_BADr  LimitedRecursiveIncludeErrorr  s       r   test_xinclude_failures#XIncludeTest.test_xinclude_failures  sU   , 66(8,-~??@B""84D4D"E AR\\*7	9 66(8,-~??@B""84D4D"E AR\\*3	5 66,x01~??@B""84D4D"E AR\\*C	E 66,x01~??@B""84D4D"E AR\\*@	A
 ''(89~??@B""8-A-AB AR\\*5	7 ''(89~??@B""8-A-AT"R AR\\*5	7 ''(89~JJKr""8-A-AQ"O LR\\*S	U ''(89~JJKr""8-A-AQ"O LR\\*S	U ''(89~JJKr""8-A-AQ"O LR\\*S	U ''(89~??@B""8-A-AQ"O AR\\*5	7} A@ A@ A@ A@ A@ A@ LK LK LK A@sw   R9<S:S8S/+T TT%T7<U	0U9
S
S
S,/
S>
T
T"%
T47
U	
U
U)r   )r5  Nr   )rU   rV   rW   rX   r  r  r  r  r  r  r  rY   r   r   r   r  r    s'    >@?D7r   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\R                  " \R                   " 5       S5      S 5       rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%g!)"BugsTestiI  c                   ^  U 4S jn[         R                  S5      nU" U5        [         R                  S5      nSUl        U" U5        [         R                  S5      nSUl        U" U5        [         R                  S5      nUR	                  SS5        U" U5        [         R                  S5      nUR	                  SS5        U" U5        g )Nc                    > TR                  [        5       n[        U 5        S S S 5        TR                  [	        WR
                  5      S5        g ! , (       d  f       N4= f)Nzcannot serialize 123 (type int))r   r   rh   r   r   r  )rc   r  rI   s     r   r6  -BugsTest.test_bug_xmltoolkit21.<locals>.checkN  sD    ""9-$ .S.57 .-s   A
A{   rc   123)r   r   r   r   r   )rI   r6  rc   s   `  r   test_bug_xmltoolkit21BugsTest.test_bug_xmltoolkit21K  s    	7 zz#dzz&!	dzz&!	dzz&!edzz&!dr   c                     [         R                  [        5      n[         R                  U5      nU R	                  UR                  S5      S5        U R	                  UR                  S5      S5        g )Nrk   r   r  r  )r   r   r  rC   r   r   )rI   rc   rg   s      r   test_bug_xmltoolkit25BugsTest.test_bug_xmltoolkit25g  sR     vvj!~~d#u-v6}5yAr   c                     [         R                  S5      nU R                  [        UR	                  S5      5      / 5        U R                  [        UR	                  S5      5      S/5        g )N"<doc><table><tbody/></table></doc>z.//theadz.//tbodytbody)r   r   r   rm   r   r   s     r   test_bug_xmltoolkit28BugsTest.test_bug_xmltoolkit28o  sQ     vv:;Z(@A2FZ(@AG9Mr   c                     [         R                  S5      n[        R                  " 5        n[         R	                  U5        U R                  UR                  5       S5        S S S 5        g ! , (       d  f       g = f)Nr  z$<doc><table><tbody /></table></doc>
)r   r   r   r  r  r   ra   )rI   rg   r  s      r   test_bug_xmltoolkitX1BugsTest.test_bug_xmltoolkitX1v  sP     vv:;$$&&GGDMV__.0WX '&&s   6A**
A8c                    [         R                  S5      nU R                  [         R                  US5      S5        [         R                  S5      nU R                  UR                  SS05        U R                  [         R                  US5      S5        [         R                  S5      nU R                  [         R                  US5      S	5        [         R                  S
5      nU R                  [         R                  US5      S5        [         R                  S5      nUR                  SS5        U R                  [         R                  US5      S5        g )Ns2   <?xml version='1.0' encoding='iso-8859-1'?><tg />r   s   <täg />sD   <?xml version='1.0' encoding='iso-8859-1'?><tag ttr='v&#228;lue' />u   ättru   välues   <tag ättr="välue" />s:   <?xml version='1.0' encoding='iso-8859-1'?><tg>text</tg>s   <täg>text</täg>r   rk   )r   r   r   r5  r   r   r   r   s     r   test_bug_xmltoolkit39BugsTest.test_bug_xmltoolkit39~  s    vvNOT735FGvv 6 7y*&=>T735	7 vv / 0T730	2 zz*%T735FGzz% l+T735	7r   c                     [         R                  S5      nU R                  [        USS9S5        U R                  [        U5      S5        g )Nz=<!DOCTYPE doc [<!ENTITY ldots '&#x8230;'>]><doc>&ldots;</doc>r8  rB  s   <doc>&#33328;</doc>u   <doc>舰</doc>r  r  s     r   test_bug_xmltoolkit54BugsTest.test_bug_xmltoolkit54  sF     FF ( )1z:&	(1':;r   c                     U R                  [        R                  5       n[        R                  S5        S S S 5        U R	                  [        WR                  5      S5        g ! , (       d  f       N4= f)Ns?   <!DOCTYPE doc SYSTEM 'doc.dtd'><doc>&ldots;&ndots;&rdots;</doc>z+undefined entity &ldots;: line 1, column 36)r   r   r  r   r   r   r  )rI   r  s     r   test_bug_xmltoolkit55BugsTest.test_bug_xmltoolkit55  sU     r}}-FF 7 8 . 	R\\*=	? .-s   A$$
A2c                 l     " S S5      nU R                  [        [        R                  U" 5       5        g )Nc                       \ rS rSrS rSrg)5BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFilei  c                     [         er   )r  rI   r   s     r   rH  :BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFile.read  s    r   r   N)rU   rV   rW   rX   rH  rY   r   r   r   ExceptionFiler    s    r   r  )r   r  r   rE  )rI   r  s     r   test_bug_xmltoolkit60BugsTest.test_bug_xmltoolkit60  s&    	 	 	'288]_=r   c                    SSS.n[         R                  5       nUR                  R                  U5        UR	                  S5        UR                  5       nU R                  UR                  S5      R                  S5        g )Nu   ’u   ‘)rsquolsquoaF  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE patent-application-publication SYSTEM "pap-v15-2001-01-31.dtd" []>
<patent-application-publication>
<subdoc-abstract>
<paragraph id="A-0001" lvl="0">A new cultivar of Begonia plant named &lsquo;BCT9801BEG&rsquo;.</paragraph>
</subdoc-abstract>
</patent-application-publication>z.//paragraphu7   A new cultivar of Begonia plant named ‘BCT9801BEG’.)	r   rI  r  updaterK  rL  r   r   r   )rI   ENTITIESrP  ts       r   test_bug_xmltoolkit62BugsTest.test_bug_xmltoolkit62  sl     &9X& % 	& LLN/44K	Mr   zSkips under coverage.c                     S nU" 5         [         R                  " S 5      n[        S5       H
  nU" 5         M     U R                  [         R                  " S 5      U5        g )Nc                      [         R                  5       n U R                  S0 5        U R                  S5        U R	                  S5        g )Nrk   r   )r   rM  rq  r=   rc  )rg   s    r   xmltoolkit634BugsTest.test_bug_xmltoolkit63.<locals>.xmltoolkit63  s3    >>#DJJub!IIfHHUOr   i  )ry   getrefcountr  r   )rI   r  countr  s       r   test_bug_xmltoolkit63BugsTest.test_bug_xmltoolkit63  sH    	 	%tAN .6r   c           	         [         R                  SSS9nU R                  [         R                  U5      S5        U R                  [         R	                  [         R                  U5      5      R                  S5      S5        U R                  [         R                  [         R	                  [         R                  U5      5      5      S5        g )NSomeTagzdef _f():
  return 3
r   s0   <SomeTag text="def _f():&#10;  return 3&#10;" />r   )r   r   r   r5  r   r   r  s     r   test_bug_200708_newline BugsTest.test_bug_200708_newline  s     JJy'@JAQC	EA/33F;)	+RVVBKKN%;<C	Er   c                 \   [         R                  5       nUR                  S5        U R                  UR	                  5       R
                  S5         " S S5      n[         R                  U" 5       S9nUR                  S5        U R                  UR	                  5       R
                  S5        g )Nz<element>some text</element>r   c                       \ rS rSrS rSrg)2BugsTest.test_bug_200708_close.<locals>.EchoTargeti  c                 ,    [         R                  S5      $ )Nr   r   r   r	  s    r   rL  8BugsTest.test_bug_200708_close.<locals>.EchoTarget.close  s    zz),,r   r   NrU   rV   rW   rX   rL  rY   r   r   r   
EchoTargetr    s    -r   r  rC  )r   rI  rK  r   rL  rk   )rI   rP  r  s      r   test_bug_200708_closeBugsTest.test_bug_200708_close  s}    23++Y7	- 	- Z\223++Y7r   c                    [         R                  S5      n[         R                  US5      nU R                  [	        USS9S5        [         R                  S5      n[         R                  US5      n[         R                  US5      nU R                  [	        USS9S5        [         R                  S5      n[         R                  US5      n[         R                  US5      nU R                  [        5       n[	        USS9  S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)	Nz{default}elemr*  )r  z%<elem xmlns="default"><elem /></elem>z{not-default}elemzI<elem xmlns="default" xmlns:ns1="not-default"><elem /><ns1:elem /></elem>rc   z<cannot use non-qualified names with default_namespace option)	r   r   r  r   rh   r   r  r   r  )rI   r  sr  s       r   !test_bug_200709_default_namespace*BugsTest.test_bug_200709_default_namespace  s    JJ'MM!_-1	B7	9 JJ'MM!_-MM!011	B	 JJ'MM!_-MM!V$z*ba95 +R\\*N	P +*s   7D00
D>c                    [         R                  S5      nU R                  [         R                  U5      S5        [         R	                  SS5        [         R                  S5      nU R                  [         R                  U5      S5        [         R                  S5      nU R                  [         R                  U5      S5        g )Nz/{http://namespace.invalid/does/not/exist/}titlesB   <ns0:title xmlns:ns0="http://namespace.invalid/does/not/exist/" />r!  z(http://namespace.invalid/does/not/exist/sB   <foo:title xmlns:foo="http://namespace.invalid/does/not/exist/" />z'{http://purl.org/dc/elements/1.1/}titles8   <dc:title xmlns:dc="http://purl.org/dc/elements/1.1/" />)r   r   r   r5  register_namespacer  s     r   "test_bug_200709_register_namespace+BugsTest.test_bug_200709_register_namespace	  s    JJHIQQ	S
e%OPJJHIQQ	S
 JJ@AQG	Ir   c                    [         R                  S5      nUR                  [         R                  S5      5        U R	                  US   R
                  [         R                  5        [         R                  S5      nUR                  [         R                  S5      5        U R	                  US   R
                  [         R                  5        g )Nr   r!  r   )r   r   r   r  r   rk   r   )rI   r   s     r   test_bug_200709_element_comment(BugsTest.test_bug_200709_element_comment	  s     JJsO	E"#12::.JJsO	u1255)r   c                 l   [         R                  S5      n[         R                  US5      n[         R                  US5      n[         R                  S5      nUR                  SU5        U R	                  [        U5      / SQ5        UR                  SU5        U R	                  [        U5      / SQ5        g )	Nr   r   r   r   r   )r   r   r   r  )r   r   r   r   )r   r   r  r   r   rm   rI   r   r   r   r   s        r   test_bug_200709_element_insert'BugsTest.test_bug_200709_element_insert	  s    JJsOMM!S!MM!S!JJsO	A*O<	Q*,@Ar   c                 4   [         R                  S5      n[         R                  US5      n[         R                  S5      nUR	                  U5        U R                  [        UR                  [         R                  5      5      [         R                  /5        g )Nr   r   zTEST-b)r   r   r  r  r   r   rm   r   )rI   r   r   	comment_bs       r   test_bug_200709_iter_comment%BugsTest.test_bug_200709_iter_comment'	  sa    JJsOMM!S!JJx(		rzz(:;bjj\Jr   c                     [         R                  5       nUR                  S5      nUR                  S0 5      nUR	                  S5      nUR                  5       nU R                  [        U5      S5        g )Nr=   rk   r:  )r   rM  r=   rq  rc  rL  r   rh   )rI   r   r  s      r   test_bug_1534630BugsTest.test_bug_15346301	  sX    nnHHVIIeR GGENIIK1y1r   c                     [         R                  S5      nU R                  [         R                  US5      S5        [         R                  S5      nU R                  [         R                  US5      S5        g )Ns7   <?xml version='1.0' encoding='utf-8'?><body>tãg</body>rV  s<   <?xml version='1.0' encoding='ascii'?>
<body>t&#227;g</body>s;   <?xml version='1.0' encoding='iso-8859-1'?><body>tg</body>r  r  s     r   test_issue6233BugsTest.test_issue62339	  sj    FF . /Q0)	* FF * +Q0)	*r   c                     [         R                  S5      nU R                  [        U5      S/5        [         R                  [        5      nUS S  US S & U R                  [        U5      / SQ5        g )Nr   rk   rk   rk   r  )r   r   r   rm   r  )rI   rc   newelems      r   test_issue6565BugsTest.test_issue6565E	  sY    vv+,-w7&&$!*Q-/HIr   c                 \    [         R                  SS5        [         R                  SS5        g )N	test10777zhttp://myuri/)r   r  r	  s    r   test_issue10777BugsTest.test_issue10777L	  s$     	k?;
k?;r   c                 2  ^  " U4S jS5      n[         R                  S5      mU" 5       Tl        TR                  5       n[	        U5      nU R                  X15        U R                  TR                  [        5        U R                  TR                  S5        g )Nc                   "   > \ rS rSrU 4S jrSrg)%BugsTest.test_lost_text.<locals>.TextiU	  c                    > STl         g)NchangedTr  r  s    r   __bool__.BugsTest.test_lost_text.<locals>.Text.__bool__V	  s    "r   r   NrU   rV   rW   rX   r  rY   r  s   r   r   r  U	       r   r   rk   r  )r   r   r   r   r  r   r   r   rI   r   r  r  r  s       @r   test_lost_textBugsTest.test_lost_textS	  sp    	 	
 JJuJJLGa&affc*+r   c                   ^  " U4S jS5      n[         R                  S5      mTR                  [         R                  S5      5        U" 5       TS   l        TR	                  5       n[        U5      nU R                  X15        U R                  TS   R                  [        5        U R                  TS   R                  S5        g )Nc                   "   > \ rS rSrU 4S jrSrg)%BugsTest.test_lost_tail.<locals>.Textid	  c                    > STS   l         gNr  r   T)r   r  s    r   r  .BugsTest.test_lost_tail.<locals>.Text.__bool__e	  s    %!	r   r   Nr  r  s   r   r   r"  d	  r  r   r   rf  rk   r   r  )	r   r   r   r   r   r  r   r   r   r  s       @r   test_lost_tailBugsTest.test_lost_tailb	  s    	 	
 JJv	E"#F!	JJLGa&adii-1I.r   c                    ^^  " UU4S jS5      n[         R                  S5      mTR                  [         R                  U" 5       5      5        TR                  [         R                  S5      5        TR                  S5      m [	        T5      nU R                  WR                  U5        U R                  TS   R                  [        5        U R                  TS   R                  S5        g ! [
         a    U R                  S5         N|f = f)Nc                   $   > \ rS rSrU U4S jrSrg)$BugsTest.test_lost_elem.<locals>.Tagit	  c                 L   > [         R                  S5      TS'   [        T5        gr$  )r   r   r  )rI   r+  r  r  s     r   r   +BugsTest.test_lost_elem.<locals>.Tag.__eq__u	  s    zz),!Qr   r   NrU   rV   rW   rX   r   rY   )r  r  s   r   r   r*  t	  s     r   r   rf  rk   zgenerators are not reentrantr   r  )r   r   r   r   r  r  ry  r   rk   r   r   )rI   r   r  r  r  s      @@r   test_lost_elemBugsTest.test_lost_elemr	  s    	 	 JJv	CE"#	E"#FF5M	:QA 	aeeS)adhh,19-	  	:MM89	:s   C/ /DDc                     SU-  n[         R                  U5      nU R                  UR                  S5      UR	                  S5      5        g )Ns   <a b="%s"/>r   r   )r   r   r   r   rc  )rI   r   r5  rf  s       r   check_expat224_utf8_bug BugsTest.check_expat224_utf8_bug	  s:    t#vvc{#G(<=r   c                 P    SnU R                  U5        SnU R                  U5        g )Ns   ààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààs  xàààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà)r1  r  s     r   test_expat224_utf8_bugBugsTest.test_expat224_utf8_bug	  s*     "$$T*($$T*r   c                 r   [        [        S5       nUR                  5       nS S S 5        [        R	                  W5      nUR                  S5      nUR                  S5      R                  5       nUR                  SS5      nUSS nU R                  UR                  S5      U5        g ! , (       d  f       N= f)Nrm  r   r   r4  r  rj  )
rG  UTF8_BUG_XMLFILErH  r   r   r   rc  stripr9   r   )rI   fprawrf  xmlattrr   s         r   test_expat224_utf8_bug_file$BugsTest.test_expat224_utf8_bug_file	  s    "D)R'')C *}}S!((3- zz'"((*||FC(Abz#- *)s   B((
B6c                     U R                  [        [        R                  5       R                  S5        U R                  [        [        R                  5       R                  SS 5        g )Nrk   )r   r   r   rM  rq  r	  s    r   test_39495_treebuilder_start%BugsTest.test_39495_treebuilder_start	  sB    )R^^%5%;%;UC)R^^%5%;%;UDIr   c           	        ^ U R                  [        [        R                  S5      R                  S [        S5       5       5        U R                  [        [        R                  S5      R                  S 5        S mU R                  [        S[        R                  S5      R                  U4S j[        S5       5       5        g )Nrk   c              3   ,   #    U  H
  nS S-  v   M     g7fr   r   Nr   rd  r  s     r   re  EBugsTest.test_issue123213_correct_extend_exception.<locals>.<genexpr>	  s     111Q3   r   c                      [        S5      eN	mymessager   r   r   r   rO  =BugsTest.test_issue123213_correct_extend_exception.<locals>.f	      K((r   rJ  c              3   2   >#    U  H  nT" 5       v   M     g 7fr   r   rd  r  rO  s     r   re  rF  	  s     &=HqqssH   )r   ZeroDivisionErrorr   r   r   r  r   r  )rI   rO  s    @r   )test_issue123213_correct_extend_exception2BugsTest.test_issue123213_correct_extend_exception	  s    +RZZ->-E-E1a1	3 	)RZZ%6%=%=tD	) 	{JJu$$&=E!H&=	?r   r   N)&rU   rV   rW   rX   r  r  r  r  r  r  r  r  r  r}  r~  ry   gettracer  r  r  r  r  r  r  r  r  r  r  r  r  r&  r.  r1  r4  r=  r@  rR  rY   r   r   r   r  r  I  s    8BNY72<?>M" __S\\^%<=7 >7	E8P.I
*BK2
*J<,/ .(>

+.J?r   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)BasicElementTesti	  c                    SnSS0n[         R                  X5      nU R                  U[         R                  5        U R                  S[	        U5      5        U R                  S[	        U5      5        U R                  S[	        U5      5        U R                  S[	        U5      5        U R                  UR                  U5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  U5        U R                  UR                  U5        SUS	'   U R                  UR                  U5        U R                  UR                  U5        g )
Nr!  zixwyprk   r   r   r   bazr   )r   r   r   r   r   r   rk   r   r   r   r<  r   r  )rI   rk   r   element_foos       r   test___init__BasicElementTest.test___init__	  s$   %!jj- 	k2::6eS-.hK 01fc+./fc+./ 	#.+**++**+ 	++V4++V4 u++V4K..7r   c                    [         R                  SSS05      nUR                  [         R                  SSS05      5        [        R                  " U5      nU R	                  X!5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  [        U5      [        U5      5        [        R                  " X5       H  u  p4U R                  X45        M     U R                  UR                  UR                  5        g Nr!  rX  rY  r   rZ  qix)r   r   r   r"  r<  r   rk   r   r   r   	itertoolszip_longestassertIsr   rI   r[  element_foo2r  r  s        r   test___copy__BasicElementTest.test___copy__	  s   jj%(892::eue-=>?yy- 	3 	));??;**K,<,<=**K,<,<= 	\*C,<= !* 5 5k PVMM&) !Q 	,,k.@.@Ar   c                    [         R                  SSS05      nUR                  [         R                  SSS05      5        [        R                  " U5      nU R                  X!5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  [        U5      [        U5      5        [        R                  " X5       H  u  p4U R                  X45        M     U R                  UR                  UR                  5        U R                  UR                  UR                  5        SUR                  S'   U R                  UR                  UR                  5        U R                  UR                  UR                  5        g r_  )r   r   r   r"  r#  r<  r   rk   r   r   r   ra  rb  r   r  rd  s        r   test___deepcopy__"BasicElementTest.test___deepcopy__	  sp   jj%(892::eue-=>?}}[1 	3 	));??;**K,<,<=**K,<,<= 	\*C,<= !* 5 5k PVV, !Q 	,,k.@.@A,,k.@.@A %*5!,,k.@.@AL//1C1CDr   c                 z   [         R                  S5      nU R                  [        UR                  S5        U R                  [        UR
                  [         R                  S5      S/5        U R                  [        UR                  SS5        [         R                  S5      /US S & U R                  [        5         SUS'   S S S 5        U R                  [        5         [         R                  S5      S/US S & S S S 5        [        US5      (       a*  SS /SS	S
S.nU R                  [        UR                  U5        [        US5      (       aK   " S S[         R                  5      nU" S5      /US S & U R                  [        [        R                  U5        g g ! , (       d  f       N= f! , (       d  f       N= f)Njoer   r   r!  r   __setstate__rk   r   r   r   )rk   	_childrenr   r   r   __deepcopy__c                       \ rS rSrS rSrg)9BasicElementTest.test_augmentation_type_errors.<locals>.Ei&
  c                     g r   r   )rI   memos     r   ro  FBasicElementTest.test_augmentation_type_errors.<locals>.E.__deepcopy__'
  s    r   r   NrU   rV   rW   rX   ro  rY   r   r   r   Erq  &
  s     r   rv  )r   r   r   r   r   r   r   r   rm  r"  r#  )rI   r  staterv  s       r   test_augmentation_type_errors.BasicElementTest.test_augmentation_type_errors
  sU   JJu)QXXs3)QXX

50A5/IJ)QXXq%8

5!"!y)AaD *y)JJu%u-AaD * 1n%%"V E i?1n%% BJJ   eH:AaDi: & *)))s   =F F,
F),
F:c                     " S S5      nU" 5       n[         R                  SUS9Ul        [        R                  " U5      nA[        5         U R                  U" 5       5        [         R                  S5      nU" 5       nXBl        [        R                  " U5      n[         R                  USUS9nAAA[        5         U R                  U" 5       5        [         R                  S5      n[         R                  S5      n[         R                  S5      nUR                  U5        UR                  U5        UR                  U5        [        R                  " U5      nAAA[        5         U R                  U" 5       5        g )	Nc                       \ rS rSrSrg).BasicElementTest.test_cyclic_gc.<locals>.Dummyi-
  r   NrU   rV   rW   rX   rY   r   r   r   Dummyr|  -
      r   r~  rl  )r   r!  r$  r%  r&  )	r   r   dummyrefweakrefrefr   r   r  r   )rI   r~  r   wrefr  r%  r$  r&  s           r   test_cyclic_gcBasicElementTest.test_cyclic_gc,
  s   	 	 GZZAZ.
{{1~$&! JJuG
{{1~]]1e!],q"$&! ZZZZZZ
		"
		"
		"{{2B$&!r   c                   ^ SmU4S jn[         R                  S5      n[        R                  " X!5      nU R	                  U" 5       R
                  S5        A[        5         U R	                  TS5        U R	                  U" 5       S 5        g )NFc                 
   > Smg NTr   )wflags    r   wref_cb.BasicElementTest.test_weakref.<locals>.wref_cbQ
  s    Dr   r  T)r   r   r  r  r   rk   r   )rI   r  r  r  r  s       @r   test_weakrefBasicElementTest.test_weakrefO
  sj    	 JJsO{{1&S)t$&r   c                     [         R                  SSSSS9nU R                  UR                  SSS9S5        U R                  UR                  S	SS9S5        g )
Nr!  r   r   r  )r   r   zr      )r*  r  )r   r   r   r   )rI   r$  s     r   test_get_keyword_args&BasicElementTest.test_get_keyword_args\
  sR    ZZ!qAZ.Q/3Q/3r   c           	         [        S[        R                  S-   5       GH0  n[        U R                  SS9 GH  u  p#UR                  SSS9nSUl        SUl        UR                  US	5      R                  UR                  S
5      5        UR                  UR                  S	5      5        UR                  S5      S   R                  SS5        U R                  USX#U5      nU R                  UR                  S5        U R                  UR                  S   S5        U R                  [!        U5      S5        U R#                  XE5        GM     GM3     g )Nr   r   repeatr!  *   )r   ztext goes herezopposite of headchild
grandchildz.//grandchildr   r   zother valuerM   r   )r  rz   HIGHEST_PROTOCOLr   rs   r   r   r   r  r   r   r   r   r   rk   r   r   r   )rI   r   r   r   r  r%  s         r   test_pickleBasicElementTest.test_picklea
  s   1f559:E")$,,q"ANN5bN1)+!!!W-44V^^L5QR01		/*1-11&-H))!-D*0%A   /  5!126  R!,((/ #B ;r   c           	         [        S[        R                  S-   5       H  n[        U R                  SS9 H  u  p#SnUR                  U5      nU R                  UR                  5       S   S5        U R                  USX#U5      nU R                  UR                  S5        U R                  US   R                  S	5        M     M     g )
Nr   r   r  z\<?xml version="1.0"?>
                    <group><dogs>4</dogs>
                    </group>rk   grouprM   r   dogs)
r  rz   r  r   rs   r   r   __getstate__r   rk   )rI   r   r   r   XMLTEXTr$  r%  s          r   test_pickle_issue18997'BasicElementTest.test_pickle_issue18997t
  s    1f559:E")$,,q"A  &&w/  !25!97C))".E*0%A  1  AF3 #B ;r   r   N)rU   rV   rW   rX   r\  rf  ri  rx  r  r  r  r  r  rY   r   r   r   rV  rV  	  s2    86B0E<;8!"F'4
0&4r   rV  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\R                  " S5      S 5       rS rS rS rS rS rS rS rS rSrg)BadElementTesti
  c                 0  ^  " U4S jS5      nU" 5       /m[         R                  S5      n UR                  T5         " S SU[         R                  5      nU" S5      /m[         R                  S5      nUR                  T5        g ! [         a     NVf = f)Nc                   ,   > \ rS rSr\U 4S j5       rSrg)2BadElementTest.test_extend_mutable_list.<locals>.Xi
  c                 V   > [         R                  S5      /TS S & [         R                  $ )NrZ  r  rI   Ls    r   	__class__<BadElementTest.test_extend_mutable_list.<locals>.X.__class__
  s"    

5)*!zz!r   r   NrU   rV   rW   rX   propertyr  rY   r  s   r   Xr  
      " "r   r  r!  c                       \ rS rSrSrg)2BadElementTest.test_extend_mutable_list.<locals>.Yi
  r   Nr}  r   r   r   Yr  
  r  r   r  r   r   r   r   r   rI   r  r  r  r  s       @r   test_extend_mutable_list'BadElementTest.test_extend_mutable_list
  s    	" 	"
 SEJJu	HHQK	2:: 	sVHJJu	  		s   B 
BBc                   ^  " U4S jS5      nU" 5       [         R                  S5      /m[         R                  S5      n UR                  T5         " S SU[         R                  5      nU" S5      [         R                  S5      /m[         R                  S5      nUR                  T5        g ! [         a     Njf = f)Nc                   ,   > \ rS rSr\U 4S j5       rSrg)3BadElementTest.test_extend_mutable_list2.<locals>.Xi
  c                 .   > TS S 2	 [         R                  $ r   r  r  s    r   r  =BadElementTest.test_extend_mutable_list2.<locals>.X.__class__
  s    aDzz!r   r   Nr  r  s   r   r  r  
  r  r   r  rZ  r!  c                       \ rS rSrSrg)3BadElementTest.test_extend_mutable_list2.<locals>.Yi
  r   Nr}  r   r   r   r  r  
  r  r   r  r   r  r  s       @r   test_extend_mutable_list2(BadElementTest.test_extend_mutable_list2
  s    	" 	"
 S"**U#$JJu	HHQK	2:: 	uXrzz%()JJu	  		s   B0 0
B=<B=c                 "    U R                  SS9  g NTraisesdo_test_remove_with_clearr	  s    r   %test_remove_with_clear_assume_missing4BadElementTest.test_remove_with_clear_assume_missing
  s     	&&d&3r   c                 "    U R                  SS9  g NFr  r  r	  s    r   &test_remove_with_clear_assume_existing5BadElementTest.test_remove_with_clear_assume_existing
  s     	&&e&4r   c          	      6  ^ ^^  " S S[         R                  5      n " UU4S jSU5      n " UU4S jSU5      nT(       a  U 4S jnO[        nT R                  UR                  [
        R                  5        US4US	44 GHp  u  pgT R                  T R                  US
95        X&S4XbS4XfS44 Hg  u  pn
T R                  U
5         U" S5      mTR                  U	" S5      /5        U" 5          TR                  U" S5      5        S S S 5        S S S 5        Mi     T R                  X&5      nU Hn  u  ppT R                  U
5         U" S5      mTR                  U	" S5      U" S5      /5        U" 5          TR                  U" S5      5        S S S 5        S S S 5        Mp     T R                  S5         U" S5      mTR                  U" S5      5        [        U5       n[        U5       nTR                  TS   5        S S S 5        S S S 5        WR                  5         WR                  5         S S S 5        [        5       =(       a    T=(       a    XdL n[        5       (       a  T(       a  XdL a  GM  T R                  X&5      nU Hk  u  pn
T R                  U
5         U" S5      mTR                  U	" S5      U" S5      /5        U" 5          TR                  TS   5        S S S 5        S S S 5        Mm     GMs     g ! , (       d  f       GN= f! , (       d  f       GMi  = f! , (       d  f       GN= f! , (       d  f       GM  = f! , (       d  f       GNK= f! , (       d  f       GNU= f! , (       d  f       GN?= f! , (       d  f       N= f! , (       d  f       GM  = f)Nc                       \ rS rSrSrg)3BadElementTest.do_test_remove_with_clear.<locals>.Ei
  r   Nr}  r   r   r   rv  r  
  s     r   rv  c                   $   > \ rS rSrU U4S jrSrg)3BadElementTest.do_test_remove_with_clear.<locals>.Xi
  c                    > TS S 2	 T(       + $ r   r   rI   or  rf  s     r   r   :BadElementTest.do_test_remove_with_clear.<locals>.X.__eq__
  s    G!z!r   r   Nr-  r  rf  s   r   r  r  
      " "r   r  c                   $   > \ rS rSrU U4S jrSrg)3BadElementTest.do_test_remove_with_clear.<locals>.Yi
  c                 2   > TR                  5         T(       + $ r   r   r  s     r   r   :BadElementTest.do_test_remove_with_clear.<locals>.Y.__eq__
  s    

!z!r   r   Nr-  r  s   r   r  r  
  r  r   r  c                  .   > T R                  [        5      $ r   r   r  r	  s   r   <lambda>:BadElementTest.do_test_remove_with_clear.<locals>.<lambda>
      $*;*;J*Gr   zdel root[:]zroot.clear())side_effectzremove missing E() from [Z()]zremove missing Z() from [E()]zremove missing Z() from [Z()]toponemissingtwozremove root[0] from [Z()]remr   r   )r   r   r   rc  r   r#   enterContextr&  r   r   'cases_for_remove_missing_with_mutationsr   r&   assert_not_calledr   (cases_for_remove_existing_with_mutations)rI   r  rv  r  r  get_checker_contextZr  RUdescriptioncasesVrO  g
is_specialrf  s   ``              @r   r  (BadElementTest.do_test_remove_with_clear
  s   	M

 	M	" 	" 	"
	" 	" 	"
 "G"-ahh. !=1A~3FGNAdll{lCD 676767&!k
 \\+.U8DKK5
+,.AiL1 / /.& @@FE(-$a\\+.U8DKK51U8 45,.AiL1 / /. ). 9:xAeH%"1%M!,<KKQ( -=%##%##% ; 23II16J'))f EEaK).%A+k2 xQuXqx$8902 KKQ0 3 32 */k H /. /. /. /. -=,<%% ;:: 32 32s   (L	/K7	L	/L.4L	L.1+M%M(M	=M(M%/NM7	N7
LL		
L
L+&L..
L>
MM
M"M%%
M4	7
NN
Nc                 "    U R                  SS9  g r  do_test_remove_with_mutate_rootr	  s    r   +test_remove_with_mutate_root_assume_missing:BadElementTest.test_remove_with_mutate_root_assume_missing  s     	,,D,9r   c                 "    U R                  SS9  g r  r  r	  s    r   ,test_remove_with_mutate_root_assume_existing;BadElementTest.test_remove_with_mutate_root_assume_existing  s     	,,E,:r   c                  ^ ^^
 [         R                  n " UU
4S jSU5      nT(       a  U 4S jnO[        nT R                  X#5      nU Hn  u  pgpT R	                  U	5         U" S5      m
T
R                  U" S5      U" S5      /5        U" 5          T
R                  U" S5      5        S S S 5        S S S 5        Mp     T R                  X#5      nU Hk  u  pgn	T R	                  U	5         U" S5      m
T
R                  U" S5      U" S5      /5        U" 5          T
R                  T
S	   5        S S S 5        S S S 5        Mm     g ! , (       d  f       N= f! , (       d  f       GM  = f! , (       d  f       N?= f! , (       d  f       M  = f)
Nc                   $   > \ rS rSrU U4S jrSrg)9BadElementTest.do_test_remove_with_mutate_root.<locals>.Zi  c                    > TS	 T(       + $ r  r   r  s     r   r   @BadElementTest.do_test_remove_with_mutate_root.<locals>.Z.__eq__  s    G!z!r   r   Nr-  r  s   r   r  r    r  r   r  c                  .   > T R                  [        5      $ r   r  r	  s   r   r  @BadElementTest.do_test_remove_with_mutate_root.<locals>.<lambda>  r  r   r  r  r  r  r  r   )r   r   r   r  r&  r   r   r  )rI   r  rv  r  r  r  r  r  r  r  rf  s   ``        @r   r  .BadElementTest.do_test_remove_with_mutate_root  s6   JJ	" 	" 	"
 "G"- <<QB$) A!k*xQuXqx01(*KK)- + +* %* ==aC!&A+k*xQuXqx01(*KKQ( + +* "' +* +* +* +*sH   !/ED?(E&/E4E#*E4?
E	E
E 	#
E1-E44
F	c              #     #    X4X!4X"44 H5  u  p4SUR                    SUR                    SUR                    S3nXXE4v   M7     X4X4X!4X"44 H5  u  p4SUR                    SUR                    SUR                    S3nX#XE4v   M7     g 7f)Nzremove missing z	() from [(), ()]rU   )rI   rv  r  r  r  r  s         r   r  6BadElementTest.cases_for_remove_missing_with_mutations4  s      VaVaV,DA,QZZL 9 zzl$qzzl#?K&& -
 VaVaVaV4DA,QZZL 9 zzl$qzzl#?K&& 5s   BBc              #      #    XS4X!S4X"S44 H6  u  p4nSUR                    SUR                    SUR                    S3nXCU4v   M8     g 7f)Nzremove root[1] from [E(), Z()]zremove root[1] from [Z(), E()]zremove root[1] from [Z(), Z()]zremove root[1] (of type z) from [r	  r
  r  )rI   rv  r  r  r  r  s         r   r  7BadElementTest.cases_for_remove_existing_with_mutationsA  sn      343434"
A+
 6ajj\ B$$%JJ<tAJJ<sDK##"
s   AA	   c                     [         R                  S5      n[        USU5         U R                  [        5         [        U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr!  rk   )r   r   r   r   RuntimeErrorr   r  s     r   test_recursive_repr"BadElementTest.test_recursive_reprM  sP     JJuq%#""<0Q 1 $#00 $#s"   A'AA'
A$	 A''
A5c                 b  ^  " U4S jS[         5      n[        R                  5       nUR                  S0 5        UR	                  S5        UR	                  U" S5      5        UR	                  S5        UR                  S5        UR                  5       mU R                  TR                  S5        g )Nc                   "   > \ rS rSrU 4S jrSrg)/BadElementTest.test_element_get_text.<locals>.XiW  c                 @   >  TR                     g ! [         a     g f = fr   )r   	NameErrorr  s    r   __del__7BadElementTest.test_element_get_text.<locals>.X.__del__X  s!    II  s    
r   NrU   rV   rW   rX   r  rY   rc   s   r   r  r  W       r   r  rk   ABCDEFGHIJKLABCDEFGHIJKL)	r   r   rM  rq  r=   rc  rL  r   r   rI   r  r   rc   s      @r   test_element_get_text$BadElementTest.test_element_get_textU  s{    	 	 NN	r	v	qy	v	ewwyN3r   c                   ^  " U4S jS[         5      n[        R                  5       nUR                  S0 5        UR                  S0 5        UR	                  S5        UR                  S5        UR                  U" S5      5        UR                  S5        UR	                  S5        UR                  5       mU R                  TS   R                  S	5        g )
Nc                   "   > \ rS rSrU 4S jrSrg)/BadElementTest.test_element_get_tail.<locals>.Xij  c                 F   >  TS   R                     g ! [         a     g f = fr  )r   r  r  s    r   r  7BadElementTest.test_element_get_tail.<locals>.X.__del__k  s%    GLL  s    
  r   Nr  r  s   r   r  r'  j  r  r   r  rf  rk   r  r  r   r   r!  )	r   r   rM  rq  rc  r=   rL  r   r   r"  s      @r   test_element_get_tail$BadElementTest.test_element_get_tailh  s    	 	 NN		r	e	v	qy	v	fwwya~6r   c                   ^  " U4S jS5      n[         R                  S5      mTR                  [         R                  S5      5        TS U" 5          TR                  [         R                  S5      5        TSSU" 5       2     g )Nc                   "   > \ rS rSrU 4S jrSrg)%BadElementTest.test_subscr.<locals>.Xi  c                    > TS S 2	 gNr   r   r  s    r   	__index__/BadElementTest.test_subscr.<locals>.X.__index__  s    aDr   r   NrU   rV   rW   rX   r1  rY   r  s   r   r  r.         r   r  rc   r  r   r  )r   r   r   )rI   r  r  s     @r   test_subscrBadElementTest.test_subscr}  sa    	 	
 JJv	G$%	$13	G$%	!Bqs(r   c                    ^  " U4S jS5      n[         R                  S5      m[        S5       H(  nTR                  S[         R                  S5      5        M*     / TSSU" 5       2'   g )Nc                   "   > \ rS rSrU 4S jrSrg))BadElementTest.test_ass_subscr.<locals>.Xi  c                    > / TS S & gr0  r   r  s    r   r1  3BadElementTest.test_ass_subscr.<locals>.X.__index__  s    !r   r   Nr3  r  s   r   r  r9    r4  r   r  rc   r  r   r  )r   r   r  r   )rI   r  r]  r  s      @r   test_ass_subscrBadElementTest.test_ass_subscr  sU    	 	
 JJvrAHHQ

7+,  !Bqs(r   c                     S n[         R                  US9nUR                  S0 5        UR                  S5        U R	                  [
        UR                  S0 5        A[        5         g )Nc                     / $ r   r   r   r   s     r   element_factory>BadElementTest.test_treebuilder_start.<locals>.element_factory      Ir   rA  rk   r  r   )r   rM  rq  r=   r   AttributeErrorr   rI   rA  r   s      r   test_treebuilder_start%BadElementTest.test_treebuilder_start  sP    	NN?N;	r	v.!''62>r   c                     S n[         R                  US9nUR                  S0 5        UR                  S5        U R	                  [
        UR                  S5        A[        5         g )Nc                     / $ r   r   r@  s     r   rA  <BadElementTest.test_treebuilder_end.<locals>.element_factory  rC  r   rD  rk   r  )r   rM  rq  r=   r   rE  rc  r   rF  s      r   test_treebuilder_end#BadElementTest.test_treebuilder_end  sN    	NN?N;	r	v.!%%7r   c                   ^  " U4S jS[         R                  5      n[         R                  S5      mU" S5      nTR                  U[         R                  S5      /5        [        5       (       a&  U R	                  [
        [        R                  T5        g [        R                  " T5      nU R                  [        U5      U/5        g )Nc                   "   > \ rS rSrU 4S jrSrg)-BadElementTest.test_deepcopy_clear.<locals>.Xi  c                 (   > TR                  5         U $ r   r  )rI   rs  rf  s     r   ro  :BadElementTest.test_deepcopy_clear.<locals>.X.__deepcopy__  s    

r   r   Nru  )rf  s   r   r  rP    r  r   r  r   r   r   )
r   r   r   r   r   r  r"  r#  assertListEqualr   )rI   r  evilr   rf  s       @r   test_deepcopy_clear"BadElementTest.test_deepcopy_clear  s    	

 	
 zz#vT2::c?+,#%%lDMM4@d#A  a4&1r   c                   ^^^ [         R                  S5      m[         R                  S5      m[         R                  S5      n " UUU4S jS[         R                  5      n[         R                  S5      mU" S5      U" S5      pCTR                  X1U/5        [        [        R
                  " T5      5      nU R                  US	   U5        U R                  US
   U5        U R                  US   R                  UR                  5        U R                  USS   Vs/ s H  oR                  PM     snTR                  TR                  TR                  TR                  /5        g s  snf )Nr   r   r   c                   &   > \ rS rSrU UU4S jrSrg),BadElementTest.test_deepcopy_grow.<locals>.Xi  c                 L   > TR                  T5        TR                  T5        U $ r   r  )rI   rs  r   r   rf  s     r   ro  9BadElementTest.test_deepcopy_grow.<locals>.X.__deepcopy__  s    AAr   r   Nru  )r   r   rf  s   r   r  rY    s     r   r  r  r  r  r   r   r   r  )	r   r   r   r   r"  r#  rc  r   rk   )	rI   r   r  evil1evil2childrenr   r   rf  s	         @@@r   test_deepcopy_grow!BadElementTest.test_deepcopy_grow  s
    JJsOJJsOJJsO	 	

 	 zz% vqvuUu%&d+,hqk5)hqk5)!!%%0!"6A%%6%%quu5	76s   E&r   N)rU   rV   rW   rX   r  r  r  r  r  r  r  r  r  r  r   infinite_recursionr  r#  r*  r5  r<  rG  rL  rU  r_  rY   r   r   r   r  r  
  s}    &&4
5
U1n:
;
)>'
$ # $4&7*

2&7r   r  c                   8    \ rS rSrS rS r\R                  rSrg)MutationDeleteElementPathi  c                 @    [         R                  " U /UQ76 nXl        U$ r   r   __new__rc   r$   rc   r,   rI   s       r   rf  !MutationDeleteElementPath.__new__      {{3&&	r   c                 "    U R                   S S 2	 gr  r  rI   r  s     r   r    MutationDeleteElementPath.__eq__  s    IIaLr   r  N	rU   rV   rW   rX   rf  r   r   __hash__rY   r   r   r   rc  rc        
 ||Hr   rc  c                   8    \ rS rSrS rS r\R                  rSrg)MutationClearElementPathi  c                 @    [         R                  " U /UQ76 nXl        U$ r   re  rg  s       r   rf   MutationClearElementPath.__new__  ri  r   c                 8    U R                   R                  5         gr  )rc   r   rk  s     r   r   MutationClearElementPath.__eq__  s    		r   r  Nrm  r   r   r   rq  rq    ro  r   rq  c                   2    \ rS rSrS r\R                  rSrg)BadElementPathi  c                     SS-  e)Nr   r   r   rk  s     r   r   BadElementPath.__eq__  s    c	r   r   N)rU   rV   rW   rX   r   r   rn  rY   r   r   r   rw  rw    s     ||Hr   rw  c                   d   ^  \ rS rSrU 4S jrU 4S jrS rS rS rS r	S r
S	 rS
 rS rSrU =r$ )BadElementPathTesti  c                 ^   > [         TU ]  5         SSKJn  UR                  U l        0 Ul        g Nr   rF   )supersetUprH   rG   r  
path_cacherI   rG   r  s     r   r  BadElementPathTest.setUp  s$    )%,,r   c                 P   > SSK Jn  U R                  Ul        [        TU ]  5         g r}  )rH   rG   r  r  r~  tearDownr  s     r   r  BadElementPathTest.tearDown  s    )!__r   c                 &   [         [        4 Ho  nU R                  U5         [        R	                  S5      nUR                  [        R	                  S5      /5        UR                  U" US5      5        S S S 5        Mq     g ! , (       d  f       M  = fNr!  r   r   )rc  rq  r&  r   r   r   r   rI   r$   r  s      r   test_find_with_mutating*BadElementPathTest.test_find_with_mutating
  sf    -/GHCc"JJu%"**U+,-s1c{# #" I""   AB
B	c                     [         R                  S5      nUR                  [         R                  S5      /5         UR                  [	        S5      5        g ! [
         a     g f = fr  )r   r   r   r   rw  rQ  r  s     r   test_find_with_error'BadElementPathTest.test_find_with_error  sP    JJu	"**U#$%	FF>#&'  		   A 
A$#A$c                 &   [         [        4 Ho  nU R                  U5         [        R	                  S5      nUR                  [        R	                  S5      /5        UR                  U" US5      5        S S S 5        Mq     g ! , (       d  f       M  = fr  )rc  rq  r&  r   r   r   r   r  s      r   test_findtext_with_mutating.BadElementPathTest.test_findtext_with_mutating  sf    -/GHCc"JJu%"**U+,-

3q#;' #" I""r  c                     [         R                  S5      nUR                  [         R                  S5      /5         UR                  [	        S5      5        g ! [
         a     g f = fr  )r   r   r   r   rw  rQ  r  s     r   test_findtext_with_error+BadElementPathTest.test_findtext_with_error   sP    JJu	"**U#$%	JJ~c*+  		r  c                     [         R                  S5      n[         R                  US5      nSSS/ S0 /nU H*  nXBl        U R	                  UR                  S5      U5        M,     g )Nr!  r   r   r   Fr   ./barr   r   r  r   r   r   )rI   	root_elemsub_elemfalseyvals        r   (test_findtext_with_falsey_text_attribute;BadElementPathTest.test_findtext_with_falsey_text_attribute(  s\    JJu%	==E2aB+CMY//8#> r   c                     [         R                  S5      n[         R                  US5      nS Ul        U R	                  UR                  S5      S5        g )Nr!  r   r  r   r  )rI   r  r  s      r   &test_findtext_with_none_text_attribute9BadElementPathTest.test_findtext_with_none_text_attribute0  sB    JJu%	==E2++G4b9r   c                 &   [         [        4 Ho  nU R                  U5         [        R	                  S5      nUR                  [        R	                  S5      /5        UR                  U" US5      5        S S S 5        Mq     g ! , (       d  f       M  = fr  )rc  rq  r&  r   r   r   r   r  s      r   test_findall_with_mutating-BadElementPathTest.test_findall_with_mutating6  sf    -/GHCc"JJu%"**U+,-		#a+& #" I""r  c                     [         R                  S5      nUR                  [         R                  S5      /5         UR                  [	        S5      5        g ! [
         a     g f = fr  )r   r   r   r   rw  rQ  r  s     r   test_findall_with_error*BadElementPathTest.test_findall_with_error=  sP    JJu	"**U#$%	IInS)*  		r  )r  )rU   rV   rW   rX   r  r  r  r  r  r  r  r  r  r  rY   __classcell__)r  s   @r   r{  r{    s:     
$(?:' r   r{  c                   2    \ rS rSrS rS rS rS rS rSr	g)	ElementTreeTypeTestiF  c                    U R                  [        R                  [        5        U R                  [        R                  [        5        U R                  [        R
                  [        5        U R                  [        R                  [        5        U R                  [        R                  [        5        U R                  [        R                  [        5        g r   )	r   r   r  r  r  rC   r   rM  rI  r	  s    r   test_istypeElementTreeTypeTest.test_istypeG  sz    bmmT2bhh-bnnd3bjj$/bnnd3bllD1r   c                 &    " S S[         R                  5      nU" S5      nU R                  U[         R                  5        U R                  X!5        U R                  UR                  S5        SUl        U R                  UR
                  S5        g )Nc                       \ rS rSrSrg)DElementTreeTypeTest.test_Element_subclass_trivial.<locals>.MyElementiP  r   Nr}  r   r   r   	MyElementr  P  r  r   r  r!  rl  )r   r   r   r   rk   r   rI   r  myes      r   test_Element_subclass_trivial1ElementTreeTypeTest.test_Element_subclass_trivialO  sq    	

 	 c2::.c-%( 5)r   c                    ^  " U4S jS[         R                  5      mT" SSSS.SSS	9nU R                  UR                  S
5        U R                  [	        UR                  5       5      / SQ5        g )Nc                   2   >^  \ rS rSr0 4UU 4S jjrSrU =r$ )HElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElementi]  c                 0   > [         TU ]  " US-   U40 UD6  g )N__)r~  rV  )rI   rk   r   extrar  r  s       r   rV  QElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElement.__init__^  s    i/d
FLeLr   r   )rU   rV   rW   rX   rV  rY   r  )r  r  s   @r   r  r  ]  s    +- M Mr   r  r!  r   r   )r   r   r     )r   r   foo__))r   r   )r   r   )r   r  )r   r  )r   r   r   rk   r6  r   )rI   r  r  s     @r   !test_Element_subclass_constructor5ElementTreeTypeTest.test_Element_subclass_constructor\  s^    	M

 	M QQ/1:'*		,4	6r   c                      " S S[         R                  5      nU" S5      nU R                  UR                  5       S5        g )Nc                       \ rS rSrS rSrg)GElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElementig  c                     U R                   $ r   rj   r	  s    r   	newmethodQElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElement.newmethodh  s    xxr   r   N)rU   rV   rW   rX   r  rY   r   r   r   r  r  g  s     r   r  rl  )r   r   r   r  r  s      r    test_Element_subclass_new_method4ElementTreeTypeTest.test_Element_subclass_new_methodf  s4    	 

 	  %0r   c                     " S S[         R                  5      n[         R                  S5      nSUl        U" S5      nSUl        UR                  U5        U R	                  UR                  S5      S5        U R	                  UR                  S5      R                  S5        [        UR                  S5      5      nU R	                  [        U5      SU5        U R	                  US   R                  S5        g )	Nc                       \ rS rSrSrg)AElementTreeTypeTest.test_Element_subclass_find.<locals>.MyElementio  r   Nr}  r   r   r   r  r  o  r  r   r  r!  r   r   r  r   r   )r   r   r   r   r   r   r   rk   r   r   r   )rI   r  r  subfounds        r   test_Element_subclass_find.ElementTreeTypeTest.test_Element_subclass_findn  s    	

 	 JJu	E*I6**E2QYYu%&UQ.qu-r   r   N)
rU   rV   rW   rX   r  r  r  r  r  rY   r   r   r   r  r  F  s    2*61.r   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)ElementFindTesti~  c                    [         R                  [        5      nU R                  UR	                  S5      R
                  S5        U R                  UR	                  S5      R
                  S5        U R                  UR	                  S5      R
                  S5        [         R                  [        5      US'   U R                  UR	                  S5      R
                  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R                  SS
5      S	5        U R                  UR                  S5      5        U R                  UR                  SS
5      S
5        U R                  [         R                  S5      R                  S5      S	5        g )Nrk   r  ./tagr   zsection/nexttagnexttagr   r  r   r*  togz<tag><empty /></tag>empty)	r   r   r  r   r   rk   SAMPLE_SECTIONr   r   r  s     r   test_find_simple ElementFindTest.test_find_simple  sb   FF:**E2.22E:,,e4vvn%! 1266	BG,f5M2I> 	$56;$5yA2F 	!**U+,E95yA 	 67@@I2Nr   c                    Sn[         R                  U5      nU R                  UR                  S5      R                  S   S5        U R                  UR                  S5      R                  S   S5        U R                  UR                  S5      R                  S   S5        U R                  UR                  S	5      R                  S   S
5        U R                  UR                  S5      R                  S   S5        U R                  [        SUR                  S5        U R                  [        SUR                  S5        U R                  [        SUR                  S5        U R                  [        SUR                  S5        g )Nz
        <body>
            <tag class='a'/>
            <tag class='b'/>
            <tag class='c'/>
            <tag class='d'/>
        </body>z./tag[1]classr   z./tag[2]r   z./tag[last()]r   z./tag[last()-1]r   z./tag[last()-2]XPathz./tag[0]z	./tag[-1]z./tag[last()-0]z./tag[last()+1])r   r   r   r   r   r  SyntaxError)rI   
LINEAR_XMLr  s      r   test_find_xpathElementFindTest.test_find_xpath  s3   
 FF: 	
+227;SA
+227;SA077@#F 1299'BCH 1299'BCH{GQVVZH{GQVV[I{GQVV=NO{GQVV=NOr   c                    [         R                  [        5      n[         R                  [        5      US'   U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      SS/5        U R	                  [        UR                  S5      5      / 5        U R	                  [        UR                  S5      5      / 5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S	5      5      S/S
-  5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      S/S-  5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      S/S-  5        U R	                  [        UR                  S5      5      S/S-  5        U R	                  [        UR                  S5      5      S/S-  5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      S/S-  5        U R	                  [        UR                  S5      5      S/S-  5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      S /5        U R	                  [        UR                  S!5      5      / 5        U R	                  [        UR                  S"5      5      / 5        U R	                  [        UR                  S#5      5      S/S-  5        U R	                  UR                  S$5      UR                  S5      5        U R	                  [        UR                  S%5      5      S /5        U R	                  [        UR                  S&5      5      S /5        U R	                  [        UR                  S'5      5      S /5        U R	                  [        UR                  S(5      5      S /5        U R	                  [        UR                  S)5      5      S /5        U R	                  [        UR                  S*5      5      / 5        U R	                  [        UR                  S+5      5      / 5        U R	                  [        UR                  S,5      5      / 5        U R	                  [        UR                  S-5      5      / 5        U R	                  [        UR                  S.5      5      / 5        U R	                  [        UR                  S/5      5      S/5        U R	                  [        UR                  S05      5      S/5        U R	                  [        UR                  S15      5      S/5        U R	                  [        UR                  S25      5      S/5        U R	                  [        UR                  S35      5      S/5        U R	                  [        UR                  S45      5      / 5        U R	                  [        UR                  S55      5      / 5        U R	                  [        UR                  S65      5      S/S-  5        U R	                  [        UR                  S75      5      S/S-  5        U R	                  [        UR                  S85      5      S/S-  5        U R	                  [        UR                  S95      5      S/S-  5        U R	                  [        UR                  S:5      5      S/S-  5        U R	                  [        UR                  S;5      5      S/S
-  5        U R	                  [        UR                  S<5      5      S/S
-  5        US   US='   U R	                  [        UR                  S(5      5      S S /5        U R	                  [        UR                  S35      5      SS/5        g )>Nr   r  rW  rk   r  ztog/foor   r  z.//tagr  r  zsection//tagz	section/*)rk   r  nextsectionz
section//*)rk   r  r  rk   zsection/.//*z*/*z*//*z*/tagz*/./tagr  z././tagz.//tag[@class]r  z.//tag[@class="a"]z.//tag[@class!="a"]z.//tag[@class="b"]z.//tag[@class!="b"]z.//tag[@id]z.//section[tag]r  z.//section[element]z../tagzsection/../tagz	section//z.//section[tag='subtext']z.//section[tag ='subtext']z.//section[tag= 'subtext']z.//section[tag = 'subtext']z.//section[ tag = 'subtext' ]z.//section[tag!='subtext']z.//section[tag !='subtext']z.//section[tag!= 'subtext']z.//section[tag != 'subtext']z.//section[ tag != 'subtext' ]z.//tag[.='subtext']z.//tag[. ='subtext']z.//tag[.= "subtext"]z.//tag[ . = "subtext" ]z.//tag[. = 'subtext']z.//tag[. = 'subtext ']z.//tag[.= ' subtext']z.//tag[.!='subtext']z.//tag[. !='subtext']z.//tag[.!= "subtext"]z.//tag[ . != "subtext" ]z.//tag[. != 'subtext']z.//tag[. != 'subtext ']z.//tag[.!= ' subtext']r   )r   r   r  r  r   rm   r   r  s     r   test_findallElementFindTest.test_findall  s   FF:vvn%!		#7&B		%(89E5>J		%(892>		)(<=rB		#7%	'		((;<GaK			-(@AE7K		.(ABUGaKP		+(>?-	/		,(?@4	6		.(AB4	6		%(89-	/		&(9:4	6		'(:;eWE		)(<=wG		'(:;eWq[I		)(<=w{K		2B(CDGaK			2F(GHG			2G(HIGaK			2F(GHGaK			2G(HIG			-(@AG			2C(DEK			2G(HI2N		((;<bA		2B(CDGaK	;/<1HI		2M(NOK			2N(OPK			2N(OPK			2O(PQK			2Q(RSK	
 			2N(OP			2O(PQ			2O(PQ			2P(QR			2R(ST	 			2G(HI	"		2H(IJ	"		2H(IJ	"		2K(LM	"		2I(JK	"		2J(KL			2I(JK	
 			2H(IJ1	&		2I(JK1	&		2I(JK1	&		2L(MN1	&		2J(KL1	& 			2K(LM1	&		2J(KL1	& t!		2O(PQ#Y/	1		2I(JK	)r   c                 B   [         R                  [        5      nU R                  [	        UR                  S5      5      / 5        U R                  [	        UR                  S5      5      S/S-  5        U R                  [	        UR                  S5      5      S/S-  5        g )Nrk   z{http://effbot.org/ns}tagr   z.//{http://effbot.org/ns}tagr  )r   r   r  r   rm   r   r  s     r   test_test_find_with_ns&ElementFindTest.test_test_find_with_ns  s    FF=!		%(892>199%@AB()A-	/ 	199%CDE()A-	/r   c           	      4   [         R                  S5      nSS0nU R                  [        UR	                  SUS95      S5        U R                  [        UR	                  SUS95      S5        SS0nU R                  [        UR	                  SUS95      S	5        U R                  [        UR	                  SUS95      S5        SSS
.nU R                  [        UR	                  SUS95      S5        U R                  [        UR	                  SUS95      S	5        g )N
            <a xmlns:x="X" xmlns:y="Y">
                <x:b><c/></x:b>
                <b/>
                <c><x:b/><b/></c><y:b/>
            </a>xxr  z.//xx:b)r  r   .//br  r   )r  r   )r   r   r   r   r   )rI   rf  nsmaps      r   test_findall_different_nsmaps-ElementFindTest.test_findall_different_nsmaps&  s    vv   sT\\)\FGKT\\&U\CDaHsT\\)\FGKT\\&U\CDaH$T\\)\FGKT\\&U\CDaHr   c                 ~   [         R                  S5      nUR                  [         R                  S5      5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S	5      5      S
/5        U R	                  [        UR                  S5      5      SS/5        U R	                  [        UR                  S5      5      S/5        U R	                  [        UR                  S5      5      [        UR                  S5      5      5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      US   /-   5      [        UR                  S5      5      5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      SS/5        U R	                  [        UR                  S5      5      SS/5        U R	                  [        UR                  S5      5      S
/5        U R	                  [        UR                  S5      5      / SQ5        U R	                  [        UR                  S5      5      SS/5        U R	                  [        UR                  S5      5      [        UR                  S5      5      5        g )Nr  r/   z{*}b){X}br   {Y}bz{*}cr   z{X}*r  z{Y}*r  r  r   z{}br  )r  r   r   r  r  r   z.//{*}b)r  r   r  r   r  z.//{*}cz.//{X}*z.//{Y}*z.//{}*)r   r   r   r   z.//{}br  )r   r   r   r  r   rm   r   r  s     r   test_findall_wildcard%ElementFindTest.test_findall_wildcard7  s   vv   	BJJv&'V(<=.	0V(<=	 V(<= 	#V(<= 	#U(;<s	%U(;<	 U(;<'S(9:	<V(<=3	5 	V(<Rz(IJ'S(9:	< 	Y(?@;	=Y(?@s	%Y(?@ &)	+Y(?@ 	#X(>?-	/X(>?s	%X(>?'V(<=	?r   c                     [         R                  [        5      nU R                  [        S5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nzcannot use absolute pathz/tag)r   r   r  r  r  r   r  s     r   test_bad_findElementFindTest.test_bad_findc  s:    FF:##K1KLIIf MLLs   A
Ac                    [         R                  [        5      nU R                  [         R	                  U5      R                  S5      R                  S5        U R                  [         R	                  U5      R                  S5      S5        U R                  [        [         R	                  U5      R                  S5      5      S/S-  5        SnU R                  [        U5         [         R	                  U5      R                  S5      nS S S 5        U R                  [        W5      S/S-  5        g ! , (       d  f       N.= f)Nrk   r   r   zThis search is broken in 1.3 and earlier, and will be fixed in a future version.  If you rely on the current behaviour, change it to '.+'z//tagr  )r   r   r  r   rC   r   rk   r   rm   r   assertWarnsRegexFutureWarning)rI   r  r   r   s       r   test_find_through_ElementTree-ElementFindTest.test_find_through_ElementTreeh  s    FF:*//6::EB*33E:FCq(9(A(A%(HIGaK	# ""=#6"**73B 7+eWq[9 76s   %%D22
E r   N)rU   rV   rW   rX   r  r  r  r  r  r  r  r  rY   r   r   r   r  r  ~  s0    O.P,n)`/I"*?X
:r   r  c                   <    \ rS rSrS
S jrS rS rS rS rS r	S	r
g)ElementIterTestiw  Nc                 6    [        UR                  U5      5      $ r   )rm   r   )rI   rc   rk   s      r   _ilistElementIterTest._ilistx  s    diin--r   c           	         [         R                  S5      nU R                  U R                  U5      / SQ5        U R                  U R                  UR	                  S5      5      SS/5        U R                  [        UR                  5       5      R                  S5        U R                  SR                  UR                  5       5      S5        U R                  SR                  UR	                  S5      R                  5       5      S5        U R                  [        UR                  5       5      S	5        [        US
S9nU R                  [        [         R                  U5      5      S   S5        [        US
S9n[         R                  [         R                  5       S9nU R                  [        [         R                  X#S95      S   S5        [         R                  S 5      nU R                  [         UR                  5        [         R                  S5      nU R                  SR                  UR                  5       5      S5        g )Nz7<html><body>this is a <i>paragraph</i>.</body>..</html>)r  rW  r  rW  r  r  r   zthis is a paragraph...zthis is a paragraph.z
this is a F)rd   r   rc  rC  )rP  z*<root>a&amp;<sub>b&amp;</sub>c&amp;</root>za&b&c&)r   r   r   r  r   r  r   rk   rY  r   rh   r  rI  rM  rC   r   rE  )rI   r  
sourcefilerP  rg   s        r   
test_basicElementIterTest.test_basic{  s   ffNOS)+@ASXXf%56Fchhj)--v602JK&!1!:!:!<="	$clln-|< se4
bll:67:EB se4
R^^%56bll:lEFqI5Q~~d#.$))4 ffAB0(;r   c                 $   [         R                  S5      nU R                  U R                  U5      S/5        [         R	                  US5      nU R                  U R                  U5      SS/5        [         R	                  US5      nU R                  U R                  U5      / SQ5        [         R	                  US5      nU R                  U R                  U5      / SQ5        US   US'   US	 U R                  U R                  U5      SS/5        g )	Nr   r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r  r  r  s        r   test_cornersElementIterTest.test_corners  s    JJsOQ#/ MM!S!Q#s4 MM!S!Q9 MM!S!Q)=> t!aDQ#s4r   c                    [         R                  S5      nU R                  U R                  US5      S/S-  5        U R                  U R                  US5      S/S-  5        U R                  [	        UR                  SS95      S/S-  5        / SQnU R                  [	        UR                  5       5      U5        U R                  U R                  U5      U5        U R                  U R                  US5      U5        g )	NaJ  
            <document>
                <house>
                    <room>bedroom1</room>
                    <room>bedroom2</room>
                </house>
                <shed>nothing here
                </shed>
                <house>
                    <room>bedroom8</room>
                </house>
            </document>roomr  houser   rj   )r  r
  r	  r	  shedr
  r	  r   )r   r   r   r  rm   r   )rI   r  all_tagss      r   test_iter_by_tag ElementIterTest.test_iter_by_tag  s    ff   	S&1F8a<@S'2WIMB 	3888/0HqL	
-
3X>S)84S#.9r   c                     [         R                  S5      nUR                  5       nU R                  [        5         [
        R
                  " U5        S S S 5        g ! , (       d  f       g = f)Nr   )r   r   r   r   r   r"  )rI   r   r   s      r   r'  ElementIterTest.test_copy  s?    JJsOVVXy)IIbM *))s   A
A)c                 @   [         R                  S5      nUR                  5       n[        [        R
                  S-   5       HG  nU R                  [        [        R                  45         [        R                  " X#5        S S S 5        MI     g ! , (       d  f       M[  = f)Nr   r   )
r   r   r   r  rz   r  r   r   r}   r{   )rI   r   r   r   s       r   r  ElementIterTest.test_pickle  si    JJsOVVX622Q67E""Iv/C/C#DER' FE 8EEs   *B
B	r   r   )rU   rV   rW   rX   r  r  r  r  r'  r  rY   r   r   r   r  r  w  s     .<45,::(r   r  c                   v    \ 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)TreeBuilderTesti  z<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text<div>subtext</div>tail</html>z<toplevel>sometext</toplevel>c                    U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        U R                  UR                  0 5        [        U5      nU R                  [        U5      S5        US   nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  0 5        g )Nr  r   r   r   divr  r   )r   rk   r   r   r   r   r   )rI   r  r^  r  s       r   _check_sample1_element&TreeBuilderTest._check_sample1_element  s    '(&2&7X*E*Y/V,r*r   c                 $    " S S5      n " S SU5      n[         R                  U" 5       S9nUR                  U R                  5        U R	                  UR                  5       S5        [         R                  U" 5       S9nUR                  U R                  5        U R	                  UR                  5       S5        [         R                  [        5       S9nUR                  U R                  5        U R                  UR                  5       5        g )Nc                       \ rS rSrS rSrg)<TreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuilderi  c                     g)Nr  r   r	  s    r   rL  BTreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuilder.close  s    r   r   Nr  r   r   r   BaseDummyBuilderr    s    r   r  c                   "    \ rS rSrS =r=rrSrg)8TreeBuilderTest.test_dummy_builder.<locals>.DummyBuilderi  c                      g r   r   )r   s    r   r  ATreeBuilderTest.test_dummy_builder.<locals>.DummyBuilder.<lambda>  s    Dr   r   N)rU   rV   rW   rX   r=   rq  rc  rY   r   r   r   DummyBuilderr     s    !00D053r   r#  rC  r  )r   rI  rK  sample1r   rL  r#   r   )rI   r  r#  rP  s       r   test_dummy_builder"TreeBuilderTest.test_dummy_builder  s    	 		1+ 	1 \^4DLL!,%5%78DLL!,VX.DLL!&,,.)r   c                    [         R                  5       nU R                  UR                  S5      R                  [         R
                  5        U R                  UR                  S5      R                  S5        [         R                  [         R
                  S9nU R                  UR                  S5      R                  [         R
                  5        U R                  UR                  S5      R                  S5        [         R                  [        S9nU R                  UR                  S5      [        S5      5        g )Nctext)comment_factory)r   rM  r   r  rk   r  r   r   rI   r   s     r   test_treebuilder_comment(TreeBuilderTest.test_treebuilder_comment  s    NN7+//<7+00':NN2::N67+//<7+00':NN3N/7+S\:r   c                    [         R                  5       nU R                  UR                  SS 5      R                  [         R
                  5        U R                  UR                  SS 5      R                  S5        [         R                  [         R
                  S9nU R                  UR                  S5      R                  [         R
                  5        U R                  UR                  S5      R                  S5        U R                  UR                  SS5      R                  [         R
                  5        U R                  UR                  SS5      R                  S5        [         R                  S S9nU R                  UR                  S5      [        S5      S 45        U R                  UR                  SS5      [        S5      S45        g )NrD  )
pi_factoryrO  z text zpitarget  text c                     [        U 5      U4$ r   )r   )rD  r   s     r   r  5TreeBuilderTest.test_treebuilder_pi.<locals>.<lambda>  s    CK;Nr   )r   rM  r   r  rk   r   r   r   r*  s     r   test_treebuilder_pi#TreeBuilderTest.test_treebuilder_pi  sE   NNh-112559h-22H=NNbeeN,h++RUU3h,,h7j(377?j(388:KLNN&NNOh#h-)>?j(3c*ox5PQr   c                 Z    " S S[         R                  5      nSn[         R                  U5      nU R                  UR                  S5        [         R                  U" 5       S9nUR                  U5        UR                  5       nU R                  UR                  S5        Sn[         R                  U5      nU R                  UR                  S5        Sn[         R                  U" 5       S9nUR                  U5        UR                  5       nU R                  UR                  S5        g )Nc                       \ rS rSrSrg);TreeBuilderTest.test_late_tail.<locals>.TreeBuilderSubclassi  r   Nr}  r   r   r   TreeBuilderSubclassr5    r  r   r6  z<a>text<!-- comment -->tail</a>texttailrC  z<a>text<?pi data?>tail</a>)r   rM  r   r   r   rI  rK  rL  )rI   r6  r5  r   rP  s        r   test_late_tailTreeBuilderTest.test_late_tail  s    	".. 	 0MM#,%8%:;CLLN,*MM#,*%8%:;CLLN,r   c                     " S S[         R                  5      nSn[         R                  [         R                  SS9S9nUR                  U5        UR	                  5       nU R                  US   R                  S5        U R                  US   R                  S	5        U R                  UR                  S
5        [         R                  U" SS9S9nUR                  U5        UR	                  5       nU R                  US   R                  S5        U R                  US   R                  S	5        U R                  UR                  S
5        Sn[         R                  [         R                  SS9S9nUR                  U5        UR	                  5       nU R                  US   R                  S5        U R                  US   R                  S5        U R                  UR                  S5        [         R                  U" SS9S9nUR                  U5        UR	                  5       nU R                  US   R                  S5        U R                  US   R                  S5        U R                  UR                  S5        g )Nc                       \ rS rSrSrg)KTreeBuilderTest.test_late_tail_mix_pi_comments.<locals>.TreeBuilderSubclassi5  r   Nr}  r   r   r   r6  r<  5  r  r   r6  z/<a>text<?pi1?> <!-- comment -->
<?pi2?>tail</a>T)insert_commentsrC  r   r  z
tailztext z+<a>text<!-- comment -->
<?pi data?>tail</a>)
insert_piszpi datar   ztext
)r   rM  rI  rK  rL  r   r   r   )rI   r6  r5  rP  r   s        r   test_late_tail_mix_pi_comments.TreeBuilderTest.test_late_tail_mix_pi_comments2  s   	".. 	 AR^^D^%IJCLLN1K01H-)%8%NOCLLN1K01H-)<R^^t^%DECLLN1I.1F+*%8D%IJCLLN1I.1F+*r   c                     [         R                  [         R                  S S9S9nUR                  U R                  5        UR                  5       nU R                  U5        g NrD  rC  )r   rI  rM  rK  r$  rL  r  rI   rP  r  s      r   $test_treebuilder_elementfactory_none4TreeBuilderTest.test_treebuilder_elementfactory_noneV  sF    R^^D^%IJDLL!LLN##A&r   c                 $    " S S[         R                  5      nU" 5       nU R                  UR                  S5      S5        [         R	                  US9nUR                  U R                  5        UR                  5       nU R                  U5        g )Nc                       \ rS rSrS rSrg)4TreeBuilderTest.test_subclass.<locals>.MyTreeBuilderi]  c                     US-  $ Nr   r   r  s     r   r	  ;TreeBuilderTest.test_subclass.<locals>.MyTreeBuilder.foobar^      1ur   r   NrU   rV   rW   rX   r	  rY   r   r   r   MyTreeBuilderrH  ]      r   rN  r  r  rC  )	r   rM  r   r	  rI  rK  r$  rL  r  rI   rN  tbrP  r  s        r   test_subclassTreeBuilderTest.test_subclass\  sl    	BNN 	 _2+R(DLL!LLN##A&r   c                 ~    " S S[         R                  5      nU" [         R                  [         R                  S9nU R	                  UR                  S5      S5        [         R                  US9nUR                  U R                  5        UR                  S5        UR                  5       nU R                  U5        g )Nc                       \ rS rSrS rSrg)?TreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilderik  c                     US-  $ rJ  r   r  s     r   r	  FTreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilder.foobarl  rL  r   r   NrM  r   r   r   rN  rV  k  rO  r   rN  )r)  r.  r  r  rC  z<!-- a comment--><?and a pi?>)r   rM  r  r   r   r	  rI  rK  r$  rL  r  rP  s        r   test_subclass_comment_pi(TreeBuilderTest.test_subclass_comment_pij  s    	BNN 	 2::"%%H2+R(DLL!34LLN##A&r   c                    ^ / mU4S jn[         R                  US9n[         R                  US9nUR                  U R                  5        UR                  5         U R                  TS/5        g )Nc                 P   > TR                  U 5        [        R                  X5      $ r   )r   r   r   )rk   r   lsts     r   	myfactory7TreeBuilderTest.test_element_factory.<locals>.myfactory{  s    JJsO::c**r   rD  rC  toplevel)r   rM  rI  rK  sample2rL  r   )rI   r^  rQ  rP  r]  s       @r   test_element_factory$TreeBuilderTest.test_element_factoryy  sZ    	+
 ^^I^6R(DLL!zl+r   c                     [         R                  US9n[         R                  US9nUR                  U R                  5        UR                  5       nU R                  XA5        U R                  U5        g rB  )r   rM  rI  rK  r$  rL  r   r  )rI   r$   rQ  rP  r  s        r   _check_element_factory_class,TreeBuilderTest._check_element_factory_class  sY    ^^C^0R(DLL!LLNa%##A&r   c                 X     " S S[         R                  5      nU R                  U5        g )Nc                       \ rS rSrSrg)@TreeBuilderTest.test_element_factory_subclass.<locals>.MyElementi  r   Nr}  r   r   r   r  ri    r  r   r  )r   r   re  )rI   r  s     r   test_element_factory_subclass-TreeBuilderTest.test_element_factory_subclass  s     	

 	)))4r   c                     [         R                  nU R                  UR                  S5         " S SU[        5      nU R                  U5        g )NrM   c                       \ rS rSrSrg)LTreeBuilderTest.test_element_factory_pure_python_subclass.<locals>.MyElementi  r   Nr}  r   r   r   r  rn    r  r   r  )r   _Element_Pyr   rV   r  re  )rI   baser  s      r   )test_element_factory_pure_python_subclass9TreeBuilderTest.test_element_factory_pure_python_subclass  s>     ~~*AB	j 	)))4r   c                      " S S5      n[         R                  U" 5       S9nUR                  U R                  5        U R	                  UR                  5       S5        g )Nc                   $    \ rS rSrSrS rS rSrg)3TreeBuilderTest.test_doctype.<locals>.DoctypeParseri  Nc                     XU4U l         g r   _doctype)rI   r   pubidsystems       r   doctype;TreeBuilderTest.test_doctype.<locals>.DoctypeParser.doctype  s    !%f 5r   c                     U R                   $ r   rw  r	  s    r   rL  9TreeBuilderTest.test_doctype.<locals>.DoctypeParser.close  s    }}$r   rw  )rU   rV   rW   rX   rx  r{  rL  rY   r   r   r   DoctypeParserru    s    H6%r   r  rC  r  z&-//W3C//DTD XHTML 1.0 Transitional//ENz7http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)r   rI  rK  r$  r   rL  )rI   r  rP  s      r   test_doctypeTreeBuilderTest.test_doctype  sM    	% 	% ]_5DLL!H	Ir   c                     " S S5      n[         R                  U" 5       S9  S H;  nU R                  [        U5         [         R                  U" U5      S9  S S S 5        M=     [         R                  U" [        S9S9  S HY  n[         R                  U" U[        S9S9nUR                  U R                  5        U R                  UR                  5       5        M[     g ! , (       d  f       M  = f)Nc                   (    \ rS rSrS\4S jrS rSrg)BTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilderi  Nc                     Xl         X l        g r   raise_inwhat)rI   r  r  s      r   rV  KTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__init__  s     ( 	r   c                 `    XR                   :X  a  U R                  U R                   5      eS nU$ )Nc                      g r   r   )r,   s    r   handle^TreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__.<locals>.handle  s    r   r  )rI   r   r  s      r   __getattr__NTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__  s)    ==())DMM22r   r  )rU   rV   rW   rX   r  rV  r  rY   r   r   r   RaisingBuilderr    s    (,: !r   r  rC  )rq  r=   rc  r  r  )r  )	r   rI  r  r  rE  rK  r$  r   rL  )rI   r  r   rP  s       r   test_builder_lookup_errors*TreeBuilderTest.test_builder_lookup_errors  s    
	 
	 	N,->E''
E:N5$9: ;: ? 	N?@>E\\N)S\TFKK%flln- ?	 ;:s   C
C.	r   N)rU   rV   rW   rX   r$  ra  r  r%  r+  r1  r8  r?  rD  rR  rY  rb  re  rj  rq  r  r  rY   r   r   r   r  r    s^    2G
 2G+*(
;R-0"+H''','5
5I".r   r  c                   J    \ rS rSrSrSrSrS rS rS r	S r
S	 rS
 rS rSrg)XMLParserTesti  s   <file><line>22</line></file>s   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>uX   <?xml version="1.0" encoding="iso-8859-1"?>
<money value="$£€𐅻">$£€𐅻</money>c                     U R                  UR                  S5        U R                  US   R                  S5        U R                  US   R                  S5        g )Nrf   r   line22)r   rk   r   r  s     r   _check_sample_element#XMLParserTest._check_sample_element  sF    '16*1D)r   c                     [         R                  S[         R                  5       S9nUR                  U R                  5        U R                  UR                  5       5        g )Nr   )r\   rD  )r   rI  rM  rK  r$  r  rL  )rI   r  s     r   test_constructor_args#XMLParserTest.test_constructor_args  sE    ,,&(nn&6  8T\\"""7==?3r   c                      " S S[         R                  5      nU" 5       nUR                  U R                  5        U R	                  UR                  5       5        g )Nc                       \ rS rSrSrg)-XMLParserTest.test_subclass.<locals>.MyParseri  r   Nr}  r   r   r   MyParserr    r  r   r  )r   rI  rK  r$  r  rL  )rI   r  rP  s      r   rR  XMLParserTest.test_subclass  s=    	r|| 	DLL!""6<<>2r   c                    [         R                  " 5          [         R                  " S[        5        [        R                  5       nUR                  U R                  5        UR                  5         S S S 5        g ! , (       d  f       g = f)Nerror)	warningscatch_warningssimplefilterDeprecationWarningr   rI  rK  ra  rL  r'  s     r   test_doctype_warning"XMLParserTest.test_doctype_warning  sO    $$&!!'+=>\\^FKK%LLN	 '&&s   AA::
Bc                   ^^ S m " U4S jS[         R                  5      nU" 5       nU R                  [        S5         UR	                  U R
                  5        S S S 5        UR                  5         U R                  T5        S =mm[        R                  " 5          [        R                  " S[        5        [        R                  " S[        5         " U4S jS5      nU" U" 5       S9nUR	                  U R
                  5        UR                  5         U R                  T5        U R                  TS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nc                   "   > \ rS rSrU 4S jrSrg)@XMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctypei  c                    > X4mg r   r   )rI   r,   r-   rx  s      r   r{  HXMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctype.doctype  s
     >r   r   NrU   rV   rW   rX   r{  rY   rw  s   r   MyParserWithDoctyper    s    * *r   r  r{  r  c                   "   > \ rS rSrU 4S jrSrg):XMLParserTest.test_subclass_doctype.<locals>.DoctypeParseri   c                    > XU4mg r   r   )rI   r   ry  rz  	_doctype2s       r   r{  BXMLParserTest.test_subclass_doctype.<locals>.DoctypeParser.doctype  s    !%f 5Ir   r   Nr  )r  s   r   r  r     s    6 6r   r  rC  r  )r   rI  r  RuntimeWarningrK  ra  rL  r   r  r  r  r  r   )rI   r  rP  r  rx  r  s       @@r   test_subclass_doctype#XMLParserTest.test_subclass_doctype  s   	*",, 	*
 %&"">9=KK% >(###9$$&!!'+=>!!'>:6 6
 )@FKK%LLNh'YLM '& >= '&s   EBE
E
E!c                 d   [         R                  " 5          [         R                  " S[        5        [         R                  " S[        5         " S S[
        R                  5      nU" 5       nUR                  U R                  5        UR                  5         S S S 5        g ! , (       d  f       g = f)Nr  c                       \ rS rSrSrg)DXMLParserTest.test_inherited_doctype.<locals>.MyParserWithoutDoctypei  r   Nr}  r   r   r   MyParserWithoutDoctyper    s    r   r  )
r  r  r  r  r  r   rI  rK  ra  rL  )rI   r  rP  s      r   test_inherited_doctype$XMLParserTest.test_inherited_doctype  sl    $$&!!'+=>!!'>: +-FKK%LLN '&&s   BB!!
B/c                 R   [         R                  [         R                  5       S9nUR                  U R                  5        UR                  5       nU R                  UR                  S5        U R                  UR                  S   S5        U R                  UR                  S5        g )NrC  moneyr   u
   $£€𐅻)
r   rI  rM  rK  sample3rL  r   rk   r   r   rC  s      r   test_parse_stringXMLParserTest.test_parse_string  sw    R^^%56DLL!LLN('*,CD!89r   r   N)rU   rV   rW   rX   r$  ra  r  r  r  rR  r  r  r  r  rY   r   r   r   r  r    s:    -GGMG*
43M<	:r   r  c                       \ rS rSrS rSrg)NamespaceParseTesti!  c                 B   SSS.n[         R                  [        5      nU R                  [	        UR                  SU5      5      S5        U R                  [	        UR                  SU5      5      S5        U R                  [	        UR                  SU5      5      S5        g )	Nhellor!  )hrO  z{hello}tabler   z.//{hello}tdr   z.//{foo}name)r   r   SAMPLE_XML_NS_ELEMSr   r   r   )rI   r  r  s      r   test_find_with_namespace+NamespaceParseTest.test_find_with_namespace"  s{    E*mm/0S[[?@!DS[[?@!DS[[?@!Dr   r   N)rU   rV   rW   rX   r  rY   r   r   r   r  r  !  s    Er   r  c                   b    \ 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)ElementSlicingTesti+  c                 D    U Vs/ s H  o"R                   PM     sn$ s  snf r   rj   )rI   elemlistr  s      r   
_elem_tagsElementSlicingTest._elem_tags,  s    '(x!x(((rn   c                 6    U R                  [        U5      5      $ r   )r  r   r  s     r   _subelem_tags ElementSlicingTest._subelem_tags/  s    tDz**r   c                     [         R                  S5      n[        U5       H  n[         R                  USU-  5        M     U$ )Nr   za%s)r   r   r  r  )rI   numchildrenr  r  s       r   _make_elem_with_children+ElementSlicingTest._make_elem_with_children2  s7    
 JJsO{#AMM!UQY' $r   c                   ^ U R                  S5      mU R                  TS   R                  S5        U R                  TS   R                  S5        U R                  [        U4S j5        U R                  [        U4S j5        g )Nr  r   a1a8c                     > T S   $ )N   r   r  s   r   r  ?ElementSlicingTest.test_getslice_single_index.<locals>.<lambda>B  s	    aer   c                     > T S   $ )Nir   r  s   r   r  r  C  s	    afr   )r  r   rk   r   
IndexErrorr  s    @r   test_getslice_single_index-ElementSlicingTest.test_getslice_single_index<  sc    ))"-14(2D)*m4*n5r   c                    U R                  S5      nU R                  U R                  USS  5      / SQ5        U R                  U R                  USS 5      / SQ5        U R                  U R                  USS 5      / SQ5        U R                  U R                  USS 5      SS/5        U R                  U R                  USS 5      SS/5        U R                  U R                  US S	 5      S
S/5        g )Nrj  r  )a3a4a5   r  r  r  r  r   a0r  )r  r   r  r  s     r   test_getslice_range&ElementSlicingTest.test_getslice_rangeE  s    ))!,12/1CD1Q02DE1R13EF1Q04,?1R1D$<@2A/$>r   c           	      L   U R                  S5      nU R                  U R                  USSS2   5      SS/5        U R                  U R                  US S S2   5      / SQ5        U R                  U R                  US S S2   5      SS/5        U R                  U R                  USS S2   5      S	S/5        U R                  U R                  USS [        R                  2   5      S
/5        U R                  U R                  USS [        R                  S-  2   5      S
/5        g )Nr     r   r  a9r  )r  r  a6r  r  r  r  @   r  r   r  ry   maxsizer  s     r   test_getslice_steps&ElementSlicingTest.test_getslice_stepsO  s   ))"-1R63dD\B3Q302JK3Q304,?14a41D$<@1>ckk>):;dVD1+=ckk2o+=)>?$Hr   c           	          U R                  S5      nU R                  U R                  US S S2   5      / SQ5        U R                  U R                  US S S2   5      SS/5        U R                  U R                  USS [        R                  * 2   5      S/5        U R                  U R                  USS [        R                  * S-
  2   5      S/5        U R                  U R                  USS [        R                  * S	-  2   5      S/5        g )
Nr  r  )r  a2r  r  r  r  r  r  r   r  r  r  s     r   test_getslice_negative_steps/ElementSlicingTest.test_getslice_negative_stepsY  s    ))!,4R413KL4R41D$<@1?s{{l?);<tfE1+<s{{l1n+<)=>G1+>s{{lB.>+>)?@4&Ir   c                    U R                  S5      nUSS2	 U R                  U R                  U5      SS/5        U R                  S5      nUSS 2	 U R                  U R                  U5      / 5        U R                  S5      nUS S S2	 U R                  U R                  U5      / 5        U R                  S5      nUS S S2	 U R                  U R                  U5      SS/5        U R                  S5      nUS	S S2	 U R                  U R                  U5      SS/5        U R                  S5      nUS S S2	 U R                  U R                  U5      S
/5        g )Nr  r   r   r  r  r  r  r  r   r  )r  r   r  r  s     r   test_delslice ElementSlicingTest.test_delsliceb  sT   ))!,acF++A.t=))!,abE++A.3))!,ddG++A.3))!,ddG++A.t=))!,addG++A.t=))!,ccF++A.7r   c                 t   U R                  S5      n[        R                  S5      US'   U R                  U R	                  U5      / SQ5        [        R                  S5      US'   U R                  U R	                  U5      / SQ5        U R                  [        5         [        R                  S5      US	'   S S S 5        U R                  [        5         [        R                  S5      US
'   S S S 5        U R                  U R	                  U5      / SQ5        g ! , (       d  f       Nh= f! , (       d  f       NC= f)Nr  r   r   r  r   r  r  r   r  )r  r   r   r  r   r  )r  r   r   r   r  r   r  r  s     r   test_setslice_single_index-ElementSlicingTest.test_setslice_single_index{  s    ))!,zz#!++A.0GH

3"++A.0FGz*::c?AaD +z*JJsOAbE +++A.0FG	 +***s   DD)
D&)
D7c                 V   U R                  S5      n[        S5       Vs/ s H  n[        R                  SU-  5      PM     snUSS& U R	                  U R                  U5      / SQ5        U R                  S5      n[        R                  S5      /USS& U R	                  U R                  U5      / SQ5        U R                  S5      n[        S5       Vs/ s H  n[        R                  SU-  5      PM     snUSS& U R	                  U R                  U5      / S	Q5        g s  snf s  snf )
Nr  r   b%sr   r  )r  b0b1r  r   )r  r   r  )r  r  r  b2r  )r  r  r   r   r   r  rI   r  r  s      r   test_setslice_range&ElementSlicingTest.test_setslice_range  s    ))!,16q:A"**UQY':!A++A.0HI))!,**S/"!A++A.0AB))!,16q:A"**UQY':!A++A.0NO ; ;s   "D!"D&c                    U R                  S5      n[        S5       Vs/ s H  n[        R                  SU-  5      PM     snUSSS2'   U R	                  U R                  U5      / SQ5        U R                  S5      nU R                  [        5         [        R                  S5      /USSS2'   S S S 5        U R                  [        5         [        S5       Vs/ s H  n[        R                  SU-  5      PM     snUSSS2'   S S S 5        U R                  [        5         / USSS2'   S S S 5        U R	                  U R                  U5      / S	Q5        U R                  S
5      n[        R                  S5      /USS [        R                  2'   U R	                  U R                  U5      / SQ5        [        R                  S5      /USS [        R                  S-  2'   U R	                  U R                  U5      / SQ5        g s  snf ! , (       d  f       GNb= fs  snf ! , (       d  f       GN#= f! , (       d  f       GN= f)Nrj  r   r  r   r  )r  r  r  r  r  r  r   r  )r  r  r  r  r  r  r  r  r   r  r  r   r  r  
r  r  r   r   r   r  r   r  ry   r  r  s      r   test_setslice_steps&ElementSlicingTest.test_setslice_steps  s   ))!,388<8aBJJuqy)8<!Aa%++A.0TU))!,z*

3(Aa!eH +z*7<Qx@x!

519-x@Aa!eH +z*Aa!eH +++A.0TU))!,ZZ_-!.S[[.++A.0GH!#C 1!
S[["_
++A.0GH! = +* A +***s;   "HHH""H=	H"#	H4
HH""
H14
Ic                 2   U R                  S5      n[        S5       Vs/ s H  n[        R                  SU-  5      PM     snUSSS2'   U R	                  U R                  U5      / SQ5        U R                  S5      nU R                  [        5         [        R                  S5      /USSS2'   S S S 5        U R                  [        5         [        S5       Vs/ s H  n[        R                  SU-  5      PM     snUSSS2'   S S S 5        U R                  [        5         / USSS2'   S S S 5        U R	                  U R                  U5      / S	Q5        U R                  S5      n[        R                  S5      /US
S [        R                  * 2'   U R	                  U R                  U5      / SQ5        [        R                  S5      /US
S [        R                  * S
-
  2'   U R	                  U R                  U5      / SQ5        [        R                  S5      /US
S [        R                  * S-  2'   U R	                  U R                  U5      / SQ5        g s  snf ! , (       d  f       GN= fs  snf ! , (       d  f       GNv= f! , (       d  f       GNb= f)Nr  r   r  r   r  )r  r  r  r  r   r  )r  r  r  r  r   r  r   r  r   r  )r  r   r  r  r  r  s      r   test_setslice_negative_steps/ElementSlicingTest.test_setslice_negative_steps  s   ))!,49!H=HqRZZ	*H=!Ab&	++A.0HI))!,z*C)Aa"fI +z*8=aA1EAI.AAa"fI +z*Aa"fI +++A.0HI))!, jjo.!/ckk\/++A.0GH "

30!
ckk\!^
++A.0GH"$**S/!2!
ckk\2
++A.0GH% > +* B +***s;   "III5"I0=	I5#	J
I-0I55
J
Jc                   ^ [         R                  S5      nU R                  [        5         S [	        S5       5       US S& S S S 5        U R                  [
        5         S US S& S S S 5        S mU R                  [
        S5         U4S j[	        S5       5       US S& S S S 5        g ! , (       d  f       Nl= f! , (       d  f       NZ= f! , (       d  f       g = f)Nrk   c              3   ,   #    U  H
  nS S-  v   M     g7frD  r   rE  s     r   re  IElementSlicingTest.test_issue123213_setslice_exception.<locals>.<genexpr>  s     +(QQqS(rG  r   r   c                      [        S5      erI  rK  r   r   r   rO  AElementSlicingTest.test_issue123213_setslice_exception.<locals>.f  rM  r   rJ  c              3   2   >#    U  H  nT" 5       v   M     g 7fr   r   rO  s     r   re  r    s     +(QQSS(rP  )r   r   r   rQ  r  r   r  )rI   r  rO  s     @r   #test_issue123213_setslice_exception6ElementSlicingTest.test_issue123213_setslice_exception  s    JJu01+%(+AbqE 2 y)AbqE *	) ##I{;+%(+AbqE <; 21 *) <;s#   B(B9C
(
B69
C

Cr   N)rU   rV   rW   rX   r  r  r  r  r  r  r  r  r   r  r  r  r  rY   r   r   r   r  r  +  sI    )+6?IJ82HPI(I,,r   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 S5      rS rS rS rS rS rS rS rSrg)IOTesti  c           	         [         R                  S5      nSUl        U R                  [	        U5      S5        S H]  nU R                  U5         U R                  [	        XS9S5        U R                  [	        XR                  5       S9S5        S S S 5        M_     S H  nU R                  U5         U R                  [	        XS9SU-  R                  U5      5        UR                  5       nU R                  [	        XS9SU-  R                  U5      5        S S S 5        M     [         R                  S5      nS	Ul        U R                  [	        U5      S
5        U R                  [	        USS9S5        U R                  [	        USS9S5        S H.  nU R                  [	        XS9SU-  R                  U5      5        M0     [         R                  S5      nS	UR                  S'   U R                  [	        U5      S5        U R                  [	        USS9S5        U R                  [	        USS9S5        S H.  nU R                  [	        XS9SU-  R                  U5      5        M0     [         R                  S5      nSUl        U R                  [	        U5      S5        U R                  [	        USS9S5        U R                  [	        USS9S5        S H.  nU R                  [	        XS9SU-  R                  U5      5        M0     [         R                  S5      nSUR                  S'   U R                  [	        U5      S5        U R                  [	        USS9S5        U R                  [	        USS9S5        S H.  nU R                  [	        XS9SU-  R                  U5      5        M0     g ! , (       d  f       GM  = f! , (       d  f       GM7  = f)Nrk   r0  z<tag>abc</tag>)r   r8  rB  s   <tag>abc</tag>)r9  rB  utf-32z2<?xml version='1.0' encoding='%s'?>
<tag>abc</tag>z<&"'>z<tag>&lt;&amp;"'&gt;</tag>r   s   <tag>&lt;&amp;"'&gt;</tag>r8  z><?xml version='1.0' encoding='%s'?>
<tag>&lt;&amp;"'&gt;</tag>r   z"<tag key="&lt;&amp;&quot;'&gt;" />s"   <tag key="&lt;&amp;&quot;'&gt;" />zF<?xml version='1.0' encoding='%s'?>
<tag key="&lt;&amp;&quot;'&gt;" />u   åöö<>u   <tag>åöö&lt;&gt;</tag>s   <tag>åöö&lt;&gt;</tag>s%   <tag>&#229;&#246;&#246;&lt;&gt;</tag>u=   <?xml version='1.0' encoding='%s'?>
<tag>åöö&lt;&gt;</tag>u   <tag key="åöö&lt;&gt;" />s   <tag key="åöö&lt;&gt;" />s(   <tag key="&#229;&#246;&#246;&lt;&gt;" />)r9  rB  rD  rC  r  u@   <?xml version='1.0' encoding='%s'?>
<tag key="åöö&lt;&gt;" />)	r   r   r   r   rh   r&  upperr<   r   )rI   rc   encr  s       r   r}  IOTest.test_encoding  s   zz% 	4*:;(Cc"  4!>)+  4))+!F)+ #" ) 6Cc"  4!>*,/017> 		  4!@*,12396#;@ #" 6 zz% 	4*GH4':.	04*=.	05CYt:3589:@&+G 6
 zz% &E4*OP4':6	84*=6	85CYt:<>ABCI6#;P 6
 zz% $	4*KL4':>	@4*=8	:5CYt:13678>sE 6
 zz% -E4*NO4':A	C4*=;	=MCYt:68;<=CVC[J Nu #" #"s   AN11A'O1
O	
O	c                 Z   U R                  [        R                  [        5        [        R                  [        R                  S5      5      nUR                  [        5        [        [        S5       nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       g = f)N   <site>ø</site>rm     <site>&#248;</site>)r  r   r  r   r   rC   r   r`   rG  r   rH  rI   rg   rO  s      r   test_write_to_filenameIOTest.test_write_to_filename  si    	((&1~~bff%<=>

6&$1QVVX'AB  s   2!B
B*c                 &   U R                  [        R                  [        5        [        R                  [        R                  S5      5      nUR                  [        SS9  [        [        S5       nU R                  UR                  5       S5        S S S 5        UR                  [        SS9  [        [        S5       nU R                  UR                  5       [        S5      5        S S S 5        g ! , (       d  f       Ne= f! , (       d  f       g = f)Nr"  r   rB  rm     <site>ø</site>r%  :   <?xml version='1.0' encoding='ISO-8859-1'?>
<site></site>)r  r   r  r   r   rC   r   r`   rG  r   rH  r>   r$  s      r   $test_write_to_filename_with_encoding+IOTest.test_write_to_filename_with_encoding  s    	((&1~~bff%<=>

6G
,&$1QVVX'CD   	

6L
1&$1QVVX{6(7 8  	    s   1!C1>*D1
C?
Dc                    U R                  [        R                  [        5        [	        [        S5       nUR
                  nS S S 5        [        R                  " [        5        [        R                  [        R                  S5      5      nUR                  [        SS9  [	        [        S5       nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  r"  r[   rB  rm  r(  )r  r   r  r   rG  r\   r   rC   r   r`   r   rH  )rI   rO  r\   rg   s       r   !test_write_to_filename_as_unicode(IOTest.test_write_to_filename_as_unicode+  s    	((&1&#!zzH  ~~bff%<=>

6I
.&$1QVVX'?@     s   C0!C+
C(+
C9c                 V   U R                  [        R                  [        5        [        R                  [        R                  S5      5      n[        [        SSS9 nUR                  USS9  U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       S5        S S S 5        [        [        SSS	S
9 nUR                  USS9  U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       S5        S S S 5        [        [        SSS9 nUR                  USS9  U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       GNB= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr"  r  r   rB  r[   rm  r(  rV  xmlcharrefreplace)r\   errorsr#  r%  s   <site></site>r  r   r  r   r   rC   r   rG  r`   r  r  r   rH  r$  s      r   test_write_to_text_fileIOTest.test_write_to_text_file6  s   	((&1~~bff%<=>&#0AJJq9J-QXX& 1 &$1QVVX'CD   &#8KLPQJJq9J-QXX& M &$1QVVX(BC   &#5JJq9J-QXX& 6 &$1QVVX'?@   10   ML   65  sH   ,G !G,G'!G8,H	!H
G
G$'
G58
H	
H
H(c                    U R                  [        R                  [        5        [        R                  [        R                  S5      5      n[        [        S5       nUR                  U5        U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr"  r  rm  r#  r2  r$  s      r   test_write_to_binary_file IOTest.test_write_to_binary_fileK  s    	((&1~~bff%<=>&$1JJqMQXX&   &$1QVVX'AB      s   -C"!C
C
C+c                    U R                  [        R                  [        5        [        R                  [        R                  S5      5      n[        [        S5       nUR                  USS9  U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       S5        S S S 5        [        [        S5       nUR                  USS9  U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nj= f! , (       d  f       g = f)	Nr"  r  r   rB  rm  r(  r%  r)  r2  r$  s      r   'test_write_to_binary_file_with_encoding.IOTest.test_write_to_binary_file_with_encodingT  s   	((&1~~bff%<=>&$1JJq7J+QXX&   &$1QVVX'CD   &$1JJq<J0QXX&   &$1QVVX67          s0   ,E!!E,E*!E;
E
E'*
E8;
F	c                 R   U R                  [        R                  [        5        [        R                  [        R                  S5      5      n[        [        S5       nUR                  USS9  U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       SR                  S5      5        S S S 5        [        [        SSS9 nUR                  USS9  U R                  UR                  5        S S S 5        [        [        S5       nU R                  UR                  5       SR                  S5      5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ny= f! , (       d  f       g = f)	Nr"  r  rB  rB  rm  u7   <?xml version='1.0' encoding='utf-16'?>
<site>ø</site>r   )	buffering)r  r   r  r   r   rC   r   rG  r`   r  r  r   rH  r<   r$  s      r   "test_write_to_binary_file_with_bom)IOTest.test_write_to_binary_file_with_bome  s/   	((&1~~bff%<=>&$1JJq8J,QXX&   &$1QVVX,,2F8,<>  
 &$!,JJq8J,QXX& - &$1QVVX,,2F8,<>      
 -,  s0   ,E%!0E6(,F,0F%
E36
F
F
F&c                     [         R                  5       n[        R                  " S5      nUR	                  U5        U R                  UR                  5       R                  S5        g Nz"<?xml version="1.0"?><site></site>site)r   rC   r]   r_   rE  r   r   rk   rI   rg   rN  s      r   test_read_from_stringioIOTest.test_read_from_stringioy  sE    ~~EF

6++V4r   c                     [         R                  [         R                  S5      5      n[        R                  " 5       nUR                  USS9  U R                  UR                  5       S5        g Nr"  r[   rB  )r   rC   r   r]   r_   r`   r   ra   rB  s      r   test_write_to_stringioIOTest.test_write_to_stringio  sM    ~~bff%<=>

6I
.*,CDr   c                     [         R                  5       n[        R                  " S5      nUR	                  U5        U R                  UR                  5       R                  S5        g Ns"   <?xml version="1.0"?><site></site>rA  )r   rC   r]   r^   rE  r   r   rk   rI   rg   r;  s      r   test_read_from_bytesioIOTest.test_read_from_bytesio  sD    ~~jjBC

3++V4r   c                     [         R                  [         R                  S5      5      n[        R                  " 5       nUR                  U5        U R                  UR                  5       S5        g Nr"  r#  )r   rC   r   r]   r^   r`   r   ra   rK  s      r   test_write_to_bytesioIOTest.test_write_to_bytesio  sG    ~~bff%<=>jjl

3)CDr   c                       \ rS rSrSrg)IOTest.dummyi  r   Nr}  r   r   r   dummyrS    s    r   rT  c                    [         R                  " S5      nU R                  5       nUR                  Ul        [        R                  5       nUR                  U5        U R                  UR                  5       R                  S5        g r@  )
r]   r_   rT  rH  r   rC   rE  r   r   rk   )rI   rN  readerrg   s       r   test_read_from_user_text_reader&IOTest.test_read_from_user_text_reader  s[    EFkk~~

6++V4r   c                     [         R                  [         R                  S5      5      n[        R                  " 5       nU R                  5       nUR                  Ul        UR                  USS9  U R                  UR                  5       S5        g rF  )	r   rC   r   r]   r_   rT  r`   r   ra   )rI   rg   rN  writers       r   test_write_to_user_text_writer%IOTest.test_write_to_user_text_writer  sc    ~~bff%<=>||

6I
.*,CDr   c                 8   [         R                  " S5      nU R                  5       nUR                  Ul        [        R                  5       nUR                  U5        U R                  UR                  5       R                  S5        [        R                  5       ng rJ  )
r]   r^   rT  rH  r   rC   rE  r   r   rk   )rI   r;  rV  rg   s       r   !test_read_from_user_binary_reader(IOTest.test_read_from_user_binary_reader  sg    jjBChh~~

6++V4~~r   c                 "   [         R                  [         R                  S5      5      n[        R                  " 5       nU R                  5       nUR                  Ul        UR                  U5        U R                  UR                  5       S5        g rO  )	r   rC   r   r]   r^   rT  r`   r   ra   rI   rg   r;  rZ  s       r    test_write_to_user_binary_writer'IOTest.test_write_to_user_binary_writer  s^    ~~bff%<=>jjlyy

6)CDr   c                 p   [         R                  [         R                  S5      5      n[        R                  " 5       nU R                  5       nUR                  Ul        S Ul        UR                  Ul        UR                  USS9  U R                  UR                  5       SR                  S5      5        g )Nz<site />c                      gr  r   r   r   r   r  BIOTest.test_write_to_user_binary_writer_with_bom.<locals>.<lambda>  s    $r   rB  rB  z0<?xml version='1.0' encoding='utf-16'?>
<site />)r   rC   r   r]   r^   rT  r`   seekabletellr   ra   r<   ra  s       r   )test_write_to_user_binary_writer_with_bom0IOTest.test_write_to_user_binary_writer_with_bom  s    ~~bff^45jjlyy&hh

6H
-%vh/	1r   c           	      R   [         R                  S5      nU R                  [         R                  US5      SR	                  [         R                  US5      5      5        U R                  [         R                  US5      SR	                  [         R                  US5      5      5        g )Nz<tag>foo</tag>r[   r   rB  r   )r   r   r   r5  rY  rZ  r  s     r   test_tostringlist_invariant"IOTest.test_tostringlist_invariant  sy    }}-.KKi(GGBOOD)45	7 	KKh'HHR__T845	7r   c                    [         R                  S5      nU R                  [         R                  US5      S5        U R                  [         R                  USSS9S5        U R                  [         R                  USSS9S5        g )Nz<tag>a<x />b<y></y>c</tag>r[   z<tag>a<x />b<y />c</tag>T)short_empty_elementsFz<tag>a<x></x>b<y></y>c</tag>)r   r   r   r5  r  s     r   test_short_empty_elements IOTest.test_short_empty_elements  sz    }}9:KKi(&	( 	KKidKC&	( 	KKieKD*	,r   r   N)rU   rV   rW   rX   r}  r%  r*  r-  r3  r6  r9  r=  rC  rG  rL  rP  rT  rW  r[  r^  rb  ri  rl  rp  rY   r   r   r   r  r    sv    CJJC8	AA*C7">(5E5E 5E E
17
,r   r  c                   ,    \ rS rSrS rS rS rS rSrg)ParseErrorTesti  c                 T    U R                  [        R                  5       [        5        g r   )r   r   r  r  r	  s    r   rR  ParseErrorTest.test_subclass  s    bmmo{;r   c                 v     [         R                  U5        g ! [         R                   a  nUs S nA$ S nAff = fr   )r   r   r  )rI   r  r  s      r   
_get_errorParseErrorTest._get_error  s,    	MM!}} 	H	s    8388c                    U R                  U R                  S5      R                  S5        U R                  U R                  S5      R                  S5        U R                  U R                  S5      R                  S5        g )Nr!  )r   r   z<tag>&foo;</tag>)r   r  zfoobar<)r   rj  )r   rw  positionr	  s    r   test_error_position"ParseErrorTest.test_error_position  s`    /88&A);<EEvN3<<fEr   c                     SS K Js  Js  Jn  U R	                  U R                  S5      R                  UR                  UR                     5        g )Nr   r!  )	xml.parsers.expat.errorsparsersexpatr1  r   rw  codecodesXML_ERROR_SYNTAX)rI   ERRORSs     r   test_error_codeParseErrorTest.test_error_code  s9    11/44V445	7r   r   N)	rU   rV   rW   rX   rR  rw  r{  r  rY   r   r   r   rs  rs    s    <F
7r   rs  c                       \ rS rSrS rSrg)KeywordArgsTesti  c                 X   [         R                  S5      nU R                  UR                  SS 5      UR                  SS S95        U R                  UR	                  SS S 5      UR	                  SS S S95        U R                  UR                  SS 5      UR                  SS S95        U R                  [        UR                  SS 5      5      [        UR                  SS S95      5        U R                  [         R                  S5      R                  0 5        [         R                  S[        SSS95      [         R                  S[        SSS9S9[         R                  S[        SS	9SS
9[         R                  SSSS9[         R                  S[        SSS9SSS9/nU HC  nU R                  UR                  S5        U R                  UR                  [        SSS95        ME     [         R                  US   SSS0S9nU R                  UR                  S   S5        U R                  [        S5         [         R                  SS5        S S S 5        U R                  [        S5         [         R                  SSS9  S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Nz
<a>foo</a>r   )pathr  )r  r*  r  #r!  )r  r  )r   )r  )r  r   r	  key1value1zmust be dict, not strzI'm not a dict)r   r   r   r   r   r   r   r   r   r   r~   rk   r  r  r   )rI   r   elementsr  r%  s        r   test_issue14818KeywordArgsTest.test_issue14818  s7   FF< T*ST:	<Ct4dtL	N3-=	?ajjd34ajjcdjCD	F 	C//4JJsDce45JJs4SU#;J<JJsDcNuJ5JJsJ/JJsDce435JI
 AQUUC(QXXt'?@  ]]8A;&(9K]L6*H5##I/FGJJs,- H##I/FGJJs#3J4 HG HGGGs   7J
,J

J
J)r   N)rU   rV   rW   rX   r  rY   r   r   r   r  r    s    5r   r  c                   *    \ rS rSr\S 5       rS rSrg)NoAcceleratorTesti  c                 J    [         [        La  [        R                  " S5      eg )Nzonly for the Python version)r   r   r}  SkipTestrt   s    r   ru   NoAcceleratorTest.setUpClass  s     T>##$ABB r   c                     U R                  [        R                  R                  [        R
                  5        U R                  [        R                  R                  [        R
                  5        g r   )r   r   r   rV  typesFunctionTyperI  r	  s    r   test_correct_import_pyET*NoAcceleratorTest.test_correct_import_pyET  sD     	dll33U5G5GHdnn55u7I7IJr   r   N)rU   rV   rW   rX   r   ru   r  rY   r   r   r   r  r    s    C C
Kr   r  c                       \ rS rSrS rSrg)BoolTesti   c                    [         R                  S5      nSnU R                  [        U5         [	        U5      nS S S 5        U R                  WS5        [         R                  US5        U R                  [        U5         [	        U5      nS S S 5        U R                  WS5        g ! , (       d  f       Ns= f! , (       d  f       N2= f)Nz<a style="new"></a>zTesting an element's truth value will always return True in future versions.  Use specific 'len\(elem\)' or 'elem is not None' test instead.Fr   T)r   r   r  r  boolrc  r  )rI   r  r   r   
new_results        r   test_warningBoolTest.test_warning!  s    MM/0N 	 ""#5s;!WF < 	fe$ 	a""#5s;aJ <j$' <; <;s   B' B8'
B58
Cr   N)rU   rV   rW   rX   r  rY   r   r   r   r  r     s    (r   r  c                 0    [         R                  " U 40 UD6$ r   )r   canonicalize)r5  re   s     r   c14n_roundtripr  4  s    S,G,,r   c                   *    \ rS rSrSrS rS rS rSrg)C14NTesti8  Nc                 :   U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S	5      S
5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        SnU R                  [        U5      U5        SnU R                  [        U5      U5        SnU R                  [        U5      U5        g )Nz<doc/>z<doc></doc>z<doc xmlns='uri'/>z<doc xmlns="uri"></doc>z <prefix:doc xmlns:prefix='uri'/>z,<prefix:doc xmlns:prefix="uri"></prefix:doc>z+<doc xmlns:prefix='uri'><prefix:bar/></doc>z7<doc><prefix:bar xmlns:prefix="uri"></prefix:bar></doc>z<elem xmlns:wsu='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' />z<elem></elem>z*<doc>Hello, world!<!-- Comment 1 --></doc>z<doc>Hello, world!</doc>z<value>&#x32;</value>z<value>2</value>zG<compute><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></compute>zI<compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>zS<compute expr='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</compute>z{<compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>z7<norm attr=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z/<norm attr=" '    &#xD;&#xA;&#x9;   ' "></norm>z6<normNames attr='   A   &#x20;&#13;&#xa;&#9;   B   '/>z=<normNames attr="   A    &#xD;&#xA;&#x9;   B   "></normNames>z7<normId id=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z1<normId id=" '    &#xD;&#xA;&#x9;   ' "></normId>z5<X xmlns="http://nps/a"><Y targets="abc,xyz"></Y></X>zJ<X xmlns="http://nps/a"><Y xmlns="http://nsp/b" targets="abc,xyz"></Y></X>zN<X xmlns="http://nps/a"><Y xmlns:b="http://nsp/b" b:targets="abc,xyz"></Y></X>)r   r  rI   r5  s     r   test_simple_roundtripC14NTest.test_simple_roundtrip>  s   1=A(<=)	+(JK:	<(UVE	G  )M  N	 	(TU&	((?@	 (qrW	Y  )B  C J	K(ab?	A(`aK	M(abA	C F,c2Z,c2^,c2r   c           	         [         R                  " S5      nU R                  [        USS9S5        U R                  [        USS/S9S5        U R                  [        USS/S	9S
5        U R                  [        USS/S/S9S5        U R                  [        USSS/S	9S5        U R                  [        USS/S9S5        U R                  [        USSS/S	9S5        U R                  [        USS/S9S5        g )Nz        <root xmlns:x="http://example.com/x">
            <a x:attr="attrx">
                <b>abtext</b>
            </a>
            <b>btext</b>
            <c>
                <x:d>dtext</x:d>
            </c>
        </root>
        T)
strip_textz<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}attr)r  exclude_attrszc<root><a><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}d)r  exclude_tagszb<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c></c></root>)r  r  r  z4<root><a><b>abtext</b></a><b>btext</b><c></c></root>r   r   zC<root><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>)r  za<root>
    
    
    <c>
        <x:d xmlns:x="http://example.com/x">dtext</x:d>
    </c>
</root>zI<root><a xmlns:x="http://example.com/x" x:attr="attrx"></a><c></c></root>zu<root>
    <a xmlns:x="http://example.com/x" x:attr="attrx">
        
    </a>
    
    <c>
        
    </c>
</root>)r  r  r   r  r  s     r   test_c14n_exclusionC14NTest.test_c14n_exclusionf  sA   oo 
 
 	340	 	34@\?]^	 	34?X>YZ	 	34@\?])B(CE	 	34sCjI	
 	3c3Z8	 	34?XZ]>^_	 	3.G-MN
	r   c                 l
   [        SSS9n[        [        R                  R                  U5      n[        [        R                  " U5      5       Vs/ s H   nUR                  S5      (       d  M  US S PM"     nnU Vs/ s H  nUR                  S5      (       d  M  UPM     nnU VVs0 s H  nUR                  S5      (       d  M  U[        R                  U" U5      S-   5      R                  5        Vs0 s HE  nUR                  R                  S5      S	   UR                  =(       d    S
R                  5       U4_MG     sn_M     nnnU VVs0 s He  nUU Vs/ s HS  nUR                  SU S35      (       d  M  UR!                  SS5      S	   U;   d  M:  X7UR!                  SS5      S	      4PMU     sn_Mg     n	nnU R#                  S[%        U	R'                  5        V
Vs/ s H  n
U
  H  nUPM     M     snn
5      5        S.S jnU	R)                  5        GH  u  pU
 GH  u  pU" US5      S:H  nU" US5      S:H  nU" US5      S:H  nSU;   a  US   S   R+                  S5       Vs/ s H)  nSUR-                  S5       SUR-                  S5       3PM+     nnUS   S   R+                  S5       Vs/ s H)  nSUR-                  S5       SUR-                  S5       3PM+     nnOS =nnSR	                  S [        UR)                  5       5       5       5      nU R/                  U SU S35         US:X  a  U(       d  U R1                  S U 35        US!:X  a  U(       d  U R1                  S U 35        SU;   a-  US   S   R3                  S"5       b  U R1                  S#U 35        U" US-   5      nUS$:X  ar  [5        U" S%5      S&5       n[5        US&5       n[6        R8                  " UR;                  5       R=                  S'UR;                  5       5      5      nS S S 5        S S S 5        [        R?                  UUUUUUS(9n[5        U" US-   5      S)S*S+9 nUR;                  5       nUS,:X  a$  UR=                  S-S
5      nUR=                  S-S
5      nS S S 5        U R#                  WU5        S S S 5        GM     GM     g s  snf s  snf s  snf s  snnf s  snf s  snnf s  snn
f s  snf s  snf ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       GM  = f)/Nzc14n-20r   r   z.xmlr7  inc14n}r  r   out_r]  r      c                 .    U R                  XS45      S   $ )Nr   r   )r   )configoption_namer*  s      r   
get_option+C14NTest.test_xml_c14n2.<locals>.get_option  s    ::kR=9!<<r   IgnoreCommentstrueTrimTextNodesPrefixRewrite
sequential
QNameAwarez/{http://www.w3.org/2010/xml-c14n2}QualifiedAttr{NSNamez){http://www.w3.org/2010/xml-c14n2}Element,c              3   x   #    U  H0  u  nu  p#U S U=(       d    SR                  S U 5       5       3v   M2     g7f)=r  c              3   \   #    U  H"  oR                   R                  S 5      S   v   M$     g7f)r  r  N)rk   split)rd  r   s     r   re  4C14NTest.test_xml_c14n2.<locals>.<genexpr>.<genexpr>  s      /WhC0@0Dhs   *,N)rY  )rd  r   r   r^  s       r   re  *C14NTest.test_xml_c14n2.<locals>.<genexpr>  s?      (3I//u fAeWsxx/Wh/W'WXY3Is   8:()
inNsRedeclz2Redeclared namespace handling is not supported in inNsSuperfluousz.{http://www.w3.org/2010/xml-c14n2}XPathElementz2QName rewriting in XPath text is not supported in inC14N5z	world.txtrm  s   &ent2;)	from_filewith_commentsr  rewrite_prefixesqname_aware_tagsqname_aware_attrsrr  rB  inC14N3z attr="default"r   ) r
   r   r:   r  rY  r6  listdirendswith
startswithr   rE  r   rk   r  r   r9  rsplitr   r   valuesr   r   r   r&  ry  r   rG  r]   r^   rH  r9   r  )rI   datadir	full_pathfilenamefilesinput_filesoptionconfigs
input_filetestsoutput_filesoutput_filer  r  keep_commentsr  r  r  qattrsqtagsconfig_descrrO  entity_filer   r   s                            r   test_xml_c14n2C14NTest.test_xml_c14n2  s   9];BGGLL'2	/5bjj6I/J //J8%%f- #2/J / &+
%*""4( U 	 
 "
 """6*H !hhy':V'CDLLN OF 

  %b)V[[->B,E,E,G+PPN 
 " 	 
" *
 *
  % %H&&j\';< A OOC+B/7: A8??3#:2#>?@ %  * 	 
 	S,1LLN"-,:L+ + N"- . 	/	= ).$J'3# *,!.17!8'O-067
#-O$-0<$= 6) #)"6q"9"A"AM#O#OB RVVD\N"RVVF^,<=#O   #)"6q"9"A"AG#I#IB RVVD\N"RVVF^,<=#I  E &*)EF  #xx (39&,,.3I(  
 \\[M<."BC!\1:JPQ\P]^`!%66?OPQ\P]^`#v-&2Fq2I2N2NL3NUY3ZPQ\P]^` "*v"56A!Y.!)K"8$?;!%a!$&JJqvvx/?/?	;K[K[K]/^$_ "/ @ ??"#&3#-)9).& + JD if(<=sVTXY#$668%2'/'7'78I2'NH#'<<0A2#FD U $$Xt4A DC7 (4 )6E/



"- 
< "/ @? UT5 DCs   S .	S =SS(S/S5AS
SSS=SS5S#S +0S&60S+3BT#T	AS0T	$4T#;T	T#
SS0
S>:T	
TT#
T T##
T3r   )	rU   rV   rW   rX   maxDiffr  r  r  rY   r   r   r   r  r  8  s    G
&3PG`b5r   r  c                    [        SS/S9qU c  [        n U qS n[        R                  " U5        SSKJn  [        R                  R                  nUR                  5       n[        R                  " UR                  U5        [        R                  " UR                  5        UR                  n[        R                  " [        USU5        UR                  5       Ul        [        [        S5      (       aX  [        R                  [        R                   [        R"                  5      n[        R                  " [        R                  /UQ76   g g )	NrM   rN   )blockedc                      S =q qg r   r   r   r   r   cleanupsetUpModule.<locals>.cleanup)  s    Tr   r   rF   r  _set_factories)r   r   r   r}  addModuleCleanuprH   rG   r  _namespace_mapr"  r  r   r  setattrr   r  r  r   )moduler  rG   r  
nsmap_copyr  old_factoriess          r   setUpModuler    s     6(6'79D~ 
B g& &!!00EJellJ7ekk* ##Jg{HjI#*K r#$$))"**bee<!!""3"3DmD %r   __main__)Tr[   r   )[r"  r2   r  r]   ra  r   r:   rz   rw  ry   r  r  r}  unittest.mockr!   r  r  
contextlibr   r   r   r   r/   r   test.supportr   r	   r
   r   r   r   test.support.import_helperr   test.support.os_helperr   r   r   r  r<   UnicodeEncodeErrorr  rF  r8  r  r  r  r  r  r  r  r   r&   r6   r>   TestCaser@   rh   rm   rp   r   r  r  formatescaper  r  r  rV  r  r   rc  rq  rw  r{  r  r  r  r  r  r  r  r  rs  r  r  r  r  r  r  rU   mainr   r   r   <module>r     s      	   	   
       "  %  " ( C C : ) 	,}=A'" _]C 3MJ 
 "
 E #( 4
L"" 
L&= =@DPh'' DPN(n9)) n9f	  	   !      F4;;~t,- 	 	'	" # X X 	 	 	 p78$$ p7lm?x   m?hB4(9(9 B4JX7_h&7&7 X7v

 

s 
S E(*;*; EP5.(++ 5.pv:h'' v:r\(h'' \(~t.h'' t.nQ:H%% Q:hE** Ed,** d,LC,X C,L7X&& 7* 5h''  5HK)) K (x   ((-`5x   `5H"EJ zMMO gP  A


?
@@As   M	 	M"