Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python311/lib64/python3.11/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python311/lib64/python3.11/test/__pycache__/test_minidom.cpython-311.pyc

�

P�iY���ddlZddlZddlZddlZddlmZddlZddlZddlZ	ddlm
Z
mZmZm
Z
mZmZddlmZddlmZejdd���Zd	Zdd
�Zd�Zd�ZGd
�dej��Zedkrej��dSdS)�N)�support)�parse�Attr�Node�Document�Element�parseString)�getDOMImplementation)�
ExpatErrorztest.xml�xmltestdata)�subdira<?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>c�H�t���dd|��S)N�doc)r
�createDocument)�doctypes �8/opt/alt/python311/lib64/python3.11/test/test_minidom.py�create_doc_without_doctypers ���!�!�0�0��u�g�F�F�F�c��t���ddd��}g|j_g|j_t
jj�ddd��}|jj�	|��t
jj�
dddd��}d|_d|_d|_
|jj�	|��|S)	Nrzmy-notationz"http://xml.python.org/notations/myz	my-entityz!http://xml.python.org/entities/myz1.0�utf-8�us-ascii)r
�createDocumentType�entities�_seq�	notations�xml�dom�minidom�Notation�append�Entity�version�encoding�actualEncoding)r�notation�entitys   r�create_nonempty_doctyper'!s���"�$�$�7�7��t�T�J�J�G��G����G����w��'�'�
�t�(L�N�N�H����!�!�(�+�+�+�
�W�_�
#�
#�K��$G�$1�3�3�F��F�N��F�O�&�F����� � ��(�(�(��Nrc��t��}t|��}||j�d��_||j�d��_|S�Nr)r'rr�item�
ownerDocumentr)rrs  r�create_doc_with_doctyper,1sQ��%�'�'�G�
$�W�
-�
-�C�-0�G����!���*�.1�G����1���+��Jrc��eZdZd�d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zejd��d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPdO�ZQdP�ZRdQ�ZSdR�ZTdS�ZUdT�ZVdU�ZWdV�ZXdW�ZYdX�ZZdY�Z[dZ�Z\d[�Z]d\�Z^d]�Z_d^�Z`d_�Zad`�Zbda�Zcdb�Zddc�Zedd�Zfde�Zgdf�Zhdg�Zidh�Zjdi�Zkdj�Zldk�Zmdl�Zndm�Zodn�Zpdo�Zqdp�Zrdq�Zsdr�Ztds�Zudt�Zvdu�Zwdv�Zxdw�Zydx�ZzGdy�dz��Z{d{�Z|d|�Z}d}�Z~d~�Zd�Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d�S)��MinidomTest�Testc�2�|�||��dS�N)�
assertTrue)�self�test�testnames   r�confirmzMinidomTest.confirm9s������h�'�'�'�'�'rc�T�|j}|�||kd|�d|����dS)Nzlooking for z, found )�	wholeTextr6)r3�node�s�ts    r�checkWholeTextzMinidomTest.checkWholeText<s4���N�����Q�!�V�V�1�1�1�a�a�@�A�A�A�A�Arc��t��}|�|j��|�tj��dSr1)r�assertFalse�async_�r3rs  r�testDocumentAsyncAttrz!MinidomTest.testDocumentAsyncAttr@s=���j�j�������$�$�$������)�)�)�)�)rc��ttd��5}t|��}|���|�t|t����ddd��dS#1swxYwYdS)N�rb��open�tstfiler�unlinkr6�
isinstancer�r3�filers   r�testParseFromBinaryFilez#MinidomTest.testParseFromBinaryFileEs���
�'�4�
 �
 �	4�D���+�+�C��J�J�L�L�L��L�L��C��2�2�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�AA/�/A3�6A3c��ttdd���5}t|��}|���|�t|t����ddd��dS#1swxYwYdS)N�rz
iso-8859-1)r#rDrIs   r�testParseFromTextFilez!MinidomTest.testParseFromTextFileKs���
�'�3��
6�
6�
6�	4�$���+�+�C��J�J�L�L�L��L�L��C��2�2�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�AA1�1A5�8A5c��tdddd��}|�|jd��|�|jd��|�|jd��|�|jd��dS)N�qName�namespaceURI�	localName�prefix�r�assertEqual�namerQrSrR�r3�attrs  r�testAttrModeSetsParamsAsAttrsz)MinidomTest.testAttrModeSetsParamsAsAttrsQs|���G�^�[�(�C�C�������G�,�,�,�����*�N�;�;�;������h�/�/�/�������5�5�5�5�5rc��tdddd��}|�|jd��|�|jd��|�|jd��|�|j|j��dS)NrPrQrSrTrWs  r� testAttrModeSetsNonOptionalAttrsz,MinidomTest.testAttrModeSetsNonOptionalAttrsXs~���G�^�T�8�<�<�������G�,�,�,�����*�N�;�;�;������h�/�/�/��������3�3�3�3�3rc���tt��}|�|�d��|j�d��k��|���dS)N�LI)rrFr6�getElementsByTagName�documentElementrG�r3rs  r�testGetElementsByTagNamez$MinidomTest.testGetElementsByTagName_s`���G�n�n�����S�-�-�d�3�3��#�8�8��>�>�?�	@�	@�	@��
�
�����rc���td��}|j}|jd}|�d��}|�||��|�t
|j��dko�|jjdko|jd|uop|j�d��|uoT|jd|uoE|j�d��|uo)|j	|uo |j
|uo|���dkd��|�d��}|�|d��|�t
|j��dko�|jjdko|jd|uop|j�d��|uoT|jd|uoE|j�d��|uo)|j
|uo |j|uo|���d	kd��|�d
��}|�||��|�t
|j��dko�|jjdko|jd|uop|j�d��|uoT|jd|uoE|j�d��|uo)|j
|uo |j|uo|���dkd��|���dS)
N�<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>)r	r_�
childNodes�
createElement�insertBeforer6�len�lengthr*�
firstChild�	lastChild�toxml�previousSibling�nextSiblingrG)r3r�root�elem�nelem�nelem2s      r�testInsertBeforezMinidomTest.testInsertBeforeesn���-�.�.���"����q�!���!�!�)�,�,�����%��&�&�&����S���)�)�Q�.�B��O�*�a�/�B��O�A�&�%�/�B��O�(�(��+�+�u�4�B��O�A�&�$�.�	B�
�O�(�(��+�+�t�3�B��O�u�,�
B��N�d�*�B��J�J�L�L�$A�A�D�		F�		F�		F��!�!�)�,�,�����%��&�&�&����S���)�)�Q�.�L��O�*�a�/�L��O�A�&�$�.�L��O�(�(��+�+�t�3�L��O�A�&�%�/�	L�
�O�(�(��+�+�u�4�L��N�e�+�
L��)�T�1�L��J�J�L�L�$K�K�D�		F�		F�		F��"�"�5�)�)�����&�%�(�(�(����S���)�)�Q�.�	>��O�*�a�/�	>��O�A�&�&�0�	>��O�(�(��+�+�v�5�	>��O�A�&�%�/�		>�
�O�(�(��+�+�u�4�	>��&�%�/�
	>��)�V�3�	>��J�J�L�L�=�>�D�
	F�
	F�
	F�	�
�
�����rc��td��}|�d��}|�d��}|�d��}|�d��}|j�|��|���}|�|��|�|��|�|��||||||fS)N�<doc/>�original�foorh�bat)r	�createTextNoder_�appendChild�createDocumentFragment�r3r�orig�c1�c2�c3�frags       r�_create_fragment_test_nodesz'MinidomTest._create_fragment_test_nodes�s����(�#�#���!�!�*�-�-��
�
�
��
&�
&��
�
�
��
&�
&��
�
�
��
&�
&����'�'��-�-�-��)�)�+�+������������������������D�"�b�"�d�*�*rc�R�|���\}}}}}}|j�|d��|�t	|jj��||||fkd��|���|���|���\}}}}}}|j�||��|�t	|jj��||||fkd��|���|���dS)NzinsertBefore(<fragment>, None)zinsertBefore(<fragment>, orig))r�r_rlr6�tuplerjrGr�s       r�testInsertBeforeFragmentz$MinidomTest.testInsertBeforeFragment�s ��&*�&F�&F�&H�&H�#��T�2�r�2�t���(�(��t�4�4�4����U�3�.�9�:�:��B��B�'�(�5�	7�	7�	7�	
���
�
�
��
�
����&*�&F�&F�&H�&H�#��T�2�r�2�t���(�(��t�4�4�4����U�3�.�9�:�:��"�b�$�'�(�5�	7�	7�	7�	
���
�
�
��
�
�����rc�h�tt��}|j�|�d����|�|jjdjdk��|�|jjdjdk��|�	��dS)N�Hello���z#comment)
rrFr_r�
createCommentr6rj�nodeName�datarGr`s  r�testAppendChildzMinidomTest.testAppendChild�s����G�n�n����'�'��(9�(9�'�(B�(B�C�C�C����S�(�3�B�7�@�J�N�O�O�O����S�(�3�B�7�<��G�H�H�H��
�
�����r�cpuc�R��t��}|�ddd����j}�fd�tdd��D��}|}t	j��}|D]}|�|��|}�t	j��}|�||z
d��dS)N�some_tagc�@��g|]}��d|������S)zchild-)rk)�.0�i�newdocs  �r�
<listcomp>zDMinidomTest.testAppendChildNoQuadraticComplexity.<locals>.<listcomp>�s-���V�V�V�1�F�(�(��!���6�6�V�V�Vrrfi�ri)r
rr_�range�time�	monotonicr�
assertLess)	r3�impl�top_element�childrenrd�start�child�endr�s	        @r�$testAppendChildNoQuadraticComplexityz0MinidomTest.testAppendChildNoQuadraticComplexity�s����#�%�%���$�$�T�:�t�<�<���,��V�V�V�V��a��@U�@U�V�V�V������ � ���	�	�E�����&�&�&��G�G��n����	
����e��Q�'�'�'�'�'rc���td��}td��}d|_|�|��|�|�d��d��dS)Nr4�idztest-id)rr�value�setAttributeNoderU�getAttribute)r3rurXs   r�(testSetAttributeNodeWithoutOwnerDocumentz4MinidomTest.testSetAttributeNodeWithoutOwnerDocument�s]���v�����D�z�z����
����d�#�#�#�����*�*�4�0�0�)�<�<�<�<�<rc�*�|���\}}}}}}|j�|��|�t	|jj��||||fkd��|���|���dS)NzappendChild(<fragment>))r�r_rr6r�rjrGr�s       r�testAppendChildFragmentz#MinidomTest.testAppendChildFragment�s���&*�&F�&F�&H�&H�#��T�2�r�2�t���'�'��-�-�-����U�3�.�9�:�:��B��B�'�(�.�	0�	0�	0�	
���
�
�
��
�
�����rc�R�|���\}}}}}}|j�||��|���|�t|jj��|||fkd��|���|���dS)NzreplaceChild(<fragment>))r�r_�replaceChildrGr6r�rjr�s       r�testReplaceChildFragmentz$MinidomTest.testReplaceChildFragment�s���&*�&F�&F�&H�&H�#��T�2�r�2�t���(�(��t�4�4�4����
�
�
����U�3�.�9�:�:�r�2�r�l�J�*�	,�	,�	,����
�
�
��
�
�����rc��t��}|�d��}|�d��}|�tjj|j|��|�|��|�tjj|j||��|�tjj|j	||��|j
}|�tjj|j|��|�tjj|j|��|�|��|�
��dS)Nrd�text)rrkr~�assertRaisesrr�HierarchyRequestErrrrlr��
attributes�setNamedItem�setNamedItemNSrG)r3rrur��nodemaps     r�testLegalChildrenzMinidomTest.testLegalChildren�s2���j�j��� � ��+�+���!�!�&�)�)�����#�'�5�s���M�M�M�����������#�'�5�s�7G���	 �	 �	 ����#�'�5�s�7G���	 �	 �	 ��/�����#�'�5�w�7K��	 �	 �	 ����#�'�5�w�7M��	 �	 �	 �	
��������
�
�����rc���t��}|�d��}|j}d|d<|�d��}|�|j|ud��|�|j|ud��|�|jdkd��|�|jdkd��|�	��|�	��dS)	Nrdrhr|rz-NamedNodeMap.__setitem__() sets ownerDocumentz,NamedNodeMap.__setitem__() sets ownerElementz%NamedNodeMap.__setitem__() sets valuez)NamedNodeMap.__setitem__() sets nodeValue)
rrkr�r*r6r+�ownerElementr��	nodeValuerG)r3rru�attrs�as     r�testNamedNodeMapSetItemz#MinidomTest.testNamedNodeMapSetItem�s����j�j��� � ��+�+�������e���J�J�q�M�M�����Q�_��+�?�	A�	A�	A����Q�^�t�+�>�	@�	@�	@����Q�W��%�7�	9�	9�	9����Q�[�E�)�;�	=�	=�	=����
�
�
��
�
�����rc��tt��}|�|��|�|�d����|�|jdj��|���dS)Nr|r�)rrFr6rr�rjrGr`s  r�testNonZerozMinidomTest.testNonZeroso���G�n�n�����S��������)�)�%�0�0�1�1�1�������+�6�6�7�7�7��
�
�����rc��tt��}|�|j��|���|�|j��dSr1)rrFr2rjrGr>r`s  r�
testUnlinkzMinidomTest.testUnlinksJ���G�n�n�������'�'�'��
�
���������(�(�(�(�(rc���tt��5}|�|j��ddd��n#1swxYwY|�|j��dSr1)rrFr2rjr>r`s  r�testContextzMinidomTest.testContexts���
�7�^�^�	,�s��O�O�C�N�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,������(�(�(�(�(s�<�A�Ac���t��}|�|�d����|�|j��|���dS�N�abc)rrrkr6r_rGr`s  r�testElementzMinidomTest.testElementsQ���j�j������)�)�%�0�0�1�1�1����S�(�)�)�)��
�
�����rc��td��}|j}|�dd��|�|���dkd��|�d��}|�|j|ud��|�|j|jud��|���dS)N�<abc/>�spam�jam2�<abc spam="jam2"/>�testAAAz!setAttribute() sets ownerDocumentz setAttribute() sets ownerElement)	r	r_�setAttributer6rq�getAttributeNoder+r�rG)r3r�elr�s    rr�zMinidomTest.testAAA#s����(�#�#��
�
 ��
�����'�'�'����R�X�X�Z�Z�#7�7��C�C�C�����'�'�����Q�_��+�3�	5�	5�	5����Q�^�s�':�:�2�	4�	4�	4��
�
�����rc�
�td��}|j}|�dd��|�dd��|�|���dkd��|���dS)Nr�r��jamr�r��testAAB)r	r_r�r6rqrG�r3rr�s   rr�zMinidomTest.testAAB/sr���(�#�#��
�
 ��
�����&�&�&�
�����'�'�'����R�X�X�Z�Z�#7�7��C�C�C��
�
�����rc���t��}|�|�d����}|�dd��|�|�d��dk��|�|jdjdk��|�dd��|�|�d��dk��|�|jdjdk��|�t|j��dk��|�dd��|�|�d��dk��|�|jdjdk��|�t|j��dk��|�	��dS)Nr��def�ghi�jkl�mnore�newval)
rrrkr�r6r�r�r�rmrG�r3rr�s   r�testAddAttrzMinidomTest.testAddAttr7s����j�j������ 1� 1�%� 8� 8�9�9��
���5�%�(�(�(����U�'�'��.�.�%�7�8�8�8����U�%�e�,�2�e�;�<�<�<�
���5�%�(�(�(����U�'�'��.�.�%�7�8�8�8����U�%�e�,�2�e�;�<�<�<����S��)�*�*�a�/�0�0�0�
���5�(�+�+�+����U�'�'��.�.�(�:�;�;�;����U�%�e�,�2�h�>�?�?�?����S��)�*�*�a�/�0�0�0��
�
�����rc���t��}|�|�d����}|�t	|j��dk��|�dd��|�t	|j��dk��|jd=|�t	|j��dk��|���dS)Nr�rr�r�rf)rrrkr6rmr�r�rGr�s   r�testDeleteAttrzMinidomTest.testDeleteAttrLs����j�j������ 1� 1�%� 8� 8�9�9�����S��)�*�*�a�/�0�0�0�
���5�%�(�(�(����S��)�*�*�a�/�0�0�0���U�#����S��)�*�*�a�/�0�0�0��
�
�����rc���t��}|�|�d����}|�dd��|�t|j��dk��|�tj	j
|jd��|�d��|�t|j��dk��|���dS)Nr�r�r�rfr|r)
rrrkr�r6rmr�r�rr�NotFoundErr�removeAttributerGr�s   r�testRemoveAttrzMinidomTest.testRemoveAttrWs����j�j������ 1� 1�%� 8� 8�9�9��
���5�%�(�(�(����S��)�*�*�a�/�0�0�0����#�'�-�u�/D�e�L�L�L�
���e�$�$�$����S��)�*�*�a�/�0�0�0��
�
�����rc�(�t��}|�|�dd����}|�ddd��|�ddd��|�t
jj|jdd��|�	t|j��dk��|�dd��|�	t|j��d	k��|���dS)
N�http://www.python.org�
python:abc�http://www.w3.org�xmlns:pythonzpython:abcattrr|re�abcattrrf)
rr�createElementNS�setAttributeNSr�rrr��removeAttributeNSr6rmr�rGr�s   r�testRemoveAttrNSzMinidomTest.testRemoveAttrNSbs���j�j������#�#�$;�\�J�J�L�L��
���0�.�0G�	I�	I�	I�
���4�6F��N�N�N����#�'�-�u�/F��*�	,�	,�	,����S��)�*�*�a�/�0�0�0�
��� 7��C�C�C����S��)�*�*�a�/�0�0�0��
�
�����rc�^�t��}|�|�d����}|�dd��|�t|j��dk��|�d��}|�tj
j|jd��|�
||�|����|�t|j��dko|�d��du��t��}|�|�d����}|�d��}|�tj
j|j|��|���dS)Nr|r�r�rfr)rrrkr�r6rmr�r�r�rrr��removeAttributeNode�assertIsrG)r3rr�r9�dom2�child2�node2s       r�testRemoveAttributeNodez#MinidomTest.testRemoveAttributeNodepsv���j�j������ 1� 1�%� 8� 8�9�9��
���6�5�)�)�)����S��)�*�*�a�/�0�0�0��%�%�f�-�-�����#�'�-�u�/H��	�	�	��
�
�d�E�5�5�d�;�;�<�<�<����S��)�*�*�a�/�;��*�*�6�2�2�d�:�	<�	<�	<��z�z���!�!�$�"4�"4�U�";�";�<�<���'�'��/�/�����#�'�-�v�/I��	�	�	��
�
�����rc���t��}|�|�d����}|�dd��|�|�d����dS)Nr|r�r�)rrrkr�r6�hasAttributer�s   r�testHasAttributezMinidomTest.testHasAttribute�sf���j�j������ 1� 1�%� 8� 8�9�9��
���6�5�)�)�)����U�'�'��/�/�0�0�0�0�0rc�r�td��}|j}|�dd��|�t	|j��dk��|�dd��|�d��|�t	|j��dko^|jdjdkoH|jdjdko2|�	d��dko|�
d��j��d|jd<|�t	|j��dkoV|jdjdko@|jdjdko*|�	d��dko|jdj��|�dd��|�t	|j��dko�|jdjdkos|jdjdko]|�	d��dkoD|jdjdko.|jdjdko|�	d��dk��d	|jd<|�t	|j��dko�|jdjdkos|jdjdko]|�	d��dkoD|jdjd	ko.|jdjd	ko|�	d��d	k��|���dS)
Nr�r�r�rf�bam�ham�spam2re�bam2)
r	r_r�r6rmr��setIdAttributer�r�r�r��isIdrGr�s   r�testChangeAttrzMinidomTest.testChangeAttr�sD���(�#�#��
�
 ��
�����&�&�&����S���'�'�1�,�-�-�-�
�����&�&�&�	���&�!�!�!����S���'�'�1�,�5��M�&�)�/�5�8�5��M�&�)�3�u�<�5��O�O�F�+�+�u�4�5��'�'��/�/�4�		6�	6�	6�
!&��
�f�����S���'�'�1�,�/��M�&�)�/�5�8�/��M�&�)�3�u�<�/��O�O�F�+�+�u�4�/��M�&�)�.�		0�	0�	0�
	�����'�'�'����S���'�'�1�,�6��M�&�)�/�5�8�6��M�&�)�3�u�<�6��O�O�F�+�+�u�4�6��M�'�*�0�E�9�	6�
�M�'�*�4��=�6��O�O�G�,�,��5�
	7�	7�	7�"(��
�g�����S���'�'�1�,�7��M�&�)�/�5�8�7��M�&�)�3�u�<�7��O�O�F�+�+�u�4�7��M�'�*�0�F�:�	7�
�M�'�*�4��>�7��O�O�G�,�,��6�
	8�	8�	8�	�
�
�����rc��dSr1��r3s r�testGetAttrListzMinidomTest.testGetAttrList�����rc��dSr1rrs r�testGetAttrValueszMinidomTest.testGetAttrValues�rrc��dSr1rrs r�testGetAttrLengthzMinidomTest.testGetAttrLength�rrc���t��}|�|�dd����}|�|�d��d��dS)Nr�r��missing�)rrr�rUr�r�s   r�testGetAttributezMinidomTest.testGetAttribute�s^���j�j�������� 7��F�F�H�H������+�+�I�6�6��;�;�;�;�;rc���t��}|�|�dd����}|�ddd��|�|�dd��d��|�|�dd��d��|�|�d����}|�|�dd	��d��dS)
Nr�r�r�r��python�otherrr�r
)rrr�r�rU�getAttributeNSrk)r3rr�r�s    r�testGetAttributeNSzMinidomTest.testGetAttributeNS�s���j�j������#�#�$;�\�J�J�L�L��
���0�.�0G�	I�	I�	I�����-�-�.A�8�L�L�#�	%�	%�	%�����-�-�.A�7�K�K��	�	�	��"�"�3�#4�#4�U�#;�#;�<�<������.�.�/F�	�R�R��	�	�	�	�	rc��dSr1rrs r�testGetAttributeNodez MinidomTest.testGetAttributeNode�����rc�r�d}t|��}|�dd��}|�t|��dkoT|djdkoC|djdko2|djdko!|djdko|djdk��|�	��dS)NzZ<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
        <minidom:myelem/>
        </foo>zhttp://pyxml.sf.net/minidom�myelemrfrrzminidom:myelem)
r	�getElementsByTagNameNSr6rmrQrRrS�tagNamer�rG)r3�dr�elemss    r�testGetElementsByTagNameNSz&MinidomTest.testGetElementsByTagNameNS�s������!�n�n���*�*�+H�+3�5�5�����S��Z�Z�1�_�:��!�H�)�-J�J�:��!�H�&�(�2�:��!�H�O�y�0�:��!�H�$�(8�8�	:�
�!�H�%�)9�9�	;�	;�	;�	�
�
�����rc�~�|�||��}|�t|��dk��dSr))rr6rm)r3r�nsuri�lname�nodelists     r�5get_empty_nodelist_from_elements_by_tagName_ns_helperzAMinidomTest.get_empty_nodelist_from_elements_by_tagName_ns_helper�s:���-�-�e�U�;�;�����S��]�]�a�'�(�(�(�(�(rc�V�td��}|�|dd��|�|dd��|�|dd��td��}|�|dd��|�|dd��|�|d	d
��dS)Nrzz"http://xml.python.org/namespaces/a�	localname�*�splatz3<doc xmlns="http://xml.python.org/splat"><e/></doc>zhttp://xml.python.org/splatz	not-therez#http://somewhere.else.net/not-there�e)r	r r@s  r�+testGetEmptyNodeListFromElementsByTagNameNSz7MinidomTest.testGetEmptyNodeListFromElementsByTagNameNS�s����(�#�#���B�B��5�{�	D�	D�	D��B�B���g�	�	�	��B�B��5�s�	<�	<�	<��O�P�P���B�B��.��	=�	=�	=��B�B���k�	#�	#�	#��B�B��6��	=�	=�	=�	=�	=rc��t��}|�|�d����}t|��}t	|��}|�||k��|���dSr��rrrk�repr�strr6rG�r3rr��string1�string2s     r�testElementReprAndStrz!MinidomTest.testElementReprAndStr��h���j�j��
�_�_�S�.�.�u�5�5�
6�
6���r�(�(���b�'�'�����W��'�(�(�(��
�
�����rc��t��}|�|�d����}t|��}t	|��}|�||k��|���dSr�r(r+s     r�testElementReprAndStrUnicodez(MinidomTest.testElementReprAndStrUnicode�r/rc�8�t��}|�|�dd����}t|��}t	|��}|�||k��|�d|v��|���dS)Nzhttp://www.slashdot.orgz	slash:abc)rrr�r)r*r6rGr+s     r�testElementReprAndStrUnicodeNSz*MinidomTest.testElementReprAndStrUnicodeNSs����j�j��
�_�_���� 9�;�G�G�I�I���r�(�(���b�'�'�����W��'�(�(�(����[�G�+�,�,�,��
�
�����rc�,�t��}|�|�d����}|�dd��}|�t|��t
|��k��|���dS)Nr�r�)rrrkr�r6r*r)rG)r3rr�r9s    r�testAttributeReprzMinidomTest.testAttributeReprsq���j�j��
�_�_�S�.�.�u�5�5�
6�
6�����u�e�,�,�����S��Y�Y�$�t�*�*�,�-�-�-��
�
�����rc��dSr1rrs r�testTextNodeReprzMinidomTest.testTextNodeReprrrc��d}t|��}|���}|���|�||k��dS)Nz <?xml version="1.0" ?><a b="c"/>)r	rqrGr6�r3r*r�domstrs    r�testWriteXMLzMinidomTest.testWriteXMLsJ��0���#�����������
�
�������S�F�]�#�#�#�#�#rc���d}t|��}|�d���}|���|�||�dd��k��dS)Nz"<?xml version="1.0" ?>
<a b="c"/>
z
)�newl�
)r	�toprettyxmlrGr6�replacer9s    r�testAltNewlinezMinidomTest.testAltNewlines_��4���#�������f��-�-���
�
�������V�s�{�{�4��8�8�8�9�9�9�9�9rc�:�d}|�td�����|dz��|�td�����|dz��|�td�����|dz��|�td�����|d	z��|�td
�����|dz��dS)N�<?xml version="1.0" ?>
�<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>
)rUr	r?)r3�decls  r� test_toprettyxml_with_text_nodesz,MinidomTest.test_toprettyxml_with_text_nodes#s5��)������Z�0�0�<�<�>�>���,�	.�	.�	.�����%7�8�8�D�D�F�F�� >�>�	@�	@�	@�����%7�8�8�D�D�F�F�� >�>�	@�	@�	@�����%>�?�?�K�K�M�M�� E�E�	G�	G�	G�����%?�@�@�L�L�N�N�� J�J�	L�	L�	L�	L�	Lrc�p�t��}|�d��}|�|�d����|�|�d����|�|��d}|�|���|dz��dS)Nru�TEXTrCz<elem>
	TEXT
	TEXT
</elem>
)rrkrr~rUr?)r3rrurEs    r�)test_toprettyxml_with_adjacent_text_nodesz5MinidomTest.test_toprettyxml_with_adjacent_text_nodes1s����j�j��� � ��(�(������+�+�F�3�3�4�4�4�����+�+�F�3�3�4�4�4��������)��������*�*�� C�C�	E�	E�	E�	E�	Erc�t�dD]�}t|��}t|�����}|�|�d��djd���|�d��djd�������dS)N)rDz<A><B>C</B></A>�Br)r	r?rUr^rjrq)r3r*rr�s    r�/test_toprettyxml_preserves_content_of_text_nodez;MinidomTest.test_toprettyxml_preserves_content_of_text_node<s���2�	I�	I�C��c�"�"�C��s���0�0�1�1�D�����(�(��-�-�a�0�;�A�>�D�D�F�F��)�)�#�.�.�q�1�<�Q�?�E�E�G�G�
I�
I�
I�
I�	I�	Irc��td��}|jj}|�|jdko�|jdko�|jdko|jtj	koj|j
duoa|���oLt|j
��dko4|jduo+|jduo"|jduo|jt"jjk��dS)Nz<e><?mypi 	
 data 	
 ?></e>�mypizdata 	
 r)r	r_ror6�targetr�r��nodeTyper�PROCESSING_INSTRUCTION_NODEr��
hasChildNodesrmrjrprRrQrr�EMPTY_NAMESPACE)r3r�pis   r�testProcessingInstructionz%MinidomTest.testProcessingInstructionEs���;�<�<��
�
 �
+�����R�Y�&�(�
?��G�|�+�
?��K�6�)�
?��K�4�#C�C�
?��M�T�)�	
?�
�(�(�*�*�*�
?���
�&�&�!�+�
?��M�T�)�
?��L�D�(�
?��L�D�(�
?��O�s�w�'>�>�
	@�
	@�
	@�
	@�
	@rc��dSr1rrs r�testProcessingInstructionReprz)MinidomTest.testProcessingInstructionReprTrrc��dSr1rrs r�testTextReprzMinidomTest.testTextReprVrrc��dSr1rrs r�
testWriteTextzMinidomTest.testWriteTextXrrc��dSr1rrs r�testDocumentElementzMinidomTest.testDocumentElementZrrc���td��}|�d��}|�tjj|j|��|���|���dS)Nrz�extra)r	rkr�rrr�rrG�r3rrus   r�testTooManyDocumentElementsz'MinidomTest.testTooManyDocumentElements\s_���(�#�#��� � ��)�)�����#�'�5�s���M�M�M����
�
�
��
�
�����rc��dSr1rrs r�testCreateElementNSzMinidomTest.testCreateElementNSdrrc��dSr1rrs r�testCreateAttributeNSz!MinidomTest.testCreateAttributeNSfrrc��dSr1rrs r�	testParsezMinidomTest.testParsehrrc��dSr1rrs r�testParseStringzMinidomTest.testParseStringjrrc��dSr1rrs r�testCommentzMinidomTest.testCommentlrrc��dSr1rrs r�testAttrListItemzMinidomTest.testAttrListItemnrrc��dSr1rrs r�testAttrListItemszMinidomTest.testAttrListItemsprrc��dSr1rrs r�testAttrListItemNSzMinidomTest.testAttrListItemNSrrrc��dSr1rrs r�testAttrListKeyszMinidomTest.testAttrListKeystrrc��dSr1rrs r�testAttrListKeysNSzMinidomTest.testAttrListKeysNSvrrc�:�td��}|j}|j}|�d��}|�d��}|�|�|����|�tj	j
|jd��dS)Nz<doc a=''/>r�)r	r_r�r��removeNamedItemr6�
isSameNoder�rrr��r3rr%r��a1�a2s      r�testRemoveNamedItemzMinidomTest.testRemoveNamedItemxs����-�(�(��������
�
�
��
$�
$��
�
"�
"�3�
'�
'�����R�]�]�2�&�&�'�'�'����#�'�-�u�/D�c�J�J�J�J�Jrc�@�td��}|j}|j}|�dd��}|�dd��}|�|�|����|�tj	j
|jdd��dS)Nz.<doc xmlns:a='http://xml.python.org/' a:b=''/>zhttp://xml.python.org/�b)r	r_r��getAttributeNodeNS�removeNamedItemNSr6rxr�rrr�rys      r�testRemoveNamedItemNSz!MinidomTest.testRemoveNamedItemNS�s����J�K�K��������
�
!�
!�":�C�
@�
@��
�
$�
$�%=�s�
C�
C�����R�]�]�2�&�&�'�'�'����#�'�-�u�/F�2�C�	9�	9�	9�	9�	9rc��dSr1rrs r�testAttrListValueszMinidomTest.testAttrListValues�rrc��dSr1rrs r�testAttrListLengthzMinidomTest.testAttrListLength�rrc��dSr1rrs r�testAttrList__getitem__z#MinidomTest.testAttrList__getitem__�rrc��dSr1rrs r�testAttrList__setitem__z#MinidomTest.testAttrList__setitem__�rrc��dSr1rrs r�testSetAttrValueandNodeValuez(MinidomTest.testSetAttrValueandNodeValue�rrc��dSr1rrs r�testParseElementzMinidomTest.testParseElement�rrc��dSr1rrs r�testParseAttributeszMinidomTest.testParseAttributes�rrc��dSr1rrs r�testParseElementNamespacesz&MinidomTest.testParseElementNamespaces�rrc��dSr1rrs r�testParseAttributeNamespacesz(MinidomTest.testParseAttributeNamespaces�rrc��dSr1rrs r�testParseProcessingInstructionsz+MinidomTest.testParseProcessingInstructions�rrc��dSr1rrs r�testChildNodeszMinidomTest.testChildNodes�rrc��dSr1rrs r�testFirstChildzMinidomTest.testFirstChild�rrc��td��}|j}|�|�����td��}|j}|�|�����dS)Nrcrz)r	r_r2rRr>)r3rrr��doc2s     r�testHasChildNodeszMinidomTest.testHasChildNodes�sq���-�.�.���!������)�)�+�+�,�,�,��8�$�$���#������+�+�-�-�.�.�.�.�.rc��|j}|j}t|�����}t|�����}|���|���|�||kd��tt
|����D]�}|�|��}	|�|��}
|�|	|
uo?|	j|
jko/|	j	|
j	ko|	j
|
j
ko|	j|
jkd��|�|
j|ud����dS)Nz(clone of element has same attribute keysz3clone of attribute node has proper attribute valuesz'clone of attribute node correctly owned)
r��list�keys�sortr6r�rmr*r�r�rQrRr�)r3�e1�e2r4�attrs1�attrs2�keys1�keys2r�rzr{s           r�!_testCloneElementCopiesAttributesz-MinidomTest._testCloneElementCopiesAttributes�sE���������V�[�[�]�]�#�#���V�[�[�]�]�#�#��
�
�
����
�
�
�������U�e�^�%O�P�P�P��s�5�z�z�"�"�
	?�
	?�A����Q���B����Q���B��L�L��2��5���B�H�,�5�����4�5���2�?�:�5�����4�K�
M�
M�
M�
�L�L���B�.�=�
?�
?�
?�
?�
	?�
	?rc��td��}|j}|�|��}|�||d|rdpdz��dx|_|_|�dd��|�dd	��||fS)
Nz<doc attr='value'><foo/></doc>�testCloneElement�Deep�Shallow�MODIFIEDrXz	NEW VALUE�added�VALUE)r	r_�	cloneNoder�rr�r�)r3�deeprrt�clones     r�_setupCloneElementzMinidomTest._setupCloneElement�s����:�;�;���"�����t�$�$���.�.��%�+�t���/K�)�L�	N�	N�	N�(2�1���t�}����&�+�.�.�.����'�7�+�+�+��E�z�rc��|�d��\}}|�t|j��dko0|jjdko |jduo|���dkd��|���dS)Nrz<doc attr="value"/>�testCloneElementShallow�r�r6rmrjrn�
parentNoderqrG�r3rr�s   rr�z#MinidomTest.testCloneElementShallow�s����,�,�Q�/�/�
��U����S��)�*�*�a�/�;��$�+�q�0�;��$��,�;��K�K�M�M�%:�:�+�		-�	-�	-�
	�
�
�����rc��|�d��\}}|�t|j��dko0|jjdko |jduo|���dkd��|���dS)Nrfz<doc attr="value"><foo/></doc>�testCloneElementDeepr�r�s   rr�z MinidomTest.testCloneElementDeep�s����,�,�Q�/�/�
��U����S��)�*�*�a�/�F��$�+�q�0�F��$��,�F��K�K�M�M�%E�E�(�		*�	*�	*�
	�
�
�����rc�~�td��}|�d��}|�|dud��dS)N��<?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!)r	r�r6�r3rr�s   r�testCloneDocumentShallowz$MinidomTest.testCloneDocumentShallow�sZ���*�+�+���}�}�Q�������T�T�\�@�	A�	A�	A�	A�	Arc��td��}|�d��}|�|�|��p|�|��d��|�t	|j��t	|j��kd��|�|jjtj	kd��|�|jj
�|��d��|�|j�|j��d��|j��|�|jjtjkd��|�|jj
�|����|�|j�|j����dSdS)	Nr�rfz4testCloneDocumentDeep: 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)
r	r�r6rxrmrjr_rPr�ELEMENT_NODEr+r�DOCUMENT_TYPE_NODEr�s   r�testCloneDocumentDeepz!MinidomTest.testCloneDocumentDeep�s����*�+�+���}�}�Q�������#�.�.��.�.�F�$�/�/�#�2F�2F�G�F�	H�	H�	H����S���(�(�C���,@�,@�@�J�	L�	L�	L����T�)�2�d�6G�G�L�	N�	N�	N����T�)�7�B�B�4�H�H�N�	P�	P�	P�����,�7�7��8L�M�M�M�M�	O�	O�	O��;�"��L�L���.�$�2I�I�M�
O�
O�
O��L�L���3�>�>�t�D�D�E�E�E��L�L�S�[�3�3�D�L�A�A�A�B�B�B�B�B�#�"rc�(�t��}|�d��}|�|du�o|j|jko�|j|jko�|j|jko�|j|jko�t|j��t|j��ko�|j�	t|j����duoot|j
��t|j
��koE|j
�	t|j
����duot|j��dk��tt|j����D]�}|j�	|��}|j�	|��}|�|�
|��o�|�
|��oo|j|jko_|j|jkoO|j|jko?|j|jko/|j|jko|j|jko|j|jk����tt|j
����D]�}|j
�	|��}|j
�	|��}|�|�
|��oE|�
|��o/|j|jko|j|jko|j|jk����dS)Nrfr)r'r�r6r�rV�publicId�systemIdrmrr*rrjr�rx�notationNamer#r$r")r3rr�r��se�ce�sn�cns        r�testCloneDocumentTypeDeepOkz'MinidomTest.testCloneDocumentTypeDeepOks&��)�+�+���!�!�!�$�$�����U�$�&�	/��N�g�&6�6�	/��J�'�,�.�	/��N�g�&6�6�	/��N�g�&6�6�		/�
���'�'�3�w�/?�+@�+@�@�	/��N�'�'��E�N�(;�(;�<�<��D�
	/����(�(�C��0A�,B�,B�B�	/��O�(�(��U�_�)=�)=�>�>�$�F�	/���(�)�)�Q�.�		0�		0�		0��s�7�+�,�,�-�-�	2�	2�A��!�&�&�q�)�)�B���$�$�Q�'�'�B��L�L�b�m�m�B�/�/�/�1��]�]�2�.�.�.�1���r�{�2�1���2�?�:�1���r�{�2�	1�
��r�{�2�1���r�{�2�
1��)�R�->�>�1��
�b�j�0�
2�
2�
2�
2��s�7�,�-�-�.�.�	4�	4�A��"�'�'��*�*�B���%�%�a�(�(�B��L�L�b�m�m�B�/�/�/�3��]�]�2�.�.�.�3���r�{�2�3���r�{�2�3���r�{�2�	
4�
4�
4�
4�	4�	4rc��t��}|j�d��}|�|dud��dS)Nrf�testCloneDocumentTypeDeepNotOk�r,rr�r6�r3rr�s   rr�z*MinidomTest.testCloneDocumentTypeDeepNotOk$sA��%�'�'����%�%�a�(�(�����U�d�]�$D�E�E�E�E�Erc��t��}|�d��}|�|duo�|j|jko�|j|jko�|j|jko�|j|jkot|j��dkog|j�	d��duoKt|j
��dko3|j
�	d��duot|j��dk��dSr))r'r�r6r�rVr�r�rmrr*rrj)r3rr�s   r�testCloneDocumentTypeShallowOkz*MinidomTest.testCloneDocumentTypeShallowOk)s��)�+�+���!�!�!�$�$�����U�$�&�	/��N�g�&6�6�	/��J�'�,�.�	/��N�g�&6�6�	/��N�g�&6�6�		/�
���'�'�1�,�	/��N�'�'��*�*�d�2�
	/����(�(�A�-�	/��O�(�(��+�+�t�3�	/���(�)�)�Q�.�		0�		0�		0�		0�		0rc��t��}|j�d��}|�|dud��dS)Nr�!testCloneDocumentTypeShallowNotOkr�r�s   rr�z-MinidomTest.testCloneDocumentTypeShallowNotOk7sA��%�'�'����%�%�a�(�(�����U�d�]�$G�H�H�H�H�Hrc��td��}td��}|�tjj|j||��dS)Nrz)r	r�rr�NotSupportedErr�
importNode)r3r��testName�doc1r�s     r�check_import_documentz!MinidomTest.check_import_document<sC���8�$�$���8�$�$�����#�'�1�4�?�D�$�O�O�O�O�Orc�2�|�dd��dS)Nr�testImportDocumentShallow�r�rs rr�z%MinidomTest.testImportDocumentShallowA����"�"�1�&A�B�B�B�B�Brc�2�|�dd��dS)Nrf�testImportDocumentDeepr�rs rr�z"MinidomTest.testImportDocumentDeepD����"�"�1�&>�?�?�?�?�?rc��t��}t��}|�tjj|j|jd��dSr)�r,rr�rrr�r�r�r3�srcrOs   r�testImportDocumentTypeShallowz)MinidomTest.testImportDocumentTypeShallowG�M��%�'�'��+�-�-�����#�'�1�6�3D��+�q�	*�	*�	*�	*�	*rc��t��}t��}|�tjj|j|jd��dS�Nrfr�r�s   r�testImportDocumentTypeDeepz&MinidomTest.testImportDocumentTypeDeepMr�rc�:�td��}|j�d��}|�|d��|�|��}|�|�|����|�|�|����|�|jdu|dz��|�|j�|j��|dz��|�|j	|dz��dS)Nz<doc attr='value'/>rXz: ownerElement should be Nonez: ownerDocument does not matchz.: cloned attribute must have specified == True)
r	r_r��assertNotEqualr�r6rxr�r+�	specified)r3r�r�rrXr�s      r�check_clone_attributez!MinidomTest.check_clone_attributeUs!���/�0�0���"�3�3�F�;�;�����D�$�'�'�'����t�$�$������)�)�$�/�/�/�0�0�0��������/�/�/�0�0�0����U�'�4�/��:�:�	<�	<�	<����U�(�3�3�D�4F�G�G��;�;�	=�	=�	=����U�_��K�K�	M�	M�	M�	M�	Mrc�2�|�dd��dS)Nr�testCloneAttributeShallow�r�rs rr�z%MinidomTest.testCloneAttributeShallowcr�rc�2�|�dd��dS)Nrf�testCloneAttributeDeepr�rs rr�z"MinidomTest.testCloneAttributeDeepfr�rc��td��}|j}|�|jtj��|�|��}|�|j|jko|j	|j	k��dS)Nz<?target data?><doc/>)
r	rorUrPrrQr�r6rOr�)r3r�r�rrTr�s      r�check_clone_pizMinidomTest.check_clone_piis���1�2�2��
�^�������d�&F�G�G�G����T�"�"�����U�\�R�Y�.�*��J�"�'�)�	+�	+�	+�	+�	+rc�2�|�dd��dS)Nr�testClonePIShallow�r�rs rr�zMinidomTest.testClonePIShallowqs�����A�3�4�4�4�4�4rc�2�|�dd��dS)Nrf�testClonePIDeepr�rs rr�zMinidomTest.testClonePIDeepts�����A�0�1�1�1�1�1rc��tjj�d�����}Gd�d��}|��}|j}|jd}|�dd|��|rd|�d���}|�	|j
jjd	��tjj
j}|jjd}	ngtj|d
d��5|�d���}ddd��n#1swxYwYtjj
j}|jd}	|�	|j|��|�	|jd��|�	|jd��|�|j|��|�|j|	��dS)Nu
            <?xml version="1.0" ?>
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                "http://www.w3.org/TR/html4/strict.dtd"
                [ <!ENTITY smile "☺"> ]
            >
            <doc>Don't let entities make you frown &smile;</doc>
        c��eZdZd�ZdS)�4MinidomTest.check_clone_node_entity.<locals>.Handlerc�L�||_||_||_||_||_dSr1)�	operation�keyr�r��dst�r3r�r�r�r�r�s      r�handlez;MinidomTest.check_clone_node_entity.<locals>.Handler.handle�s)��!*������ ��	��������rN)�__name__�
__module__�__qualname__rrrr�Handlerr��s#������
�
�
�
�
rr�smiler�r�T)r�u%Don't let entities make you frown ☺r+)rrrr	�striprr�setUserDatar�rUr_ror8�UserDataHandler�
NODE_IMPORTEDr�	swap_attr�NODE_CLONEDr�r�r�r�r�r�)
r3�clone_document�documentr�handlerrr&r�r�r�s
          r�check_clone_node_entityz#MinidomTest.check_clone_node_entityws���7�?�.�.�0�
�E�G�G����	�	�	�	�	�	�	�	��'�)�)���"���!�'�*�����5�&�'�2�2�2��	*��&�&�D�&�1�1�E����U�2�=�G�D�
F�
F�
F���/�=�I��-�(��1�C�C��"�7�O�T�B�B�
5�
5��)�)�t�)�4�4��
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5���/�;�I��.��)�C�����*�I�6�6�6������e�,�,�,������v�.�.�.��
�
�g�k�6�*�*�*��
�
�g�k�3�'�'�'�'�'s�5D�D�Dc�Z�|�d��|�d��dS)NFT)rrs r�testCloneNodeEntityzMinidomTest.testCloneNodeEntity�s0���$�$�U�+�+�+��$�$�T�*�*�*�*�*rc��td��}|j}|�|�d����|�|�d����|�t|j��dko|jjdkd��|���|�t|j��dko-|jjdko|j	|j
uo|j	jdkd��|���td��}|j}|�|�d	����|���|�t|j��d
ko|jjd
kd��|���dS)Nrz�first�secondreztestNormalize -- preparationrf�firstsecondztestNormalize -- resultrrz*testNormalize -- single empty node removed)
r	r_rr~r6rmrjrn�	normalizerorpr�rG�r3rrts   r�
testNormalizezMinidomTest.testNormalize�s����(�#�#���"������+�+�G�4�4�5�5�5�����+�+�H�5�5�6�6�6����S���)�)�Q�.�0��O�*�a�/�.�	0�	0�	0�	�
�
�������S���)�)�Q�.�:��O�*�a�/�:��O�t�~�5�:��O�(�M�9�+�		-�	-�	-�
	�
�
�����(�#�#���"������+�+�B�/�/�0�0�0��
�
�������S���)�)�Q�.�0��O�*�a�/�<�	>�	>�	>�	�
�
�����rc�"�td��}|j}|�|�d����|�|�d����|�|�d����|�t
|j��dko|jjdkd��|�	��|�t
|j��dkoo|jjdko_|j
jdkoO|j
|juoA|j
j
|juo.|j
jduo |jj|j
uo
|jj
dud	��|���dS)
Nrzrrr�rgz1testNormalizeCombineAndNextSibling -- preparationrerz-testNormalizeCombinedAndNextSibling -- result)r	r_rr~rkr6rmrjrnrror�rprsrrrGrs   r�"testNormalizeCombineAndNextSiblingz.MinidomTest.testNormalizeCombineAndNextSibling�s����(�#�#���"������+�+�G�4�4�5�5�5�����+�+�H�5�5�6�6�6�����*�*�3�/�/�0�0�0����S���)�)�Q�.�0��O�*�a�/�C�	E�	E�	E�	�
�
�������S���)�)�Q�.�7��O�*�a�/�7��O�(�M�9�7��O�4�>�9�7��O�/�4�>�A�	7�
�O�3�t�;�7��N�2�d�o�E�
7��N�.�$�6�A�	C�	C�	C�	�
�
�����rc��td��}|j}|�|�d����|�|�d����|�t|j��dko|jjdkd��|���|�t|j��dkoI|jjdko9|j	j
dko)|j	|juo|j	jduo
|j	j
dud��|���dS)Nrzrrrez1testNormalizeDeleteWithPrevSibling -- preparationrfz,testNormalizeDeleteWithPrevSibling -- result�r	r_rr~r6rmrjrnrror�rprsrrrGrs   r�"testNormalizeDeleteWithPrevSiblingz.MinidomTest.testNormalizeDeleteWithPrevSibling�sH���(�#�#���"������+�+�G�4�4�5�5�5�����+�+�B�/�/�0�0�0����S���)�)�Q�.�0��O�*�a�/�C�	E�	E�	E�	�
�
�������S���)�)�Q�.�<��O�*�a�/�<��O�(�G�3�<��O�t�~�5�<��O�/�4�7�	<�
�O�3�t�;�@�
	B�	B�	B�	�
�
�����rc��td��}|j}|�|�d����|�|�d����|�t|j��dko|jjdkd��|���|�t|j��dkoI|jjdko9|j	j
dko)|j	|juo|j	jduo
|j	j
dud��|���dS)Nrzrrrez1testNormalizeDeleteWithNextSibling -- preparationrfz,testNormalizeDeleteWithNextSibling -- resultrrs   r�"testNormalizeDeleteWithNextSiblingz.MinidomTest.testNormalizeDeleteWithNextSibling�sH���(�#�#���"������+�+�B�/�/�0�0�0�����+�+�H�5�5�6�6�6����S���)�)�Q�.�0��O�*�a�/�C�	E�	E�	E�	�
�
�������S���)�)�Q�.�<��O�*�a�/�<��O�(�H�4�<��O�t�~�5�<��O�/�4�7�	<�
�O�3�t�;�@�
	B�	B�	B�	�
�
�����rc��td��}|j}|�|�d����|�|�d����|�|�d����|�t
|j��dko|jjdkd��|�	��|�t
|j��dko_|jjdkoO|j
|juoA|j
j|juo.|j
j
duo |jj
|j
uo
|jjdud��|���dS)Nrzr�rrgz1testNormalizeDeleteWithTwoSiblings -- preparationrez,testNormalizeDeleteWithTwoSiblings -- result)r	r_rrkr~r6rmrjrnrrorprsrrrGrs   r�)testNormalizeDeleteWithTwoNonTextSiblingsz5MinidomTest.testNormalizeDeleteWithTwoNonTextSiblings�s����(�#�#���"������*�*�3�/�/�0�0�0�����+�+�B�/�/�0�0�0�����*�*�3�/�/�0�0�0����S���)�)�Q�.�0��O�*�a�/�C�	E�	E�	E�	�
�
�������S���)�)�Q�.�7��O�*�a�/�7��O�4�>�9�7��O�/�4�>�A�7��O�3�t�;�	7�
�N�2�d�o�E�7��N�.�$�6�@�	B�	B�	B�	�
�
�����rc�v�td��}|j}|�|�d����|�|�d����|�|�d����|�|�d����|�|�d����|�t|j��dko|jjdkd��|���|�t|j��dkoI|jjdko9|j	|j
uo+|j	jdko|j	jduo
|j	j
dud	��|���dS)
Nrzrr�fourth�z,testNormalizeDeleteAndCombine -- preparationrf�secondfourthz'testNormalizeDeleteAndCombine -- result)r	r_rr~r6rmrjrnrrorpr�rrrsrGrs   r�testNormalizeDeleteAndCombinez)MinidomTest.testNormalizeDeleteAndCombines����(�#�#���"������+�+�B�/�/�0�0�0�����+�+�H�5�5�6�6�6�����+�+�B�/�/�0�0�0�����+�+�H�5�5�6�6�6�����+�+�B�/�/�0�0�0����S���)�)�Q�.�0��O�*�a�/�>�	@�	@�	@�	�
�
�������S���)�)�Q�.�8��O�*�a�/�8��O�t�~�5�8��O�(�N�:�8��O�3�t�;�	8�
�O�/�4�7�;�
	=�	=�	=�	�
�
�����rc�~
�td��}|j}|jd�|�d����|jd�|�d����|jdjd�|�d����|jd�|�d����|�|�d����|�t
|j��dko�|jjdko�t
|jdj��d	ko�|jdjjd	ko�t
|jdj��dkon|jdjjdkoSt
|jdjdj��d
ko%|jdjdjjd
kd��|���|�t
|j��d
ko�|jjd
ko�t
|jdj��d
ko�|jdjjd
ko�t
|jdj��d
kon|jdjjd
koSt
|jdjdj��dko%|jdjdjjdkd��|�|jdjdj	d
koL|jdjdjdj	dko |jdjdj	dkd��|�|jdjdj
du�o0|jdjdj|jdjduo�|jdjdjduo�|jdjdj
|jdjduo�|jdjdj
duo�|jdjdj|jdjduoS|jdjdjduo4|jdjdj
|jdjdud��|���dS)Nz)<doc><o><i/>t</o><o><o>t2</o>t3</o></doc>rr�xrf�x2�x3rgrireztestNormalize2 -- preparationz$testNormalize2 -- childNodes lengths�tx�t2x2�t3x3z$testNormalize2 -- joined text fieldsz"testNormalize2 -- sibling pointers)
r	r_rjrr~r6rmrnrr�rsrrrGrs   r�testNormalizeRecursionz"MinidomTest.testNormalizeRecursion%s����#�$�$��"�"������&�&�s�'9�'9�"�'=�'=�>�>�>�����&�&�s�'9�'9�#�'>�'>�?�?�?�����%�a�(�4�4�S�5G�5G��5M�5M�N�N�N�����&�&�s�'9�'9�$�'?�'?�@�@�@�����+�+�B�/�/�0�0�0����S���)�)�Q�.�L��O�*�a�/�L�����*�5�6�6�!�;�L��O�A�&�1�8�A�=�L�����*�5�6�6�!�;�	L�
�O�A�&�1�8�A�=�L�����*�5�a�8�C�D�D��I�
L��O�A�&�1�!�4�?�F�!�K�1�	3�	3�	3�	�
�
�������S���)�)�Q�.�L��O�*�a�/�L�����*�5�6�6�!�;�L��O�A�&�1�8�A�=�L�����*�5�6�6�!�;�	L�
�O�A�&�1�8�A�=�L�����*�5�a�8�C�D�D��I�
L��O�A�&�1�!�4�?�F�!�K�8�	:�	:�	:�	
���T�_�Q�'�2�1�5�:�d�B�D��O�A�&�1�!�4�?��B�G�6�Q�D��O�A�&�1�!�4�9�V�C�8�	:�	:�	:�	
���T�_�Q�'�2�1�5�A�T�I�<��O�A�&�1�!�4�D��?�1�-�8��;�<�<��O�A�&�1�!�4�D��L�<��O�A�&�1�!�4�@��?�1�-�8��;�<�	<��O�A�&�1�!�4�@�D�H�
<��O�A�&�1�!�4�D��?�1�-�8��;�<�<��O�A�&�1�!�4�D��L�<��O�A�&�1�!�4�@��?�1�-�8��;�<�6�	8�	8�	8�	�
�
�����rc���td��}|jjd}|�|jt
j��|���|���dS)Nz<o>text</o>r)	r	r_rjrUrPr�	TEXT_NODErrG)r3rr�s   r�testBug0777884zMinidomTest.testBug0777884dsZ���-�(�(���"�-�a�0���������7�7�7��������
�
�����rc���td��}|j}d|jd_|���|�|jdjdud��dS)Nz<o><i/>t</o>rrfr�z)Final child's .nextSibling should be None)r	r_rjr�rr6rs�r3rr9s   r�testBug1433694zMinidomTest.testBug1433694lso���.�)�)���"��')�����$����������T�_�R�(�4��<�@�	B�	B�	B�	B�	Brc��td��}|j}|j\}}}|�|j|uo,|jduo#|j|uo|j|uo|jduo|j|ud��|���dS)Nz<doc><?pi?>text?<elm/></doc>�testSiblings)r	r_rjr6rsrrrG)r3rrtrTr��elms      rr7zMinidomTest.testSiblingsts����8�9�9���"���/���T�3����R�^�t�+�,��"�d�*�,�� �C�'�,��$��*�,���4�'�	,�
�#�t�+�^�	=�	=�	=�	�
�
�����rc�$�td��}|j}|jd}|j\}}|jd}|�|j|uo#|j|uo|j|uo|j|uo|j|ud��|���dS)Nz3<doc><elm1><elm2/><elm2><elm3/></elm2></elm1></doc>r�testParents)r	r_rjr6r�rG)r3rrt�elm1�elm2a�elm2b�elm3s       rr:zMinidomTest.testParents�s����A�C�C���"����q�!����������"�����T�_��+�)���4�'�)�� �D�(�)�� �D�(�)���5�(�-�		9�	9�	9�
	�
�
�����rc��td��}|j}|d}|�|d|�d��uo�|�d��duo�|j�d��|jduoZ|j�d��|jduo3|j�d��j�d��dud��|���dS)Nz<doc><e/><e/></doc>rrfztest NodeList.item())r	rjr6r*rG)r3rr��docelems    r�testNodeListItemzMinidomTest.testNodeListItem�s����/�0�0���>���1�+�����X�a�[�H�M�M�!�$4�$4�4�J��M�M�!�$�$��,�J��&�+�+�A�.�.�'�2D�Q�2G�G�J��&�+�+�A�.�.�'�2D�Q�2G�G�J��&�+�+�A�.�.�9�>�>�q�A�A�T�I�&�	(�	(�	(�	�
�
�����rc��td��}|�|���d��|�|�d��d��|�|�d��d��|�|�d��d��|�|�d	��d
�d	����tjdkrC|�ttd��|�ttd
��n(|�ttftd��|�	��dS)N�<foo>&#x20ac;</foo>�$<?xml version="1.0" ?><foo>€</foo>rs4<?xml version="1.0" encoding="utf-8"?><foo>€</foo>ziso-8859-15s8<?xml version="1.0" encoding="iso-8859-15"?><foo>�</foo>rs;<?xml version="1.0" encoding="us-ascii"?><foo>&#8364;</foo>zutf-16u5<?xml version="1.0" encoding="utf-16"?><foo>€</foo>)rerir%s<fran�ais></fran�ais>s.<franais>Comment �a va ? Tr�s bien ?</franais>s0<fran�ais>Comment �a va ? Tr�s bien ?</fran�ais>)
r	rUrq�encode�pyexpat�version_infor�r�UnicodeDecodeErrorrGr@s  r�
testEncodingszMinidomTest.testEncodings�s����/�0�0����������B�	D�	D�	D�������7�+�+�L�	N�	N�	N�������=�1�1�J�	L�	L�	L�������:�.�.�J�	L�	L�	L�������8�,�,�
 � &��x� 0� 0�	2�	2�	2���9�,�,����j�+�2�
4�
4�
4����j�+�K�
M�
M�
M�
M�
���z�*<�=�{�O�
Q�
Q�
Q�	�
�
�����rc���td��}|�|���d��|�|�d���d��|�|�d���d��|�|�d���d��|�|�dd��d	��|���dS)
NrCrD)�
standaloneTu4<?xml version="1.0" standalone="yes"?><foo>€</foo>Fu3<?xml version="1.0" standalone="no"?><foo>€</foo>rsE<?xml version="1.0" encoding="utf-8" standalone="yes"?><foo>€</foo>)r	rUrqrGr@s  r�testStandalonezMinidomTest.testStandalone�s���/�0�0����������B�	D�	D�	D�������d��3�3�B�	D�	D�	D�������d��3�3�E�	G�	G�	G�������e��4�4�D�	F�	F�	F�������7�D�1�1�
'�	(�	(�	(�	�
�
�����rc��eZdZdZd�ZdS)�MinidomTest.UserDataHandlerrc�v�|�||dz|��|�|dd��d|_dSr�)r�calledrs      rrz"MinidomTest.UserDataHandler.handle�s=���O�O�C����4�0�0�0��O�O�C��t�,�,�,��D�K�K�KrN)rrrrPrrrrr	rN�s(��������	�	�	�	�	rr	c��t��}|�d��}|�|�d��du��|�ddd��|�|�d��du��|�ddd��|�ddd��|�|�d��dk��|�|�d��dk��|�ddd��|�|�d��du��|�|�d��dk��|���}|�dd|��|�d��}|�|jo/|�d��duo|�d��dk��|���|���|���dS)Nr%r|�rh�
rf)	rrkr6�getUserDatarr	r�rPrG)r3r�nr�cs     r�testUserDatazMinidomTest.testUserData�s����j�j�����c�"�"�����Q�]�]�5�)�)�T�1�2�2�2�	�
�
�e�T�4�(�(�(����Q�]�]�5�)�)�T�1�2�2�2�	�
�
�e�R��$�$�$�	�
�
�e�R��$�$�$����Q�]�]�5�)�)�R�/�0�0�0����Q�]�]�5�)�)�R�/�0�0�0�	�
�
�e�T�4�(�(�(����Q�]�]�5�)�)�T�1�2�2�2����Q�]�]�5�)�)�R�/�0�0�0��&�&�(�(��	�
�
�e�R��)�)�)�
�K�K��N�N�����W�^�/��M�M�%�(�(�D�0�/��M�M�%�(�(�B�.�	0�	0�	0�	
���
�
�
�	���
�
�
��
�
�����rc��|�tjj|j|dd��td��}|�tjj|j|tjjd��dS)N�http://xml.python.org/nsz	xmlns:foorzr|)r�rr�NamespaceErr�
renameNoder	�WrongDocumentErrrS)r3rr9r�s    r� checkRenameNodeSharedConstraintsz,MinidomTest.checkRenameNodeSharedConstraints�su�����#�'�.����4�k�	C�	C�	C��8�$�$�����#�'�2�D�O�T��'�1�5�	:�	:�	:�	:�	:rc�
�td��}|j}|j}|jd}|�|tjjd��}|�|jdko�|j	dko�|j
duo�|jtjjko�|jduo�|j
dko�|�d��duov|�d���|��oN|d�|��o3|j�|��o|j�|����|�|dd��}|�|jdko�|j	dko�|j
dko�|jdko�|jduo�|j
dko�|�d��duo�|�d��duo�|�d���|��o^|�dd���|��o5|d�|��o|d�|����|�|dd	��}|�|jd	k�o|j	d	k�o|j
d
k�o|jdko�|jdko�|j
dko�|�d��duo�|�d��duo�|�d��duo�|�dd��duo�|�d	���|��o^|�dd
���|��o5|d	�|��o|d�|����|�|tjjd
��}|�|jd
ko�|j	d
ko�|j
duo�|jtjjko�|jduo�|j
dko�|�d��duo�|�d��duo�|�d��duoq|�d	��duoZ|�dd��duoB|�d
���|��o|d
�|����|�tjj|j|dd��|�||��|���dS)Nz<doc a='v'/>r�r~�vrYrV)rYrV�http://xml.python.org/ns2zp:dr�p)r`rr%�xmlns)r	r_r�r[rrrSr6rVr�rRrQrSr�r�rxr+r�rr�rZr]rG)r3rru�attrmaprXs     r�testRenameAttributezMinidomTest.testRenameAttribute�s���.�)�)���"���/����s�#���~�~�d�C�G�$;�S�A�A�����T�Y�#�%�
7��M�S�(�
7��N�d�*�
7��%���)@�@�
7��K�4�'�	
7�
�J�#�%�
7��)�)�#�.�.�$�6�
7��)�)�#�.�.�9�9�$�?�?�
7��C�L�+�+�D�1�1�
7��&�1�1�#�6�6�
7��%�0�0��6�6�
	8�
	8�
	8��~�~�d�$>��D�D�����T�Y�#�%�P��M�S�(�P��N�c�)�P��%�)C�C�P��K�4�'�	P�
�J�#�%�P��)�)�#�.�.�$�6�
P��)�)�#�.�.�$�6�P��)�)�#�.�.�9�9�$�?�?�P��+�+�.��5�5�5?�Z��5E�5E�P��C�L�+�+�D�1�1�P��=�>�I�I�$�O�O�	Q�	Q�	Q��~�~�d�$?��G�G�����T�Y�%�'�Q��M�U�*�Q��N�c�)�Q��%�)D�D�Q��K�3�&�	Q�
�J�#�%�Q��)�)�#�.�.�$�6�
Q��)�)�#�.�.�$�6�Q��)�)�#�.�.�$�6�Q��+�+�.��5�5�8<�=�Q��)�)�%�0�0�;�;�D�A�A�Q��+�+�/��6�6�6@�j��6F�6F�Q��E�N�-�-�d�3�3�Q��>�?�J�J�4�P�P�	R�	R�	R�$�~�~�d�C�G�$;�S�A�A�����T�Y�#�%�
2��M�S�(�
2��N�d�*�
2��%���)@�@�
2��K�4�'�	
2�
�J�#�%�
2��)�)�#�.�.�$�6�

2��)�)�#�.�.�$�6�
2��)�)�#�.�.�$�6�
2��)�)�%�0�0�D�8�
2��+�+�.��5�5�8<�=�
2��)�)�#�.�.�9�9�$�?�?�
2��C�L�+�+�D�1�1�
	3�
	3�
	3�	
���#�'�.����4�g�	?�	?�	?��-�-�c�4�8�8�8��
�
�����rc���td��}|j}|�|tjjd��}|�|jdkoP|jdkoE|j	duo<|j
tjjko"|jduo|j�
|����|�|dd��}|�|jdkoC|jdko8|j	dko-|j
dko"|jduo|j�
|����|�|dd��}|�|jdkoE|jdko:|j	dko/|j
dko$|jdko|j�
|����|�|tjjd	��}|�|jd	koP|jd	koE|j	duo<|j
tjjko"|jduo|j�
|����|�||��|���dS)
Nrzr�rYr~r`zp:crVrar)r	r_r[rrrSr6rr�rRrQrSr+rxr]rGr`s   r�testRenameElementzMinidomTest.testRenameElement<s����(�#�#���"���~�~�d�C�G�$;�S�A�A�����T�\�S�(�7��M�S�(�7��N�d�*�7��%���)@�@�7��K�4�'�	7�
�&�1�1�#�6�6�	8�	8�	8��~�~�d�$>��D�D�����T�\�S�(�7��M�S�(�7��N�c�)�7��%�)C�C�7��K�4�'�	7�
�&�1�1�#�6�6�	8�	8�	8��~�~�d�$?��G�G�����T�\�U�*�7��M�U�*�7��N�c�)�7��%�)D�D�7��K�3�&�	7�
�&�1�1�#�6�6�	8�	8�	8��~�~�d�C�G�$;�S�A�A�����T�\�S�(�7��M�S�(�7��N�d�*�7��%���)@�@�7��K�4�'�	7�
�&�1�1�#�6�6�	8�	8�	8�	
�-�-�c�4�8�8�8��
�
�����rc�^�tjj����tjjdd��}|�d��}|�tjj|j	|tjjd��|�
��dS)Nr%�commentr|)rrrr
rrSr�r�r�r[rGr4s   r�testRenameOtherzMinidomTest.testRenameOthergs����g�o�2�2�4�4�C�C��G�#�S�$�0�0��� � ��+�+�����#�'�1�3�>�4��'�1�5�	:�	:�	:��
�
�����rc��td��}|j}|jd}|�|jt
j��|�|d��|�|�	d����|�|d��|�
|�d��|��|�|d��|�d��}|�|��|�	d	��}|�|��|�|d��|�|d	��|�
d
��}|�||��|}|�|d��|�|d	��|�dd��}|�||��|}|�|d��|�|d	��|�|��|�|d
��|�|d
��dS)Nz<doc>a</doc>rr�r~�abrV�cabrhrr)�y�z�cabd)r	r_rjrUrPrr1r<rr~rl�createCDATASectionr�rkr��createProcessingInstruction�removeChild)r3rrur��splitter�text2r)s       r�
testWholeTextzMinidomTest.testWholeTextqs=���.�)�)���"����q�!���������7�7�7����D�#�&�&�&�����+�+�C�0�0�1�1�1����D�$�'�'�'����#�0�0��5�5�t�<�<�<����D�%�(�(�(��$�$�Y�/�/������"�"�"��"�"�3�'�'������������D�%�(�(�(����E�3�'�'�'����c�"�"�����!�X�&�&�&������D�%�(�(�(����E�3�'�'�'��+�+�C��5�5�����!�X�&�&�&������D�%�(�(�(����E�3�'�'�'�����"�"�"����D�&�)�)�)����E�6�*�*�*�*�*rc���td��}|j}|j}|�|j|ud��|�||��|�|j|ud��dS)Nz<doc><e/></doc>zBefore replaceChild()zAfter replaceChild())r	r_ror6r�r�)r3rrur%s    r�testPatch1094164zMinidomTest.testPatch1094164�ss���+�,�,���"���O�����Q�\�T�)�+B�C�C�C����!�Q�������Q�\�T�)�+A�B�B�B�B�Brc���d�}|��\}}}}}|�d��}|�|d��|�|d��|�t|j��dk��|��\}}}}}|�d��}|�|d��|�|d��|�t|j��dk��|��\}}}}}|�d��}|�|d��|�|duot|j��dk��dS)	Nc�
�td��}|j}|j}|j}|j}|�|�d��|��|�|�d��|��|||||fS)Nz<doc>a<e/>d</doc>r~rV)r	r_rorprsrlr~rp)rru�text1rtrss     r�setupz/MinidomTest.testReplaceWholeText.<locals>.setup�s����1�2�2�C��&�D��O�E��N�E��(�H����c�0�0��5�5�x�@�@�@����c�4�4�S�9�9�5�A�A�A���e�X�u�4�4rznew contentrrgrlr%rre)�replaceWholeTextr<r6rmrj)r3r{rrurzrsrtr�s        r�testReplaceWholeTextz MinidomTest.testReplaceWholeText�s{��	5�	5�	5�-2�E�G�G�)��T�5�(�E��%�%�m�4�4�����D�-�0�0�0����E�3�'�'�'����S���)�)�Q�.�/�/�/�,1�E�G�G�)��T�5�(�E��%�%�m�4�4�����D�-�0�0�0����E�5�)�)�)����S���)�)�Q�.�/�/�/�,1�E�G�G�)��T�5�(�E��%�%�b�)�)�����E�3�'�'�'����T�T�\�.����(�(�A�-�	/�	/�	/�	/�	/rc��td��}|j}|j}|�|jduo|jtjjk��d�	��}|D][}|�
|��}|j}|�t|d��o|jtjjk���\dS)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 nmsrV)r	r_�
schemaTyper6rV�	namespacerrrS�splitr��hasattr)r3rrur;�namesrVr�s       r�testSchemaTypezMinidomTest.testSchemaType�s����
/�0�0��"�"��

�O�����Q�V�t�^�;��K�3�7�#:�:�	<�	<�	<�=�C�C�E�E���	@�	@�D��%�%�d�+�+�A���A��L�L���F�+�+�?���s�w�'>�>�
@�
@�
@�
@�	@�	@rc���td��}|j}|�d��}|�d��}|�|�d��duo|jo|j��|�d��|�|�|�d����o|jo|j��|�d��|�|�|�d����o5|�|�d����o
|jo|j��|�d��}d|_	|�
|��|�|�d��duo>|�|�d����o|jo|jo|j��|�|tj
jd��|�|�|�d����o|j��dS)Nz<doc a1='v' a2='w'/>rzr{r_�w�an)r	r_r�r6�getElementByIdr�r�rx�createAttributer�r�r[rrrS)r3rr%rzr{�a3s      r�testSetIdAttributezMinidomTest.testSetIdAttribute�se���0�1�1�����
�
�
��
%�
%��
�
�
��
%�
%�����S�'�'��,�,��4� ���K� ���K�	!�	!�	!�	
����������Q�\�\�#�"4�"4�S�"9�"9�:�:� ��G� ���K�	!�	!�	!�	
����������Q�\�\�#�"4�"4�S�"9�"9�:�:���L�L��!3�!3�C�!8�!8�9�9���G���G�	�	�	�
�
 �
 ��
&�
&�����	���2�������S�'�'��,�,��4� ��L�L��!3�!3�C�!8�!8�9�9� ���K� ��G� ���K�		!�	!�	!�	���r�3�7�2�D�9�9�9����Q�\�\�#�"4�"4�S�"9�"9�:�:���G�	�	�	�	�	rc��d}d}td|zdz|zdz��}|j}|�|d��}|�|d��}|�|�d��duo|jo|j��|�|d��|�|�|�d����o|jo|j��|�|d��|�|�|�d����o5|�|�d	����o
|jo|j��|�|d��}d|_	|�
|��|�|�|�d	������|�|j��|�|j��|�|j��|�|�d��du��|�|tj
jd
��|�|�|�d	����o|j��dS�Nzhttp://xml.python.org/ns1r`z<doc xmlns:ns1='z
' xmlns:ns2='z' ns1:a1='v' ns2:a2='w'/>rzr{r_r�r�)r	r_rr6r�r��setIdAttributeNSrx�createAttributeNSr�r�r[rrrS�r3�NS1�NS2rr%rzr{r�s        r�testSetIdAttributeNSz MinidomTest.testSetIdAttributeNS�s���)��)���)�+.�/�2)�)�+.�/�25�5�6�6��
���
�
!�
!�#�t�
,�
,��
�
!�
!�#�t�
,�
,�����S�'�'��,�,��4� ���K� ���K�	!�	!�	!�	
���3��%�%�%����Q�\�\�#�"4�"4�S�"9�"9�:�:� ��G� ���K�	!�	!�	!�	
���3��%�%�%����Q�\�\�#�"4�"4�S�"9�"9�:�:���L�L��!3�!3�C�!8�!8�9�9���G���G�	�	�	�
�
"�
"�3��
-�
-�����	���2�������Q�\�\�#�"4�"4�S�"9�"9�:�:�;�;�;������[�!�!�!����R�W���������[�!�!�!����S�'�'��,�,��4�5�5�5����r�3�7�2�D�9�9�9����Q�\�\�#�"4�"4�S�"9�"9�:�:���G�	�	�	�	�	rc��d}d}td|zdz|zdz��}|j}|�|d��}|�|d��}|�|�d��duo|jo|j��|�|��|�|�|�d����o|jo|j��|�|��|�|�|�d����o5|�|�d	����o
|jo|j��|�|d��}d|_	|�
|��|�|�|�d	������|�|j��|�|j��|�|j��|�|�d��du��|�|tj
jd
��|�|�|�d	����o|j��dSr�)r	r_rr6r�r��setIdAttributeNoderxr�r�r�r[rrrSr�s        r�testSetIdAttributeNodez"MinidomTest.testSetIdAttributeNodes���)��)���)�+.�/�2)�)�+.�/�25�5�6�6��
���
�
!�
!�#�t�
,�
,��
�
!�
!�#�t�
,�
,�����S�'�'��,�,��4� ���K� ���K�	!�	!�	!�	
���R� � � ����Q�\�\�#�"4�"4�S�"9�"9�:�:� ��G� ���K�	!�	!�	!�	
���R� � � ����Q�\�\�#�"4�"4�S�"9�"9�:�:���L�L��!3�!3�C�!8�!8�9�9���G���G�	�	�	�
�
"�
"�3��
-�
-�����	���2�������Q�\�\�#�"4�"4�S�"9�"9�:�:�;�;�;������[�!�!�!����R�W���������[�!�!�!����S�'�'��,�,��4�5�5�5����r�3�7�2�D�9�9�9����Q�\�\�#�"4�"4�S�"9�"9�:�:���G�	�	�	�	�	rc�R�||fg}|�r|���\}}|�|j|j��|�t|j��t|j����|�|j|j��|�|�|����|�|�|����|jtj	k�rbt|j
��t|j
��t|j��t|j��|�t|j
��t|j
����|�t|j��t|j����tt|j����D]�}|j�
|��}|j�
|��}|�|j|j��|�|j|j��|�|j|j��|�||f����tt|j
����D]�}|j
�
|��}	|j
�
|��}
|�|	j|
j��|�|	j|
j��|�|	j|
j��|�|	|
f����|jtjkrZ|�|j�|����|�|j�|����tt|j����D]/}|�|j||j|f���0|��dSdSr1)�poprUrPrmrjr�r>rxrr�rrr�r*rVr�r�r r��
DOCUMENT_NODEr2r+)r3rr��stack�n1�n2r��no1�no2r�r�s           r�assert_recursive_equalz"MinidomTest.assert_recursive_equalCs����t��
���!	C��Y�Y�[�[�F�B�����R�[�"�+�6�6�6����S���/�/��R�]�1C�1C�D�D�D����R�[�"�+�6�6�6����R�]�]�2�.�.�/�/�/����R�]�]�2�.�.�/�/�/��{�d�5�5�5��B�K� � � ��B�K� � � ��B�L�!�!�!��B�L�!�!�!�� � ��R�[�!1�!1�3�r�{�3C�3C�D�D�D�� � ��R�\�!2�!2�C���4E�4E�F�F�F��s�2�<�0�0�1�1�-�-�A��,�+�+�A�.�.�C��,�+�+�A�.�.�C��$�$�S�X�s�x�8�8�8��$�$�S�\�3�<�@�@�@��$�$�S�\�3�<�@�@�@��L�L�#�s��,�,�,�,��s�2�;�/�/�0�0�+�+�A���)�)�!�,�,�B���)�)�!�,�,�B��$�$�R�_�b�o�F�F�F��$�$�R�[�"�+�>�>�>��$�$�R�[�"�+�>�>�>��L�L�"�b��*�*�*�*��{�d�0�0�0����� 0� ;� ;�C� @� @�A�A�A����� 0� ;� ;�D� A� A�B�B�B��3�r�}�-�-�.�.�
C�
C�����b�m�A�.��
�a�0@�A�B�B�B�B�C�!	C�!	C�!	C�!	C�!	Crc���tt��}tdtjdz��D]A}tj||��}tj|��}|�||���BdS)Nrerf)r	�sampler��pickle�HIGHEST_PROTOCOL�dumps�loadsr�)r3r�protor:r�s     r�testPickledDocumentzMinidomTest.testPickledDocumenthsq���&�!�!���1�f�5��9�:�:�	3�	3�E���S�%�(�(�A��<��?�?�D��'�'��T�2�2�2�2�	3�	3rc��tt��}tj|��}|�||��dSr1)r	r��copy�deepcopyr�r�s   r�testDeepcopiedDocumentz"MinidomTest.testDeepcopiedDocumentos:���&�!�!���}�S�!�!���#�#�C��.�.�.�.�.rc��t��}|�|�d����|�t|j��dS)Nzfoo--bar)rrr�r��
ValueErrorrqr@s  r�(testSerializeCommentNodeWithDoubleHyphenz4MinidomTest.testSerializeCommentNodeWithDoubleHyphentsK��(�*�*������)�)�*�5�5�6�6�6����*�c�i�0�0�0�0�0rc��td��}t|�����}|�|jtjjk��dS)Nz$<element xmlns=''>
<foo/>
</element>)r	rqr6rQrrrSr�s   r�testEmptyXMLNSValuezMinidomTest.testEmptyXMLNSValuezsP���/�0�0���3�9�9�;�;�'�'�����T�&�#�'�*A�A�B�B�B�B�Brc��|�ttfd��5td��ddd��dS#1swxYwYdS)Nz#(syntax error)|(Unsupported syntax)zE<element xmlns:abc="http:abc.com/de f g/hi/j k"><abc:foo /></element>)�assertRaisesRegexr�rr	rs r�!testExceptionOnSpacesInXMLNSValuez-MinidomTest.testExceptionOnSpacesInXMLNSValue�s���
�
#�
#�Z��$<�>c�
d�
d�	a�	a��_�`�`�`�	a�	a�	a�	a�	a�	a�	a�	a�	a�	a�	a�	a����	a�	a�	a�	a�	a�	as�A�A�Ac��tt��}|j�d��d}|�t
jj|j|��t|j
��}|�|j
d��t|j
��}|�||dz
k��dS)N�TITLErrf)rrFr_r^r�rrr�rrrmrjr2)r3r�	title_tag�num_children_before�num_children_afters     r�testDocRemoveChildzMinidomTest.testDocRemoveChild�s����G�n�n���'�<�<�W�E�E�a�H�	����3�7�.����K�K�K�!�#�.�1�1�������q�)�*�*�*� ���0�0�����*�.A�A�.E�E�F�F�F�F�Frc�h�tt��}|�dd��}d|_dS)Nrmrn�crash)rrFrqr�)r3rrTs   r�"testProcessingInstructionNameErrorz.MinidomTest.testProcessingInstructionNameError�s/���G�n�n��
�
,�
,�S�#�
6�
6������rc���d}t|��}tj��}|�|��|�|���|��dS�N�E<?xml version="1.0" ?><curriculum status="public" company="example"/>)r	�io�StringIO�writexmlrU�getvalue)r3�xml_strr�outputs    r�test_minidom_attribute_orderz(MinidomTest.test_minidom_attribute_order�sW��Y���'�"�"����������V����������*�*�G�4�4�4�4�4rc�x�d}t|��}|�|���|��dSr�)r	rUrq�r3r�rs   r�"test_toxml_with_attributes_orderedz.MinidomTest.test_toxml_with_attributes_ordered�s8��Y���'�"�"����������g�.�.�.�.�.rc�x�d}t|��}|�|���d��dS)Nr�zG<?xml version="1.0" ?>
<curriculum status="public" company="example"/>
�r	rUr?r�s   r�(test_toprettyxml_with_attributes_orderedz4MinidomTest.test_toprettyxml_with_attributes_ordered�sM��Y���'�"�"��������*�*�M�	N�	N�	N�	N�	Nrc�x�d}t|��}|�|���d��dS)N�C<?xml version="1.0" ?><root><node><![CDATA[</data>]]></node></root>zH<?xml version="1.0" ?>
<root>
	<node><![CDATA[</data>]]></node>
</root>
r�r�s   r�test_toprettyxml_with_cdataz'MinidomTest.test_toprettyxml_with_cdata�sG��W���'�"�"��������*�*�%�	&�	&�	&�	&�	&rc�:�d}t|��}|�|�d��djd��t|�����}|�|�d��djd��dS)Nr�r9rz</data>)r	r<r^ror?)r3r��dom1r�s    r�test_cdata_parsingzMinidomTest.test_cdata_parsing�s���W���7�#�#�����D�5�5�f�=�=�a�@�K�Y�W�W�W��4�+�+�-�-�.�.�����D�5�5�f�=�=�a�@�K�Y�W�W�W�W�WrN)r/)�rrrr6r<rArKrNrYr[rarxr�r�r�r�requires_resourcer�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr r&r.r1r3r5r7r;rArFrIrLrUrWrYr[r]rarcrergrirkrmrorqrsrur|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"r'r/r2r5r7r:rArIrLr	rWr]rdrfrirurwr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr.r.8sz������(�(�(�(�B�B�B�*�*�*�
4�4�4�4�4�4�6�6�6�4�4�4����)�)�)�V+�+�+����"����W��u�%�%�(�(�&�%�(�*=�=�=����������*���"���)�)�)�)�)�)�
���
�
�
�������*	�	�	�	�	�	�������$1�1�1�$�$�$�L
�
�
�
�
�
�
�
�
�<�<�<����)�(�(�
�
�
�)�)�)�
=�=�=�"������������%�$�$�$�$�$�:�:�:�L�L�L�	E�	E�	E�I�I�I�
@�
@�
@�2�1�1� � � �!�!�!�'�'�'����(�'�'�)�)�)����#�#�#����$�$�$�%�%�%�&�&�&�$�$�$�&�&�&�K�K�K�9�9�9�'�&�&�&�&�&�+�+�+�+�+�+�0�0�0�$�$�$�'�'�'�.�.�.�0�0�0�3�3�3�"�"�"�"�"�"�/�/�/�?�?�?�(
�
�
�������
A�
A�
A�C�C�C�2 4� 4� 4�DF�F�F�
0�0�0�I�I�I�
P�P�P�
C�C�C�@�@�@�*�*�*�*�*�*�M�M�M�C�C�C�@�@�@�+�+�+�5�5�5�2�2�2�-(�-(�-(�^+�+�+����2���*���$���$���(���*<�<�<�~���B�B�B����
�
�
�
�
�
����6��� �����������0:�:�:�K�K�K�Z)�)�)�V���"+�"+�"+�HC�C�C�/�/�/�:@�@�@�B���>"�"�"�H"�"�"�H#C�#C�#C�J3�3�3�/�/�/�
1�1�1�C�C�C�a�a�a�G�G�G����5�5�5�/�/�/�
N�N�N�&�&�&�X�X�X�X�Xrr.�__main__r1)r�r�r�r�r4r�unittestrF�xml.dom.minidomrrrrrrr	r
�xml.parsers.expatr�findfilerFr�rr'r,�TestCaser.r�mainrrr�<module>r�si������
�
�
�
�����	�	�	�	�������������������M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�0�0�0�0�0�0�(�(�(�(�(�(��'�
�:�m�
<�
<�
<��7��G�G�G�G���� ���}X�}X�}X�}X�}X�(�#�}X�}X�}X�~3�z����H�M�O�O�O�O�O��r