Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_minidom.cpython-34.pyc

�
g f���@s�ddlZddlZddlmZmZddlZddlZddlmZm	Z	m
Z
mZddlmZeddd�Z
dZdd	d
�Zdd�Zd
d�ZGdd�dej�Zdd�Zedkr�e�ndS)�N)�run_unittest�findfile)�parse�Node�Document�parseString)�getDOMImplementationztest.xmlZsubdirZxmltestdataa<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE doc PUBLIC 'http://xml.python.org/public' 'http://xml.python.org/system' [
  <!ELEMENT e EMPTY>
  <!ENTITY ent SYSTEM 'http://xml.python.org/entity'>
]><doc attr='value'> text
<?pi sample?> <!-- comment --> <e/> </doc>cCst�jdd|�S)N�doc)r�createDocument)�doctype�r�6/opt/alt/python34/lib64/python3.4/test/test_minidom.py�create_doc_without_doctypesrcCs�t�jddd�}g|j_g|j_tjjjddd�}|jjj	|�tjjj
dddd�}d|_d|_d|_
|jjj	|�|S)	Nr	zmy-notationz"http://xml.python.org/notations/myz	my-entityz!http://xml.python.org/entities/myz1.0zutf-8zus-ascii)rZcreateDocumentType�entitiesZ_seq�	notations�xml�dom�minidomZNotation�appendZEntity�version�encoding�actualEncoding)rZnotationZentityrrr
�create_nonempty_doctypes					rcCsCt�}t|�}||jjd�_||jjd�_|S)Nr)rrr�item�
ownerDocumentr)rr	rrr
�create_doc_with_doctype-s
	rc@s>eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*dRdS�Z+dTdU�Z,dVdW�Z-dXdY�Z.dZd[�Z/d\d]�Z0d^d_�Z1d`da�Z2dbdc�Z3ddde�Z4dfdg�Z5dhdi�Z6djdk�Z7dldm�Z8dndo�Z9dpdq�Z:drds�Z;dtdu�Z<dvdw�Z=dxdy�Z>dzd{�Z?d|d}�Z@d~d�ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXd�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_d�d��Z`d�d��Zad�d��Zbd�d��Zcd�d��Zdd�d��Zed�d��Zfd�d��Zgd�d��Zhd�d��Zid�d��Zjd�d��Zkd�d��Zld�d��Zmd�d��Znd�d��Zod�d��ZpGd�d��d��Zqd�d��Zrd�d��Zsd�d��Ztd�d��Zud�d��Zvd�d��Zwd�d��Zxd�d��Zyd�d��Zzd�d��Z{d�d��Z|d�d��Z}d�d��Z~d�d��Zd�d��Z�d�d��Z�dd�Z�dd�Z�dd�Z�dd�Z�dS(	�MinidomTestZTestcCs|j||�dS)N)�
assertTrue)�self�testZtestnamerrr
�confirm5szMinidomTest.confirmcCs-|j}|j||kd||f�dS)Nzlooking for %r, found %r)Z	wholeTextr )r�node�s�trrr
�checkWholeText8s	zMinidomTest.checkWholeTextcCsHttd��3}t|�}|j�|jt|t��WdQXdS)N�rb)�open�tstfiler�unlinkr �
isinstancer)r�filerrrr
�testParseFromBinaryFile<s
z#MinidomTest.testParseFromBinaryFilecCsNttddd��3}t|�}|j�|jt|t��WdQXdS)N�rrz
iso-8859-1)r&r'rr(r r)r)rr*rrrr
�testParseFromTextFileBs
z!MinidomTest.testParseFromTextFilecCsBtt�}|j|jd�|jjd�k�|j�dS)NZLI)rr'r �getElementsByTagName�documentElementr()rrrrr
�testGetElementsByTagNameHsz$MinidomTest.testGetElementsByTagNamecCs�td�}|j}|jd}|jd�}|j||�|jt|j�dko�|jjdko�|jd|ko�|jjd�|ko�|jd|ko�|jjd�|ko�|j	|ko�|j
|ko�|j�dkd�|jd�}|j|d�|jt|j�dko�|jjdko�|jd|ko�|jjd�|ko�|jd|ko�|jjd�|ko�|j
|ko�|j|ko�|j�d	kd�|jd
�}|j||�|jt|j�dko�|jjdko�|jd|ko�|jjd�|ko�|jd|ko�|jjd�|ko�|j
|ko�|j|ko�|j�dkd�|j�dS)
Nz<doc><foo/></doc>r�element��z<doc><element/><foo/></doc>z0testInsertBefore -- node properly placed in tree�z%<doc><element/><foo/><element/></doc>�bar�z+<doc><element/><foo/><bar/><element/></doc>)rr/�
childNodes�
createElement�insertBeforer �len�lengthr�
firstChild�	lastChild�toxml�previousSibling�nextSiblingr()rr�root�elemZnelemZnelem2rrr
�testInsertBeforeNsR	
	zMinidomTest.testInsertBeforecCs�td�}|jd�}|jd�}|jd�}|jd�}|jj|�|j�}|j|�|j|�|j|�||||||fS)Nz<doc/>Zoriginal�foor5Zbat)r�createTextNoder/�appendChildZcreateDocumentFragment)rr�orig�c1�c2�c3�fragrrr
�_create_fragment_test_nodesys


z'MinidomTest._create_fragment_test_nodescCs�|j�\}}}}}}|jj|d�|jt|jj�||||fkd�|j�|j�|j�\}}}}}}|jj||�|jt|jj�||||fkd�|j�|j�dS)NzinsertBefore(<fragment>, None)zinsertBefore(<fragment>, orig))rLr/r9r �tupler7r()rrrGrHrIrJrKrrr
�testInsertBeforeFragment�s


z$MinidomTest.testInsertBeforeFragmentcCsstt�}|jj|jd��|j|jjdjdk�|j|jjdjdk�|j	�dS)NZHellor3z#comment���rO)
rr'r/rF�
createCommentr r7�nodeName�datar()rrrrr
�testAppendChild�s
  zMinidomTest.testAppendChildcCst|j�\}}}}}}|jj|�|jt|jj�||||fkd�|j�|j�dS)NzappendChild(<fragment>))rLr/rFr rMr7r()rrrGrHrIrJrKrrr
�testAppendChildFragment�s
z#MinidomTest.testAppendChildFragmentcCs~|j�\}}}}}}|jj||�|j�|jt|jj�|||fkd�|j�|j�dS)NzreplaceChild(<fragment>))rLr/�replaceChildr(r rMr7)rrrGrHrIrJrKrrr
�testReplaceChildFragment�s
$
z$MinidomTest.testReplaceChildFragmentcCs�t�}|jd�}|jd�}|jtjj|j|�|j|�|jtjj|j||�|jtjj|j	||�|j
}|jtjj|j|�|jtjj|j|�|j|�|j
�dS)Nr1�text)rr8rE�assertRaisesrr�HierarchyRequestErrrFr9rU�
attributesZsetNamedItemZsetNamedItemNSr()rrrBrWZnodemaprrr
�testLegalChildren�s 	
	
zMinidomTest.testLegalChildrencCs�t�}|jd�}|j}d|d<|jd�}|j|j|kd�|j|j|kd�|j|jdkd�|j|jdkd�|j	�|j	�dS)	Nr1r5rDrz-NamedNodeMap.__setitem__() sets ownerDocumentz,NamedNodeMap.__setitem__() sets ownerElementz%NamedNodeMap.__setitem__() sets valuez)NamedNodeMap.__setitem__() sets nodeValue)
rr8rZrr r�ownerElement�value�	nodeValuer()rrrB�attrs�arrr
�testNamedNodeMapSetItem�s		

z#MinidomTest.testNamedNodeMapSetItemcCsUtt�}|j|�|j|jd��|j|jdj�|j�dS)NrDr3rO)rr'r rFrPr7r()rrrrr
�testNonZero�s

zMinidomTest.testNonZerocCs:tt�}|j|j�|j�|j|j�dS)N)rr'rr7r(�assertFalse)rrrrr
�
testUnlink�s
zMinidomTest.testUnlinkc	Cs9tt��}|j|j�WdQX|j|j�dS)N)rr'rr7rc)rrrrr
�testContext�szMinidomTest.testContextcCs=t�}|j|jd��|j|j�|j�dS)N�abc)rrFr8r r/r()rrrrr
�testElement�s	zMinidomTest.testElementcCs�td�}|j}|jdd�|j|j�dkd�|jd�}|j|j|kd�|j|j|jkd�|j�dS)Nz<abc/>�spam�jam2z<abc spam="jam2"/>�testAAAz!setAttribute() sets ownerDocumentz setAttribute() sets ownerElement)	rr/�setAttributer r>�getAttributeNoderr\r()rr�elr`rrr
rj�s	zMinidomTest.testAAAcCs_td�}|j}|jdd�|jdd�|j|j�dkd�|j�dS)Nz<abc/>rh�jamriz<abc spam="jam2"/>�testAAB)rr/rkr r>r()rrrmrrr
ro�s	zMinidomTest.testAABcCsBt�}|j|jd��}|jdd�|j|jd�dk�|j|jdjdk�|jdd�|j|jd�dk�|j|jdjdk�|jt|j�dk�|jdd�|j|jd�dk�|j|jdjdk�|jt|j�dk�|j	�dS)Nrf�def�ghiZjklZmnor2Znewval)
rrFr8rkr �getAttributerZr]r:r()rr�childrrr
�testAddAttrs	zMinidomTest.testAddAttrcCs�t�}|j|jd��}|jt|j�dk�|jdd�|jt|j�dk�|jd=|jt|j�dk�|j�dS)Nrfrrprqr3)rrFr8r r:rZrkr()rrrsrrr
�testDeleteAttrs	
zMinidomTest.testDeleteAttrcCs�t�}|j|jd��}|jdd�|jt|j�dk�|jtj	j
|jd�|jd�|jt|j�dk�|j�dS)Nrfrprqr3rDr)
rrFr8rkr r:rZrXrr�NotFoundErrZremoveAttributer()rrrsrrr
�testRemoveAttr"s	
zMinidomTest.testRemoveAttrcCs�t�}|j|jdd��}|jddd�|jddd�|jtjj|jdd�|j	t
|j�dk�|jdd�|j	t
|j�d	k�|j�dS)
Nzhttp://www.python.orgz
python:abczhttp://www.w3.orgzxmlns:pythonzpython:abcattrrDr2Zabcattrr3)
rrF�createElementNS�setAttributeNSrXrrrvZremoveAttributeNSr r:rZr()rrrsrrr
�testRemoveAttrNS-s	
zMinidomTest.testRemoveAttrNScCst�}|j|jd��}|jdd�|jt|j�dk�|jd�}|jt	j
j|jd�|j|�|jt|j�dko�|jd�dk�t�}|j|jd��}|jd�}|jt	j
j|j|�|j
�dS)NrDrhrnr3r)rrFr8rkr r:rZrlrXrrrvZremoveAttributeNoder()rrrsr!�dom2�child2Znode2rrr
�testRemoveAttributeNode;s 	
	z#MinidomTest.testRemoveAttributeNodecCsKt�}|j|jd��}|jdd�|j|jd��dS)NrDrhrn)rrFr8rkr ZhasAttribute)rrrsrrr
�testHasAttributeMs	zMinidomTest.testHasAttributecCs�td�}|j}|jdd�|jt|j�dk�|jdd�|jd�|jt|j�dko�|jdjdko�|jdjdko�|j	d�dko�|j
d�j�d|jd<|jt|j�dkoC|jdjdkoC|jdjdkoC|j	d�dkoC|jdj�|jdd�|jt|j�dko�|jdjdko�|jdjdko�|j	d�dko�|jdjdko�|jdjdko�|j	d�dk�d	|jd<|jt|j�dko�|jdjdko�|jdjdko�|j	d�dko�|jdjd	ko�|jdjd	ko�|j	d�d	k�|j�dS)
Nz<abc/>rhrnr3ZbamZhamZspam2r2Zbam2)
rr/rkr r:rZ�setIdAttributer]r^rrrl�isIdr()rrrmrrr
�testChangeAttrSsD	


zMinidomTest.testChangeAttrcCsdS)Nr)rrrr
�testGetAttrListyszMinidomTest.testGetAttrListcCsdS)Nr)rrrr
�testGetAttrValues|szMinidomTest.testGetAttrValuescCsdS)Nr)rrrr
�testGetAttrLengthszMinidomTest.testGetAttrLengthcCsAt�}|j|jdd��}|j|jd�d�dS)Nzhttp://www.python.orgz
python:abc�missing�)rrFrx�assertEqualrr)rrrsrrr
�testGetAttribute�s	zMinidomTest.testGetAttributecCs�t�}|j|jdd��}|jddd�|j|jdd�d�|j|jdd�d�|j|jd��}|j|jdd	�d�dS)
Nzhttp://www.python.orgz
python:abczhttp://www.w3.orgzxmlns:python�python�otherr�rfr�)rrFrxryr�ZgetAttributeNSr8)rrrsr|rrr
�testGetAttributeNS�s	zMinidomTest.testGetAttributeNScCsdS)Nr)rrrr
�testGetAttributeNode�sz MinidomTest.testGetAttributeNodecCs�d}t|�}|jdd�}|jt|�dko�|djdko�|djdko�|djdko�|djdko�|djdk�|j	�dS)NzZ<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
        <minidom:myelem/>
        </foo>zhttp://pyxml.sf.net/minidomZmyelemr3rrzminidom:myelem)
r�getElementsByTagNameNSr r:�namespaceURI�	localName�prefix�tagNamerQr()r�drZelemsrrr
�testGetElementsByTagNameNS�s		z&MinidomTest.testGetElementsByTagNameNScCs/|j||�}|jt|�dk�dS)Nr)r�r r:)rr	ZnsuriZlnameZnodelistrrr
�5get_empty_nodelist_from_elements_by_tagName_ns_helper�szAMinidomTest.get_empty_nodelist_from_elements_by_tagName_ns_helpercCs�td�}|j|dd�|j|dd�|j|dd�td�}|j|dd�|j|dd�|j|d	d
�dS)Nz<doc/>z"http://xml.python.org/namespaces/aZ	localname�*Zsplatz3<doc xmlns="http://xml.python.org/splat"><e/></doc>zhttp://xml.python.org/splatz	not-therez#http://somewhere.else.net/not-there�e)rr�)rr	rrr
�+testGetEmptyNodeListFromElementsByTagNameNS�s




z7MinidomTest.testGetEmptyNodeListFromElementsByTagNameNScCsZt�}|j|jd��}t|�}t|�}|j||k�|j�dS)Nrf)rrFr8�repr�strr r()rrrm�string1�string2rrr
�testElementReprAndStr�s	z!MinidomTest.testElementReprAndStrcCsZt�}|j|jd��}t|�}t|�}|j||k�|j�dS)Nrf)rrFr8r�r�r r()rrrmr�r�rrr
�testElementReprAndStrUnicode�s	z(MinidomTest.testElementReprAndStrUnicodecCspt�}|j|jdd��}t|�}t|�}|j||k�|jd|k�|j�dS)Nzhttp://www.slashdot.orgz	slash:abc)rrFrxr�r�r r()rrrmr�r�rrr
�testElementReprAndStrUnicodeNS�s	z*MinidomTest.testElementReprAndStrUnicodeNScCs`t�}|j|jd��}|jdd�}|jt|�t|�k�|j�dS)Nrfrp)rrFr8rkr r�r�r()rrrmr!rrr
�testAttributeRepr�s
	zMinidomTest.testAttributeReprcCsdS)Nr)rrrr
�testTextNodeRepr�szMinidomTest.testTextNodeReprcCs?d}t|�}|j�}|j�|j||k�dS)Nz <?xml version="1.0" ?><a b="c"/>)rr>r(r )rr�r�domstrrrr
�testWriteXML�s

zMinidomTest.testWriteXMLcCsQd}t|�}|jdd�}|j�|j||jdd�k�dS)Nz"<?xml version="1.0" ?>
<a b="c"/>
Znewlz
�
)r�toprettyxmlr(r �replace)rr�rr�rrr
�testAltNewline�s

zMinidomTest.testAltNewlinecCs�d}|jtd�j�|d�|jtd�j�|d�|jtd�j�|d�|jtd�j�|d	�|jtd
�j�|d�dS)Nz<?xml version="1.0" ?>
z<B>A</B>z	<B>A</B>
z<C>A<B>A</B></C>z<C>
	A
	<B>A</B>
</C>
z<C><B>A</B>A</C>z<C>
	<B>A</B>
	A
</C>
z<C><B>A</B><B>A</B></C>z<C>
	<B>A</B>
	<B>A</B>
</C>
z<C><B>A</B>A<B>A</B></C>z <C>
	<B>A</B>
	A
	<B>A</B>
</C>
)r�rr�)r�declrrr
� test_toprettyxml_with_text_nodes�sz,MinidomTest.test_toprettyxml_with_text_nodescCsut�}|jd�}|j|jd��|j|jd��|j|�d}|j|j�|d�dS)NrBZTEXTz<?xml version="1.0" ?>
z<elem>
	TEXT
	TEXT
</elem>
)rr8rFrEr�r�)rrrBr�rrr
�)test_toprettyxml_with_adjacent_text_nodes�s	
z5MinidomTest.test_toprettyxml_with_adjacent_text_nodescCswxpdD]h}t|�}t|j��}|j|jd�djdj�|jd�djdj��qWdS)N�<B>A</B>�<A><B>C</B></A>�Br)r�r�)rr�r�r.r7r>)rr�rr{rrr
�/test_toprettyxml_preserves_content_of_text_nodes
z;MinidomTest.test_toprettyxml_preserves_content_of_text_nodecCs�td�}|jj}|j|jdko�|jdko�|jdko�|jtj	ko�|j
dko�|j�o�t|j
�dko�|jdko�|jdko�|jdko�|jtjjk�dS)Nz<e><?mypi 	
 data 	
 ?></e>Zmypizdata 	
 r)rr/r<r �targetrRrQ�nodeTyper�PROCESSING_INSTRUCTION_NODErZ�
hasChildNodesr:r7r=r�r�rr�EMPTY_NAMESPACE)rr�pirrr
�testProcessingInstructions
z%MinidomTest.testProcessingInstructioncCsdS)Nr)rrrr
�testProcessingInstructionReprsz)MinidomTest.testProcessingInstructionReprcCsdS)Nr)rrrr
�testTextRepr!szMinidomTest.testTextReprcCsdS)Nr)rrrr
�
testWriteText#szMinidomTest.testWriteTextcCsdS)Nr)rrrr
�testDocumentElement%szMinidomTest.testDocumentElementcCsOtd�}|jd�}|jtjj|j|�|j�|j�dS)Nz<doc/>Zextra)rr8rXrrrYrFr()rr	rBrrr
�testTooManyDocumentElements's

z'MinidomTest.testTooManyDocumentElementscCsdS)Nr)rrrr
�testCreateElementNS/szMinidomTest.testCreateElementNScCsdS)Nr)rrrr
�testCreateAttributeNS1sz!MinidomTest.testCreateAttributeNScCsdS)Nr)rrrr
�	testParse3szMinidomTest.testParsecCsdS)Nr)rrrr
�testParseString5szMinidomTest.testParseStringcCsdS)Nr)rrrr
�testComment7szMinidomTest.testCommentcCsdS)Nr)rrrr
�testAttrListItem9szMinidomTest.testAttrListItemcCsdS)Nr)rrrr
�testAttrListItems;szMinidomTest.testAttrListItemscCsdS)Nr)rrrr
�testAttrListItemNS=szMinidomTest.testAttrListItemNScCsdS)Nr)rrrr
�testAttrListKeys?szMinidomTest.testAttrListKeyscCsdS)Nr)rrrr
�testAttrListKeysNSAszMinidomTest.testAttrListKeysNScCsrtd�}|j}|j}|jd�}|jd�}|j|j|��|jtj	j
|jd�dS)Nz<doc a=''/>r`)rr/rZrlZremoveNamedItemr �
isSameNoderXrrrv)rr	r�r_�a1�a2rrr
�testRemoveNamedItemCs		zMinidomTest.testRemoveNamedItemcCs{td�}|j}|j}|jdd�}|jdd�}|j|j|��|jtj	j
|jdd�dS)Nz.<doc xmlns:a='http://xml.python.org/' a:b=''/>zhttp://xml.python.org/�b)rr/rZ�getAttributeNodeNSZremoveNamedItemNSr r�rXrrrv)rr	r�r_r�r�rrr
�testRemoveNamedItemNSLs		z!MinidomTest.testRemoveNamedItemNScCsdS)Nr)rrrr
�testAttrListValuesVszMinidomTest.testAttrListValuescCsdS)Nr)rrrr
�testAttrListLengthXszMinidomTest.testAttrListLengthcCsdS)Nr)rrrr
�testAttrList__getitem__Zsz#MinidomTest.testAttrList__getitem__cCsdS)Nr)rrrr
�testAttrList__setitem__\sz#MinidomTest.testAttrList__setitem__cCsdS)Nr)rrrr
�testSetAttrValueandNodeValue^sz(MinidomTest.testSetAttrValueandNodeValuecCsdS)Nr)rrrr
�testParseElement`szMinidomTest.testParseElementcCsdS)Nr)rrrr
�testParseAttributesbszMinidomTest.testParseAttributescCsdS)Nr)rrrr
�testParseElementNamespacesdsz&MinidomTest.testParseElementNamespacescCsdS)Nr)rrrr
�testParseAttributeNamespacesfsz(MinidomTest.testParseAttributeNamespacescCsdS)Nr)rrrr
�testParseProcessingInstructionshsz+MinidomTest.testParseProcessingInstructionscCsdS)Nr)rrrr
�testChildNodesjszMinidomTest.testChildNodescCsdS)Nr)rrrr
�testFirstChildlszMinidomTest.testFirstChildcCsTtd�}|j}|j|j��td�}|j}|j|j��dS)Nz<doc><foo/></doc>z<doc/>)rr/rr�rc)rrr	r{�doc2rrr
�testHasChildNodesns		zMinidomTest.testHasChildNodescCs|j}|j}t|j��}t|j��}|j�|j�|j||kd�x�tt|��D]�}|j|�}	|j|�}
|j|	|
k	o�|	j|
jko�|	j	|
j	ko�|	j
|
j
ko�|	j|
jkd�|j|
j|kd�qsWdS)Nz(clone of element has same attribute keysz3clone of attribute node has proper attribute valuesz'clone of attribute node correctly owned)
rZ�list�keys�sortr �ranger:rr]r^r�r�r\)r�e1�e2rZattrs1Zattrs2Zkeys1Zkeys2�ir�r�rrr
�!_testCloneElementCopiesAttributesvs$		

z-MinidomTest._testCloneElementCopiesAttributescCs�td�}|j}|j|�}|j||d|r?dpBd�d|_|_|jdd�|jdd	�||fS)
Nz<doc attr='value'><foo/></doc>ZtestCloneElementZDeepZShallowZMODIFIED�attrz	NEW VALUEZaddedZVALUE)rr/�	cloneNoder�r�rQrk)r�deeprrA�clonerrr
�_setupCloneElement�s	zMinidomTest._setupCloneElementcCsu|jd�\}}|jt|j�dko`|jjdko`|jdko`|j�dkd�|j�dS)Nrz<doc attr="value"/>�testCloneElementShallow)r�r r:r7r;�
parentNoder>r()rrr�rrr
r��sz#MinidomTest.testCloneElementShallowcCsu|jd�\}}|jt|j�dko`|jjdko`|jdko`|j�dkd�|j�dS)Nr3z<doc attr="value"><foo/></doc>�testCloneElementDeep)r�r r:r7r;r�r>r()rrr�rrr
r��sz MinidomTest.testCloneElementDeepcCs5td�}|jd�}|j|dkd�dS)Nz�<?xml version='1.0'?>
<!-- comment --><!DOCTYPE doc [
<!NOTATION notation SYSTEM 'http://xml.python.org/'>
]>
<doc attr='value'/>rzFtestCloneDocumentShallow: shallow cloning of documents makes no sense!)rr�r )rr	r�rrr
�testCloneDocumentShallow�sz$MinidomTest.testCloneDocumentShallowcCs8td�}|jd�}|j|j|�p<|j|�d�|jt|j�t|j�kd�|j|jjtj	kd�|j|jj
j|�d�|j|jj|j�d�|jdk	r4|j|jjtjkd�|j|jj
j|��|j|jj|j��ndS)	Nz�<?xml version='1.0'?>
<!-- comment --><!DOCTYPE doc [
<!NOTATION notation SYSTEM 'http://xml.python.org/'>
]>
<doc attr='value'/>r3z4testCloneDocumentDeep: document objects not distinctz8testCloneDocumentDeep: wrong number of Document childrenz:testCloneDocumentDeep: documentElement not an ELEMENT_NODEz@testCloneDocumentDeep: documentElement owner is not new documentz;testCloneDocumentDeep: documentElement should not be sharedz7testCloneDocumentDeep: doctype not a DOCUMENT_TYPE_NODE)
rr�r r�r:r7r/r�rZELEMENT_NODErr�DOCUMENT_TYPE_NODE)rr	r�rrr
�testCloneDocumentDeep�s""!z!MinidomTest.testCloneDocumentDeepcCs�t�}|jd�}|j|dk	o|j|jko|j|jko|j|jko|j|jkot|j�t|j�ko|jj	t|j��dkot|j
�t|j
�ko|j
j	t|j
��dkot|j�dk�x�tt|j��D]�}|jj	|�}|jj	|�}|j|j
|�o�|j
|�o�|j|jko�|j|jko�|j|jko�|j|jko�|j|jko�|j|jko�|j|jk�qWx�tt|j
��D]�}|j
j	|�}|j
j	|�}|j|j
|�o�|j
|�o�|j|jko�|j|jko�|j|jk�qWdS)Nr3r)rr�r rQ�name�publicId�systemIdr:rrrr7r�r��notationNamerrr)rrr�r�ZseZceZsnZcnrrr
�testCloneDocumentTypeDeepOk�s@	!!z'MinidomTest.testCloneDocumentTypeDeepOkcCs5t�}|jjd�}|j|dkd�dS)Nr3�testCloneDocumentTypeDeepNotOk)rrr�r )rr	r�rrr
r��s	z*MinidomTest.testCloneDocumentTypeDeepNotOkcCs�t�}|jd�}|j|dk	o�|j|jko�|j|jko�|j|jko�|j|jko�t|j�dko�|jj	d�dko�t|j
�dko�|j
j	d�dko�t|j�dk�dS)Nr)rr�r rQr�r�r�r:rrrr7)rrr�rrr
�testCloneDocumentTypeShallowOk�s	z*MinidomTest.testCloneDocumentTypeShallowOkcCs5t�}|jjd�}|j|dkd�dS)Nr�!testCloneDocumentTypeShallowNotOk)rrr�r )rr	r�rrr
r�s	z-MinidomTest.testCloneDocumentTypeShallowNotOkcCs;td�}td�}|jtjj|j||�dS)Nz<doc/>)rrXrr�NotSupportedErr�
importNode)rr��testNameZdoc1r�rrr
�check_import_documentsz!MinidomTest.check_import_documentcCs|jdd�dS)Nr�testImportDocumentShallow)r�)rrrr
r�sz%MinidomTest.testImportDocumentShallowcCs|jdd�dS)Nr3�testImportDocumentDeep)r�)rrrr
r�sz"MinidomTest.testImportDocumentDeepcCs8t�}t�}|jtjj|j|jd�dS)Nr)rrrXrrr�r�r)r�srcr�rrr
�testImportDocumentTypeShallows		z)MinidomTest.testImportDocumentTypeShallowcCs8t�}t�}|jtjj|j|jd�dS)Nr3)rrrXrrr�r�r)rr�r�rrr
�testImportDocumentTypeDeeps		z&MinidomTest.testImportDocumentTypeDeepcCs�td�}|jjd�}|j|d�|j|�}|j|j|��|j|j|��|j|jdk|d�|j|jj|j�|d�|j|j	|d�dS)Nz<doc attr='value'/>r�z: ownerElement should be Nonez: ownerDocument does not matchz.: cloned attribute must have specified == True)
rr/rlZassertNotEqualr�r r�r\rZ	specified)rr�r�r	r�r�rrr
�check_clone_attribute sz!MinidomTest.check_clone_attributecCs|jdd�dS)Nr�testCloneAttributeShallow)r�)rrrr
r�.sz%MinidomTest.testCloneAttributeShallowcCs|jdd�dS)Nr3�testCloneAttributeDeep)r�)rrrr
r�1sz"MinidomTest.testCloneAttributeDeepcCsitd�}|j}|j|jtj�|j|�}|j|j|jkoa|j	|j	k�dS)Nz<?target data?><doc/>)
rr<r�r�rr�r�r r�rR)rr�r�r	r�r�rrr
�check_clone_pi4s	zMinidomTest.check_clone_picCs|jdd�dS)Nr�testClonePIShallow)r)rrrr
r<szMinidomTest.testClonePIShallowcCs|jdd�dS)Nr3�testClonePIDeep)r)rrrr
r?szMinidomTest.testClonePIDeepcCsOtd�}|j}|j|jd��|j|jd��|jt|j�dkok|jjdkd�|j�|jt|j�dko�|jjdko�|j	|j
ko�|j	jdkd�|j�td�}|j}|j|jd	��|j�|jt|j�d
ko:|jjd
kd�|j�dS)Nz<doc/>�first�secondr2ztestNormalize -- preparationr3�firstsecondztestNormalize -- resultr�rz*testNormalize -- single empty node removed)
rr/rFrEr r:r7r;�	normalizer<r=rRr()rr	rArrr
�
testNormalizeBs,	

	
zMinidomTest.testNormalizecCsCtd�}|j}|j|jd��|j|jd��|j|jd��|jt|j�dko�|jjdkd�|j	�|jt|j�dko.|jjdko.|j
jdko.|j
|jk	o.|j
j
|jko.|j
jdko.|jj|j
ko.|jj
dkd	�|j�dS)
Nz<doc/>rrr�r4z1testNormalizeCombineAndNextSibling -- preparationr2rz-testNormalizeCombinedAndNextSibling -- result)rr/rFrEr8r r:r7r;rr<rRr=r@r?r()rr	rArrr
�"testNormalizeCombineAndNextSibling[s&	
z.MinidomTest.testNormalizeCombineAndNextSiblingcCstd�}|j}|j|jd��|j|jd��|jt|j�dkok|jjdkd�|j�|jt|j�dko�|jjdko�|j	j
dko�|j	|jko�|j	jdko�|j	j
dkd�|j�dS)Nz<doc/>rr�r2z1testNormalizeDeleteWithPrevSibling -- preparationr3z,testNormalizeDeleteWithPrevSibling -- result)rr/rFrEr r:r7r;rr<rRr=r@r?r()rr	rArrr
�"testNormalizeDeleteWithPrevSiblingps 	
z.MinidomTest.testNormalizeDeleteWithPrevSiblingcCstd�}|j}|j|jd��|j|jd��|jt|j�dkok|jjdkd�|j�|jt|j�dko�|jjdko�|j	j
dko�|j	|jko�|j	jdko�|j	j
dkd�|j�dS)Nz<doc/>r�rr2z1testNormalizeDeleteWithNextSibling -- preparationr3z,testNormalizeDeleteWithNextSibling -- result)rr/rFrEr r:r7r;rr<rRr=r@r?r()rr	rArrr
�"testNormalizeDeleteWithNextSibling�s 	
z.MinidomTest.testNormalizeDeleteWithNextSiblingcCs1td�}|j}|j|jd��|j|jd��|j|jd��|jt|j�dko�|jjdkd�|j	�|jt|j�dko|jjdko|j
|jk	o|j
j|jko|j
j
dko|jj
|j
ko|jjdkd�|j�dS)Nz<doc/>r�r�r4z1testNormalizeDeleteWithTwoSiblings -- preparationr2z,testNormalizeDeleteWithTwoSiblings -- result)rr/rFr8rEr r:r7r;rr<r=r@r?r()rr	rArrr
�)testNormalizeDeleteWithTwoNonTextSiblings�s$	
z5MinidomTest.testNormalizeDeleteWithTwoNonTextSiblingscCsEtd�}|j}|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|jt|j�dko�|jjdkd�|j�|jt|j�dko0|jjdko0|j	|j
ko0|j	jdko0|j	jdko0|j	j
dkd	�|j�dS)
Nz<doc/>r�rZfourth�z,testNormalizeDeleteAndCombine -- preparationr3Zsecondfourthz'testNormalizeDeleteAndCombine -- result)rr/rFrEr r:r7r;rr<r=rRr?r@r()rr	rArrr
�testNormalizeDeleteAndCombine�s&	
z)MinidomTest.testNormalizeDeleteAndCombinecCstd�}|j}|jdj|jd��|jdj|jd��|jdjdj|jd��|jdj|jd��|j|jd��|jt|j�dko}|jjdko}t|jdj�d	ko}|jdjjd	ko}t|jdj�dko}|jdjjdko}t|jdjdj�d
ko}|jdjdjjd
kd�|j�|jt|j�d
koe|jjd
koet|jdj�d
koe|jdjjd
koet|jdj�d
koe|jdjjd
koet|jdjdj�dkoe|jdjdjjdkd�|j|jdjdj	d
ko�|jdjdjdj	dko�|jdjdj	dkd�|j|jdjdj
dko�|jdjdj|jdjdko�|jdjdjdko�|jdjdj
|jdjdko�|jdjdj
dko�|jdjdj|jdjdko�|jdjdjdko�|jdjdj
|jdjdkd�|j�dS)Nz)<doc><o><i/>t</o><o><o>t2</o>t3</o></doc>rr��xr3Zx2Zx3r4r6r2ztestNormalize2 -- preparationz$testNormalize2 -- childNodes lengthsZtxZt2x2Zt3x3z$testNormalize2 -- joined text fieldsz"testNormalize2 -- sibling pointers)
rr/r7rFrEr r:r;rrRr@r?r()rr	rArrr
�testNormalizeRecursion�sX	$#
##$#z"MinidomTest.testNormalizeRecursioncCsJtd�}|jjd}|j|jtj�|j�|j�dS)Nz<o>text</o>r)	rr/r7r�r�r�	TEXT_NODErr()rr	rWrrr
�testBug0777884�s

zMinidomTest.testBug0777884cCsStd�}|j}d|jd_|j�|j|jdjdkd�dS)Nz<o><i/>t</o>r�r3z)Final child's .nextSibling should be NonerO)rr/r7r^rr r@)rr	r!rrr
�testBug1433694s	
zMinidomTest.testBug1433694cCs�td�}|j}|j\}}}|j|j|ko�|jdko�|j|ko�|j|ko�|jdko�|j|kd�|j�dS)Nz<doc><?pi?>text?<elm/></doc>�testSiblings)rr/r7r r@r?r()rr	rAr�rWZelmrrr
rs	zMinidomTest.testSiblingscCs�td�}|j}|jd}|j\}}|jd}|j|j|ko�|j|ko�|j|ko�|j|ko�|j|kd�|j�dS)Nz3<doc><elm1><elm2/><elm2><elm3/></elm2></elm1></doc>r�testParents)rr/r7r r�r()rr	rAZelm1Zelm2aZelm2bZelm3rrr
rs		

zMinidomTest.testParentscCs�td�}|j}|d}|j|d|jd�ko�|jd�dko�|jjd�|jdko�|jjd�|jdko�|jjd�jjd�dkd�|j�dS)Nz<doc><e/><e/></doc>rr3ztest NodeList.item())rr7r rr()rr	ZchildrenZdocelemrrr
�testNodeListItem)s	
!zMinidomTest.testNodeListItemcCs�td�}|j|j�d�|j|jd�d�|j|jd�d�|j|jd�d�|j|jd	�d
jd	��|jttd�|j�dS)Nz<foo>&#x20ac;</foo>u$<?xml version="1.0" ?><foo>€</foo>zutf-8s4<?xml version="1.0" encoding="utf-8"?><foo>€</foo>ziso-8859-15s8<?xml version="1.0" encoding="iso-8859-15"?><foo>�</foo>zus-asciis;<?xml version="1.0" encoding="us-ascii"?><foo>&#8364;</foo>zutf-16u5<?xml version="1.0" encoding="utf-16"?><foo>€</foo>s0<fran�ais>Comment �a va ? Tr�s bien ?</fran�ais>)rr�r>�encoderX�UnicodeDecodeErrorr()rr	rrr
�
testEncodings5s
zMinidomTest.testEncodingsc@s"eZdZdZdd�ZdS)zMinidomTest.UserDataHandlerrcCs7|j||d|�|j|dd�d|_dS)Nr3)�setUserData�called)rZ	operation�keyrRr�Zdstrrr
�handleLsz"MinidomTest.UserDataHandler.handleN)�__name__�
__module__�__qualname__rrrrrr
�UserDataHandlerJsr cCs�t�}|jd�}|j|jd�dk�|jddd�|j|jd�dk�|jddd�|jddd�|j|jd�dk�|j|jd�dk�|jddd�|j|jd�dk�|j|jd�dk�|j�}|jdd|�|jd�}|j|jop|jd�dkop|jd�dk�|j�|j�|j�dS)Nr�rD�r5�
r3)	rr8r ZgetUserDatarr r�rr()rr�nZhandler�crrr
�testUserDataQs*	

zMinidomTest.testUserDatacCsZ|jtjj|j|dd�td�}|jtjj|j|tjjd�dS)Nzhttp://xml.python.org/nsz	xmlns:fooz<doc/>rD)rXrr�NamespaceErr�
renameNoderZWrongDocumentErrr�)rr	r!r�rrr
� checkRenameNodeSharedConstraintsis

z,MinidomTest.checkRenameNodeSharedConstraintscCs�td�}|j}|j}|jd}|j|tjjd�}|j|jdko
|j	dko
|j
dko
|jtjjko
|jdko
|j
dko
|jd�dko
|jd�j|�o
|dj|�o
|jj|�o
|jj|��|j|dd�}|j|jdko|j	dko|j
dko|jdko|jdko|j
dko|jd�dko|jd�dko|jd�j|�o|jdd�j|�o|dj|�o|d
j|��|j|dd�}|j|jdko,|j	dko,|j
d	ko,|jdko,|jd
ko,|j
dko,|jd�dko,|jd�dko,|jd�dko,|jdd�dko,|jd�j|�o,|jdd	�j|�o,|dj|�o,|dj|��|j|tjjd�}|j|jdkoE|j	dkoE|j
dkoE|jtjjkoE|jdkoE|j
dkoE|jd�dkoE|jd�dkoE|jd�dkoE|jd�dkoE|jdd�dkoE|jd�j|�oE|dj|��|jtjj|j|dd�|j||�|j�dS)Nz<doc a='v'/>r`r��v�http://xml.python.org/nsr$�http://xml.python.org/ns2zp:dr��pr�Zxmlns)r*r$)r+r�)rr/rZr'rrr�r r�rQr�r�r�r]rlr�rr\r�rXr&r(r()rr	rBZattrmapr�rrr
�testRenameAttributeqs�		

zMinidomTest.testRenameAttributecCs/td�}|j}|j|tjjd�}|j|jdko�|jdko�|j	dko�|j
tjjko�|jdko�|jj
|��|j|dd�}|j|jdko|jdko|j	dko|j
dko|jdko|jj
|��|j|dd�}|j|jdko�|jdko�|j	dko�|j
dko�|jdko�|jj
|��|j|tjjd	�}|j|jd	ko
|jd	ko
|j	dko
|j
tjjko
|jdko
|jj
|��|j||�|j�dS)
Nz<doc/>r`zhttp://xml.python.org/nsr�zhttp://xml.python.org/ns2zp:cr$r,r�)rr/r'rrr�r r�rQr�r�r�rr�r(r()rr	rBrrr
�testRenameElement�s@	zMinidomTest.testRenameElementcCsltjjj�jtjjdd�}|jd�}|jtjj|j	|tjjd�|j
�dS)Nr��commentrD)rrrrr
r�rPrXr�r'r()rr	r!rrr
�testRenameOther�szMinidomTest.testRenameOthercCs�td�}|j}|jd}|j|jtj�|j|d�|j|j	d��|j|d�|j
|jd�|�|j|d�|jd�}|j|�|j	d	�}|j|�|j|d�|j|d	�|j
d
�}|j||�|}|j|d�|j|d	�|jdd�}|j||�|}|j|d�|j|d	�|j|�|j|d
�|j|d
�dS)Nz<doc>a</doc>rr`r�Zabr$�cabr/r�r�y�zZcabd)rr/r7r�r�rrr$rFrEr9�createCDATASectionrPr8rU�createProcessingInstruction�removeChild)rr	rBrW�splitter�text2rrrr
�
testWholeText�s8	



zMinidomTest.testWholeTextcCsdtd�}|j}|j}|j|j|kd�|j||�|j|j|kd�dS)Nz<doc><e/></doc>zBefore replaceChild()zAfter replaceChild())rr/r<r r�rU)rr	rBr�rrr
�testPatch1094164s		zMinidomTest.testPatch1094164cCs5dd�}|�\}}}}}|jd�}|j|d�|j|d�|jt|j�dk�|�\}}}}}|jd�}|j|d�|j|d�|jt|j�dk�|�\}}}}}|jd�}|j|d�|j|dko-t|j�d	k�dS)
NcSsutd�}|j}|j}|j}|j}|j|jd�|�|j|jd�|�|||||fS)Nz<doc>a<e/>d</doc>r�r$)rr/r<r=r@r9rEr4)r	rB�text1r8r7rrr
�setup!s				z/MinidomTest.testReplaceWholeText.<locals>.setupznew contentr�r4r1rr�r2)ZreplaceWholeTextr$r r:r7)rr<r	rBr;r7r8rWrrr
�testReplaceWholeText s 
z MinidomTest.testReplaceWholeTextcCs�td�}|j}|j}|j|jdkoE|jtjjk�dj	�}xQ|D]I}|j
|�}|j}|jt|d�o�|jtjjk�q\WdS)Nal<!DOCTYPE doc [
  <!ENTITY e1 SYSTEM 'http://xml.python.org/e1'>
  <!ENTITY e2 SYSTEM 'http://xml.python.org/e2'>
  <!ATTLIST doc id   ID       #IMPLIED 
                ref  IDREF    #IMPLIED 
                refs IDREFS   #IMPLIED 
                enum (a|b)    #IMPLIED 
                ent  ENTITY   #IMPLIED 
                ents ENTITIES #IMPLIED 
                nm   NMTOKEN  #IMPLIED 
                nms  NMTOKENS #IMPLIED 
                text CDATA    #IMPLIED 
    >
]><doc id='name' notid='name' text='splat!' enum='b'       ref='name' refs='name name' ent='e1' ents='e1 e2'       nm='123' nms='123 abc' />z+id notid text enum ref refs ent ents nm nmsr�)rr/Z
schemaTyper r��	namespacerrr��splitrl�hasattr)rr	rBr#�namesr�r`rrr
�testSchemaType=s			
	zMinidomTest.testSchemaTypecCs�td�}|j}|jd�}|jd�}|j|jd�dko_|jo_|j�|jd�|j|j|jd��o�|jo�|j�|jd�|j|j|jd��o�|j|jd��o�|jo�|j�|jd�}d|_	|j
|�|j|jd�dkoj|j|jd��oj|joj|joj|j�|j|tj
jd�|j|j|jd��o�|j�dS)Nz<doc a1='v' a2='w'/>r�r�r)�w�an)rr/rlr �getElementByIdr�rr�ZcreateAttributer]�setAttributeNoder'rrr�)rr	r�r�r��a3rrr
�testSetIdAttribute^s6	

	
	
	

	zMinidomTest.testSetIdAttributecCs�d}d}td|d|d�}|j}|j|d�}|j|d�}|j|jd�dko�|jo�|j�|j|d�|j|j|jd��o�|jo�|j�|j|d�|j|j|jd��o|j|jd	��o|jo|j�|j|d�}d|_	|j
|�|j|j|jd	���|j|j�|j|j�|j|j�|j|jd�dk�|j|tj
jd
�|j|j|jd	��o�|j�dS)Nzhttp://xml.python.org/ns1zhttp://xml.python.org/ns2z<doc xmlns:ns1='z
' xmlns:ns2='z' ns1:a1='v' ns2:a2='w'/>r�r�r)rCrD)rr/r�r rEr�ZsetIdAttributeNSr��createAttributeNSr]rFr'rrr�)r�NS1�NS2r	r�r�r�rGrrr
�testSetIdAttributeNS}s<	
		
	
z MinidomTest.testSetIdAttributeNScCs�d}d}td|d|d�}|j}|j|d�}|j|d�}|j|jd�dko�|jo�|j�|j|�|j|j|jd��o�|jo�|j�|j|�|j|j|jd��o|j|jd	��o|jo|j�|j|d�}d|_	|j
|�|j|j|jd	���|j|j�|j|j�|j|j�|j|jd�dk�|j|tj
jd
�|j|j|jd	��o�|j�dS)Nzhttp://xml.python.org/ns1zhttp://xml.python.org/ns2z<doc xmlns:ns1='z
' xmlns:ns2='z' ns1:a1='v' ns2:a2='w'/>r�r�r)rCrD)rr/r�r rEr�ZsetIdAttributeNoder�rIr]rFr'rrr�)rrJrKr	r�r�r�rGrrr
�testSetIdAttributeNode�s<	

	
	
	
z"MinidomTest.testSetIdAttributeNodecCs�||fg}x�|r�|j�\}}|j|j|j�|jt|j�t|j��|j|j|j�|j|j|��|j|j|��|jtj	krct|j
�t|j
�t|j�t|j�|jt|j
�t|j
��|jt|j�t|j��x�tt|j��D]}|jj
|�}|jj
|�}|j|j|j�|j|j|j�|j|j|j�|j||f�qDWx�tt|j
��D]}|j
j
|�}	|j
j
|�}
|j|	j|
j�|j|	j|
j�|j|	j|
j�|j|	|
f�q�Wn|jtjkr�|j|jj|��|j|jj|��nx>tt|j��D]'}|j|j||j|f�q�WqWdS)N)�popr�r�r:r7rQrcr�rr�rrr�rr�r�r�rr�Z
DOCUMENT_NODErr)rr	r��stackZn1Zn2r�Zno1Zno2r�r�rrr
�assert_recursive_equal�sD	"



""z"MinidomTest.assert_recursive_equalcCsbtt�}xOtdtjd�D]7}tj||�}tj|�}|j||�q#WdS)Nr2r3)r�sampler��pickleZHIGHEST_PROTOCOL�dumps�loadsrP)rr	�protor"r�rrr
�testPickledDocument�s
zMinidomTest.testPickledDocumentcCs/tt�}tj|�}|j||�dS)N)rrQ�copy�deepcopyrP)rr	r�rrr
�testDeepcopiedDocument�sz"MinidomTest.testDeepcopiedDocumentcCs6t�}|j|jd��|jt|j�dS)Nzfoo--bar)rrFrPrX�
ValueErrorr>)rr	rrr
�(testSerializeCommentNodeWithDoubleHyphen�s	z4MinidomTest.testSerializeCommentNodeWithDoubleHyphencCs>td�}t|j��}|j|jtjjk�dS)Nz$<element xmlns=''>
<foo/>
</element>)rr>r r�rrr�)rr	r�rrr
�testEmptyXMLNSValue�szMinidomTest.testEmptyXMLNSValuec	Cs'|jtd��td�WdQXdS)NzUnsupported syntaxzE<element xmlns:abc="http:abc.com/de f g/hi/j k"><abc:foo /></element>)ZassertRaisesRegexrZr)rrrr
�!testExceptionOnSpacesInXMLNSValuesz-MinidomTest.testExceptionOnSpacesInXMLNSValuecCs�tt�}|jjd�d}|jtjj|j|�t	|j
�}|j|j
d�t	|j
�}|j||dk�dS)NZTITLErr3)rr'r/r.rXrrrvr6r:r7r)rr	Z	title_tagZnum_children_beforeZnum_children_afterrrr
�testDocRemoveChildszMinidomTest.testDocRemoveChildcCs+tt�}|jdd�}d|_dS)Nr2r3Zcrash)rr'r5r^)rr	r�rrr
�"testProcessingInstructionNameErrorsz.MinidomTest.testProcessingInstructionNameErrorN)�rrrr r$r+r-r0rCrLrNrSrTrVr[rarbrdrergrjrortrurwrzr}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�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�r�r�rrrrrr	r
rr
rrrrrrrr r%r(r-r.r0r9r:r=rBrHrLrMrPrVrYr[r\r]r^r_rrrr
r4s+
		&
		
		"?M+
$	!$$%	rcCstt�dS)N)rrrrrr
�	test_mainsr`�__main__)rWrRZtest.supportrrZunittestZxml.dom.minidomrrrrrrr'rQrrrZTestCaserr`rrrrr
�<module>s("������