Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_minidom.cpython-312.opt-2.pyc

�

'Μg����ddlZddlZddlZddlmZddlZddlZddlmZm	Z	m
Z
mZmZddlm
Z
ddlmZej dd��Zd	Zdd
�Zd�Zd�ZGd
�dej,�Zedk(rej2�yy)�N)�support)�parse�Attr�Node�Document�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�8�t�jdd|�S)N�doc)r	�createDocument)�doctypes �./usr/local/lib/python3.12/test/test_minidom.py�create_doc_without_doctypers���!�0�0��u�g�F�F�c���t�jddd�}g|j_g|j_t
jjjddd�}|jjj|�t
jjjdddd�}d|_d|_d|_
|jjj|�|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�G��G�����G�����w�w���'�'�
�t�(L�N�H������!�!�(�+�
�W�W�_�_�
#�
#�K��$G�$1�3�F��F�N��F�O�&�F������� � ��(��Nrc��t�}t|�}||jjd�_||j
jd�_|S�Nr)r&rr�item�
ownerDocumentr)rrs  r�create_doc_with_doctyper+/sK��%�'�G�
$�W�
-�C�-0�G�����!��*�.1�G�����1��+��Jrc�p�eZdZd�d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�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�ZvGdu�dv�Zwdw�Zxdx�Zydy�Zzdz�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�y�)��MinidomTestc�(�|j||�y�N)�
assertTrue)�self�test�testnames   r�confirmzMinidomTest.confirm7s������h�'rc�R�|j}|j||k(d|�d|���y)Nzlooking for z, found )�	wholeTextr4)r1�node�s�ts    r�checkWholeTextzMinidomTest.checkWholeText:s"���N�N�����Q�!�V�1�a�@�Arc��t�}|j|j�|jtj�yr/)r�assertFalse�async_�r1rs  r�testDocumentAsyncAttrz!MinidomTest.testDocumentAsyncAttr>s-���j��������$�������)rc���ttd�5}t|�}|j�|j	t|t��ddd�y#1swYyxYw)N�rb��open�tstfiler�unlinkr4�
isinstancer�r1�filers   r�testParseFromBinaryFilez#MinidomTest.testParseFromBinaryFileCs?��
�'�4�
 �D���+�C��J�J�L��L�L��C��2�3�!�
 �
 �s�;A�Ac���ttdd��5}t|�}|j�|j	t|t��ddd�y#1swYyxYw)N�rz
iso-8859-1)r"rBrGs   r�testParseFromTextFilez!MinidomTest.testParseFromTextFileIsA��
�'�3��
6�$���+�C��J�J�L��L�L��C��2�3�7�
6�
6�s�;A�A c��tdddd�}|j|jd�|j|jd�|j|jd�|j|j
d�y)N�qName�namespaceURI�	localName�prefix�r�assertEqual�namerOrQrP�r1�attrs  r�testAttrModeSetsParamsAsAttrsz)MinidomTest.testAttrModeSetsParamsAsAttrsOsd���G�^�[�(�C��������G�,�����*�*�N�;�������h�/��������5rc��tdddd�}|j|jd�|j|jd�|j|jd�|j|j
|j�y)NrNrOrQrRrUs  r� testAttrModeSetsNonOptionalAttrsz,MinidomTest.testAttrModeSetsNonOptionalAttrsVsh���G�^�T�8�<��������G�,�����*�*�N�;�������h�/����������3rc��tt�}|j|jd�|jjd�k(�|j�y)N�LI)rrDr4�getElementsByTagName�documentElementrE�r1rs  r�testGetElementsByTagNamez$MinidomTest.testGetElementsByTagName]sG���G�n�����S�-�-�d�3��#�#�8�8��>�?�	@��
�
�rc�j�td�}|j}|jd}|jd�}|j	||�|jt
|j�dk(xr�|jjdk(xr�|jd|uxr�|jjd�|uxre|jd|uxrR|jjd�|uxr3|j|uxr#|j|uxr|j�dk(d�|jd�}|j	|d�|jt
|j�dk(xr�|jjdk(xr�|jd|uxr�|jjd�|uxre|jd|uxrR|jjd�|uxr3|j|uxr#|j|uxr|j�d	k(d�|jd
�}|j	||�|jt
|j�dk(xr�|jjdk(xr�|jd|uxr�|jjd�|uxre|jd|uxrR|jjd�|uxr3|j|uxr#|j|uxr|j�dk(d�|j�y)
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>)rr]�
childNodes�
createElement�insertBeforer4�len�lengthr)�
firstChild�	lastChild�toxml�previousSibling�nextSiblingrE)r1r�root�elem�nelem�nelem2s      r�testInsertBeforezMinidomTest.testInsertBeforecsD���-�.���"�"�����q�!���!�!�)�,�����%��&����S����)�Q�.�B��O�O�*�*�a�/�B��O�O�A�&�%�/�B��O�O�(�(��+�u�4�B��O�O�A�&�$�.�	B�
�O�O�(�(��+�t�3�B��O�O�u�,�
B��N�N�d�*�B��J�J�L�$A�A�D�		F��!�!�)�,�����%��&����S����)�Q�.�L��O�O�*�*�a�/�L��O�O�A�&�$�.�L��O�O�(�(��+�t�3�L��O�O�A�&�%�/�	L�
�O�O�(�(��+�u�4�L��N�N�e�+�
L��)�)�T�1�L��J�J�L�$K�K�D�		F��"�"�5�)�����&�%�(����S����)�Q�.�	>��O�O�*�*�a�/�	>��O�O�A�&�&�0�	>��O�O�(�(��+�v�5�	>��O�O�A�&�%�/�		>�
�O�O�(�(��+�u�4�	>��&�&�%�/�
	>��)�)�V�3�	>��J�J�L�=�>�D�
	F�	�
�
�rc�l�td�}|jd�}|jd�}|jd�}|jd�}|jj|�|j	�}|j|�|j|�|j|�||||||fS)N�<doc/>�original�foorf�bat)r�createTextNoder]�appendChild�createDocumentFragment�r1r�orig�c1�c2�c3�frags       r�_create_fragment_test_nodesz'MinidomTest._create_fragment_test_nodes�s����(�#���!�!�*�-��
�
�
��
&��
�
�
��
&��
�
�
��
&�����'�'��-��)�)�+������������������D�"�b�"�d�*�*rc�(�|j�\}}}}}}|jj|d�|jt	|jj
�||||fk(d�|j
�|j
�|j�\}}}}}}|jj||�|jt	|jj
�||||fk(d�|j
�|j
�y)NzinsertBefore(<fragment>, None)zinsertBefore(<fragment>, orig))r�r]rjr4�tuplerhrErs       r�testInsertBeforeFragmentz$MinidomTest.testInsertBeforeFragment�s���&*�&F�&F�&H�#��T�2�r�2�t����(�(��t�4����U�3�.�.�9�9�:��B��B�'�(�5�	7�	
���
��
�
��&*�&F�&F�&H�#��T�2�r�2�t����(�(��t�4����U�3�.�.�9�9�:��"�b�$�'�(�5�	7�	
���
��
�
�rc�j�tt�}|jj|j	d��|j|jjdjdk(�|j|jjdjdk(�|j�y)N�Hello���z#comment)
rrDr]r}�
createCommentr4rh�nodeName�datarEr^s  r�testAppendChildzMinidomTest.testAppendChild�s����G�n�����'�'��(9�(9�'�(B�C����S�(�(�3�3�B�7�@�@�J�N�O����S�(�(�3�3�B�7�<�<��G�H��
�
�rc��|j�\}}}}}}|jj|�|jt	|jj
�||||fk(d�|j
�|j
�y)NzappendChild(<fragment>))r�r]r}r4r�rhrErs       r�testAppendChildFragmentz#MinidomTest.testAppendChildFragment�sx��&*�&F�&F�&H�#��T�2�r�2�t����'�'��-����U�3�.�.�9�9�:��B��B�'�(�.�	0�	
���
��
�
�rc�4�|j�\}}}}}}|jj||�|j�|j	t|jj�|||fk(d�|j�|j�y)NzreplaceChild(<fragment>))r�r]�replaceChildrEr4r�rhrs       r�testReplaceChildFragmentz$MinidomTest.testReplaceChildFragment�s{��&*�&F�&F�&H�#��T�2�r�2�t����(�(��t�4����
����U�3�.�.�9�9�:�r�2�r�l�J�*�	,����
��
�
�rc���t�}|jd�}|jd�}|jtj
j|j|�|j|�|jtj
j|j||�|jtj
j|j||�|j}|jtj
j|j|�|jtj
j|j|�|j|�|j�y)Nrb�text)rrir|�assertRaisesrr�HierarchyRequestErrr}rjr��
attributes�setNamedItem�setNamedItemNSrE)r1rrsr��nodemaps     r�testLegalChildrenzMinidomTest.testLegalChildren�s���j��� � ��+���!�!�&�)�����#�'�'�5�5�s����M���������#�'�'�5�5�s�7G�7G���	 ����#�'�'�5�5�s�7G�7G���	 ��/�/�����#�'�'�5�5�w�7K�7K��	 ����#�'�'�5�5�w�7M�7M��	 �	
������
�
�rc��t�}|jd�}|j}d|d<|jd�}|j	|j
|ud�|j	|j|ud�|j	|jdk(d�|j	|jdk(d�|j�|j�y)	Nrbrfrzrz-NamedNodeMap.__setitem__() sets ownerDocumentz,NamedNodeMap.__setitem__() sets ownerElementz%NamedNodeMap.__setitem__() sets valuez)NamedNodeMap.__setitem__() sets nodeValue)
rrir�r)r4r*�ownerElement�value�	nodeValuerE)r1rrs�attrs�as     r�testNamedNodeMapSetItemz#MinidomTest.testNamedNodeMapSetItem�s����j��� � ��+��������e���J�J�q�M�����Q�_�_��+�?�	A����Q�^�^�t�+�>�	@����Q�W�W��%�7�	9����Q�[�[�E�)�;�	=����
��
�
�rc��tt�}|j|�|j|j	d��|j|j
dj
�|j
�y)Nrzr�)rrDr4r}r�rhrEr^s  r�testNonZerozMinidomTest.testNonZero�sU���G�n�����S������)�)�%�0�1��������+�6�6�6�7��
�
�rc��tt�}|j|j�|j	�|j|j�yr/)rrDr0rhrEr<r^s  r�
testUnlinkzMinidomTest.testUnlink�s6���G�n��������'��
�
��������(rc��tt�5}|j|j�ddd�|j	j�y#1swY�%xYwr/)rrDr0rhr<r^s  r�testContextzMinidomTest.testContext�s:��
�7�^�s��O�O�C�N�N�+��������(��^�s�A�Ac��t�}|j|jd��|j|j�|j�y�N�abc)rr}rir4r]rEr^s  r�testElementzMinidomTest.testElement�s;���j������)�)�%�0�1����S�(�(�)��
�
�rc�j�td�}|j}|jdd�|j|j	�dk(d�|jd�}|j|j|ud�|j|j|jud�|j�y)N�<abc/>�spam�jam2�<abc spam="jam2"/>�testAAAz!setAttribute() sets ownerDocumentz setAttribute() sets ownerElement)	rr]�setAttributer4ro�getAttributeNoder*r�rE)r1r�elr�s    rr�zMinidomTest.testAAAs����(�#��
�
 �
 ��
�����'����R�X�X�Z�#7�7��C�����'�����Q�_�_��+�3�	5����Q�^�^�s�':�':�:�2�	4��
�
�rc���td�}|j}|jdd�|jdd�|j|j	�dk(d�|j�y)Nr�r��jamr�r��testAAB)rr]r�r4rorE�r1rr�s   rr�zMinidomTest.testAABsV���(�#��
�
 �
 ��
�����&�
�����'����R�X�X�Z�#7�7��C��
�
�rc�T�t�}|j|jd��}|jdd�|j	|jd�dk(�|j	|jdjdk(�|jdd�|j	|jd�dk(�|j	|jdjdk(�|j	t|j�dk(�|jdd�|j	|jd�dk(�|j	|jdjdk(�|j	t|j�dk(�|j�y)Nr��def�ghi�jkl�mnorc�newval)
rr}rir�r4�getAttributer�r�rkrE�r1r�childs   r�testAddAttrzMinidomTest.testAddAttrsM���j������ 1� 1�%� 8�9��
���5�%�(����U�'�'��.�%�7�8����U�%�%�e�,�2�2�e�;�<�
���5�%�(����U�'�'��.�%�7�8����U�%�%�e�,�2�2�e�;�<����S��)�)�*�a�/�0�
���5�(�+����U�'�'��.�(�:�;����U�%�%�e�,�2�2�h�>�?����S��)�)�*�a�/�0��
�
�rc��t�}|j|jd��}|jt	|j
�dk(�|j
dd�|jt	|j
�dk(�|j
d=|jt	|j
�dk(�|j�y)Nr�rr�r�rd)rr}rir4rkr�r�rEr�s   r�testDeleteAttrzMinidomTest.testDeleteAttr,s����j������ 1� 1�%� 8�9�����S��)�)�*�a�/�0�
���5�%�(����S��)�)�*�a�/�0����U�#����S��)�)�*�a�/�0��
�
�rc���t�}|j|jd��}|jdd�|j	t|j�dk(�|jtjj|jd�|jd�|j	t|j�dk(�|j�y)Nr�r�r�rdrzr)
rr}rir�r4rkr�r�rr�NotFoundErr�removeAttributerEr�s   r�testRemoveAttrzMinidomTest.testRemoveAttr7s����j������ 1� 1�%� 8�9��
���5�%�(����S��)�)�*�a�/�0����#�'�'�-�-�u�/D�/D�e�L�
���e�$����S��)�)�*�a�/�0��
�
�rc���t�}|j|jdd��}|jddd�|jddd�|j	t
jj|jdd�|jt|j�dk(�|jdd�|jt|j�d	k(�|j�y)
N�http://www.python.org�
python:abc�http://www.w3.org�xmlns:pythonzpython:abcattrrzrc�abcattrrd)
rr}�createElementNS�setAttributeNSr�rrr��removeAttributeNSr4rkr�rEr�s   r�testRemoveAttrNSzMinidomTest.testRemoveAttrNSBs����j������#�#�$;�\�J�L��
���0�.�0G�	I�
���4�6F��N����#�'�'�-�-�u�/F�/F��*�	,����S��)�)�*�a�/�0�
��� 7��C����S��)�)�*�a�/�0��
�
�rc��t�}|j|jd��}|jdd�|j	t|j�dk(�|jd�}|jtjj|jd�|j||j|��|j	t|j�dk(xr|jd�du�t�}|j|jd��}|jd�}|jtjj|j|�|j�y)Nrzr�r�rdr)rr}rir�r4rkr�r�r�rrr��removeAttributeNode�assertIsrE)r1rr�r7�dom2�child2�node2s       r�testRemoveAttributeNodez#MinidomTest.testRemoveAttributeNodePs2���j������ 1� 1�%� 8�9��
���6�5�)����S��)�)�*�a�/�0��%�%�f�-�����#�'�'�-�-�u�/H�/H��	��
�
�d�E�5�5�d�;�<����S��)�)�*�a�/�;��*�*�6�2�d�:�	<��z���!�!�$�"4�"4�U�";�<���'�'��/�����#�'�'�-�-�v�/I�/I��	��
�
�rc��t�}|j|jd��}|jdd�|j	|jd��y)Nrzr�r�)rr}rir�r4�hasAttributer�s   r�testHasAttributezMinidomTest.testHasAttributebsI���j������ 1� 1�%� 8�9��
���6�5�)����U�'�'��/�0rc���td�}|j}|jdd�|jt	|j
�dk(�|jdd�|j
d�|jt	|j
�dk(xrm|j
djdk(xrO|j
djdk(xr1|jd�dk(xr|jd�j�d|j
d<|jt	|j
�dk(xrk|j
djdk(xrM|j
djdk(xr/|jd�dk(xr|j
dj�|jdd�|jt	|j
�dk(xr�|j
djdk(xr�|j
djdk(xrf|jd�dk(xrP|j
djdk(xr2|j
djdk(xr|jd�dk(�d	|j
d<|jt	|j
�dk(xr�|j
djdk(xr�|j
djdk(xrf|jd�dk(xrP|j
djd	k(xr2|j
djd	k(xr|jd�d	k(�|j�y)
Nr�r�r�rd�bam�ham�spam2rc�bam2)
rr]r�r4rkr��setIdAttributer�r�r�r��isIdrEr�s   r�testChangeAttrzMinidomTest.testChangeAttrhs$���(�#��
�
 �
 ��
�����&����S����'�1�,�-�
�����&�	���&�!����S����'�1�,�5��M�M�&�)�/�/�5�8�5��M�M�&�)�3�3�u�<�5��O�O�F�+�u�4�5��'�'��/�4�4�		6�
!&��
�
�f�����S����'�1�,�/��M�M�&�)�/�/�5�8�/��M�M�&�)�3�3�u�<�/��O�O�F�+�u�4�/��M�M�&�)�.�.�		0�
	�����'����S����'�1�,�6��M�M�&�)�/�/�5�8�6��M�M�&�)�3�3�u�<�6��O�O�F�+�u�4�6��M�M�'�*�0�0�E�9�	6�
�M�M�'�*�4�4��=�6��O�O�G�,��5�
	7�"(��
�
�g�����S����'�1�,�7��M�M�&�)�/�/�5�8�7��M�M�&�)�3�3�u�<�7��O�O�F�+�u�4�7��M�M�'�*�0�0�F�:�	7�
�M�M�'�*�4�4��>�7��O�O�G�,��6�
	8�	�
�
�rc��yr/��r1s r�testGetAttrListzMinidomTest.testGetAttrList����rc��yr/r�r�s r�testGetAttrValueszMinidomTest.testGetAttrValues�r�rc��yr/r�r�s r�testGetAttrLengthzMinidomTest.testGetAttrLength�r�rc��t�}|j|jdd��}|j|j	d�d�y)Nr�r��missing�)rr}r�rSr�r�s   r�testGetAttributezMinidomTest.testGetAttribute�sD���j�������� 7��F�H������+�+�I�6��;rc��t�}|j|jdd��}|jddd�|j	|jdd�d�|j	|jdd�d�|j|j
d��}|j	|jdd	�d�y)
Nr�r�r�r��python�otherr�r�r�)rr}r�r�rS�getAttributeNSri)r1rr�r�s    r�testGetAttributeNSzMinidomTest.testGetAttributeNS�s����j������#�#�$;�\�J�L��
���0�.�0G�	I�����-�-�.A�8�L�#�	%�����-�-�.A�7�K��	��"�"�3�#4�#4�U�#;�<������.�.�/F�	�R��	rc��yr/r�r�s r�testGetAttributeNodez MinidomTest.testGetAttributeNode�s��Drc�d�d}t|�}|jdd�}|jt|�dk(xrb|djdk(xrN|dj
dk(xr:|djdk(xr&|djdk(xr|djdk(�|j�y)NzZ<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
        <minidom:myelem/>
        </foo>zhttp://pyxml.sf.net/minidom�myelemrdrrzminidom:myelem)
r�getElementsByTagNameNSr4rkrOrPrQ�tagNamer�rE)r1�dr�elemss    r�testGetElementsByTagNameNSz&MinidomTest.testGetElementsByTagNameNS�s������!�n���*�*�+H�+3�5�����S��Z�1�_�:��!�H�)�)�-J�J�:��!�H�&�&�(�2�:��!�H�O�O�y�0�:��!�H�$�$�(8�8�	:�
�!�H�%�%�)9�9�	;�	�
�
�rc�b�|j||�}|jt|�dk(�yr()r�r4rk)r1r�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��td�}|j|dd�|j|dd�|j|dd�td�}|j|dd�|j|dd�|j|d	d
�y)Nrxz"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)rrr>s  r�+testGetEmptyNodeListFromElementsByTagNameNSz7MinidomTest.testGetEmptyNodeListFromElementsByTagNameNS�s����(�#���B�B��5�{�	D��B�B���g�	��B�B��5�s�	<��O�P���B�B��.��	=��B�B���k�	#��B�B��6��	=rc���t�}|j|jd��}t|�}t	|�}|j||k(�|j
�yr��rr}ri�repr�strr4rE�r1rr��string1�string2s     r�testElementReprAndStrz!MinidomTest.testElementReprAndStr��N���j��
�_�_�S�.�.�u�5�
6���r�(���b�'�����W��'�(��
�
�rc���t�}|j|jd��}t|�}t	|�}|j||k(�|j
�yr�rrs     r�testElementReprAndStrUnicodez(MinidomTest.testElementReprAndStrUnicode�rrc���t�}|j|jdd��}t|�}t	|�}|j||k(�|jd|v�|j
�y)Nzhttp://www.slashdot.orgz	slash:abc)rr}r�rrr4rErs     r�testElementReprAndStrUnicodeNSz*MinidomTest.testElementReprAndStrUnicodeNS�sf���j��
�_�_���� 9�;�G�I���r�(���b�'�����W��'�(����[�G�+�,��
�
�rc���t�}|j|jd��}|jdd�}|j	t|�t
|�k(�|j�y)Nr�r�)rr}rir�r4rrrE)r1rr�r7s    r�testAttributeReprzMinidomTest.testAttributeRepr�sT���j��
�_�_�S�.�.�u�5�
6�����u�e�,�����S��Y�$�t�*�,�-��
�
�rc��yr/r�r�s r�testTextNodeReprzMinidomTest.testTextNodeRepr����rc��d}t|�}|j�}|j�|j||k(�y)Nz <?xml version="1.0" ?><a b="c"/>)rrorEr4�r1rr�domstrs    r�testWriteXMLzMinidomTest.testWriteXML�s5��0���#���������
�
�����S�F�]�#rc��d}t|�}|jd��}|j�|j||j	dd�k(�y)Nz"<?xml version="1.0" ?>
<a b="c"/>
z
)�newl�
)r�toprettyxmlrEr4�replacer!s    r�testAltNewlinezMinidomTest.testAltNewline�sF��4���#������f��-���
�
�����V�s�{�{�4��8�8�9rc��d}|jtd�j�|dz�|jtd�j�|dz�|jtd�j�|dz�|jtd�j�|d	z�|jtd
�j�|dz�y)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>
)rSrr')r1�decls  r� test_toprettyxml_with_text_nodesz,MinidomTest.test_toprettyxml_with_text_nodess���)������Z�0�<�<�>���,�	.�����%7�8�D�D�F�� >�>�	@�����%7�8�D�D�F�� >�>�	@�����%>�?�K�K�M�� E�E�	G�����%?�@�L�L�N�� J�J�	Lrc�&�t�}|jd�}|j|jd��|j|jd��|j|�d}|j	|j�|dz�y)Nrs�TEXTr+z<elem>
	TEXT
	TEXT
</elem>
)rrir}r|rSr')r1rrsr-s    r�)test_toprettyxml_with_adjacent_text_nodesz5MinidomTest.test_toprettyxml_with_adjacent_text_nodess}���j��� � ��(������+�+�F�3�4�����+�+�F�3�4������)��������*�� C�C�	Erc�2�dD]�}t|�}t|j��}|j|jd�djdj�|jd�djdj����y)N)r,z<A><B>C</B></A>�Br)rr'rSr\rhro)r1rrr�s    r�/test_toprettyxml_preserves_content_of_text_nodez;MinidomTest.test_toprettyxml_preserves_content_of_text_nodes���2�C��c�"�C��s���0�1�D�����(�(��-�a�0�;�;�A�>�D�D�F��)�)�#�.�q�1�<�<�Q�?�E�E�G�
I�3rc�0�td�}|jj}|j|jdk(xr�|j
dk(xr�|jdk(xr�|jtjk(xr�|jduxr�|j�xrqt|j�dk(xrW|jduxrG|jduxr7|jduxr'|j t"j$j&k(�y)Nz<e><?mypi 	
 data 	
 ?></e>�mypizdata 	
 r)rr]rmr4�targetr�r��nodeTyper�PROCESSING_INSTRUCTION_NODEr��
hasChildNodesrkrhrnrPrOrr�EMPTY_NAMESPACE)r1r�pis   r�testProcessingInstructionz%MinidomTest.testProcessingInstruction%s���;�<��
�
 �
 �
+�
+�����R�Y�Y�&�(�
?��G�G�|�+�
?��K�K�6�)�
?��K�K�4�#C�#C�C�
?��M�M�T�)�	
?�
�(�(�*�*�
?���
�
�&�!�+�
?��M�M�T�)�
?��L�L�D�(�
?��L�L�D�(�
?��O�O�s�w�w�'>�'>�>�
	@rc��yr/r�r�s r�testProcessingInstructionReprz)MinidomTest.testProcessingInstructionRepr4s��Trc��yr/r�r�s r�testTextReprzMinidomTest.testTextRepr6s��Drc��yr/r�r�s r�
testWriteTextzMinidomTest.testWriteText8s��Trc��yr/r�r�s r�testDocumentElementzMinidomTest.testDocumentElement:���4rc���td�}|jd�}|jtjj
|j|�|j�|j�y)Nrx�extra)rrir�rrr�r}rE�r1rrss   r�testTooManyDocumentElementsz'MinidomTest.testTooManyDocumentElements<sN���(�#��� � ��)�����#�'�'�5�5�s����M����
��
�
�rc��yr/r�r�s r�testCreateElementNSzMinidomTest.testCreateElementNSDrFrc��yr/r�r�s r�testCreateAttributeNSz!MinidomTest.testCreateAttributeNSFs��Trc��yr/r�r�s r�	testParsezMinidomTest.testParseHs��rc��yr/r�r�s r�testParseStringzMinidomTest.testParseStringJs��trc��yr/r�r�s r�testCommentzMinidomTest.testCommentLs��4rc��yr/r�r�s r�testAttrListItemzMinidomTest.testAttrListItemNrrc��yr/r�r�s r�testAttrListItemszMinidomTest.testAttrListItemsPs��rc��yr/r�r�s r�testAttrListItemNSzMinidomTest.testAttrListItemNSR���$rc��yr/r�r�s r�testAttrListKeyszMinidomTest.testAttrListKeysTrrc��yr/r�r�s r�testAttrListKeysNSzMinidomTest.testAttrListKeysNSVr[rc�8�td�}|j}|j}|jd�}|j	d�}|j|j
|��|jtjj|jd�y)Nz<doc a=''/>r�)rr]r�r��removeNamedItemr4�
isSameNoder�rrr��r1rrr��a1�a2s      r�testRemoveNamedItemzMinidomTest.testRemoveNamedItemXsw���-�(����������
�
�
��
$��
�
"�
"�3�
'�����R�]�]�2�&�'����#�'�'�-�-�u�/D�/D�c�Jrc�>�td�}|j}|j}|jdd�}|j	dd�}|j|j
|��|jtjj|jdd�y)Nz.<doc xmlns:a='http://xml.python.org/' a:b=''/>zhttp://xml.python.org/�b)rr]r��getAttributeNodeNS�removeNamedItemNSr4rbr�rrr�rcs      r�testRemoveNamedItemNSz!MinidomTest.testRemoveNamedItemNSas����J�K����������
�
!�
!�":�C�
@��
�
$�
$�%=�s�
C�����R�]�]�2�&�'����#�'�'�-�-�u�/F�/F�2�C�	9rc��yr/r�r�s r�testAttrListValueszMinidomTest.testAttrListValueskr[rc��yr/r�r�s r�testAttrListLengthzMinidomTest.testAttrListLengthmr[rc��yr/r�r�s r�testAttrList__getitem__z#MinidomTest.testAttrList__getitem__o���trc��yr/r�r�s r�testAttrList__setitem__z#MinidomTest.testAttrList__setitem__qrrrc��yr/r�r�s r�testSetAttrValueandNodeValuez(MinidomTest.testSetAttrValueandNodeValues���Drc��yr/r�r�s r�testParseElementzMinidomTest.testParseElementurrc��yr/r�r�s r�testParseAttributeszMinidomTest.testParseAttributeswrFrc��yr/r�r�s r�testParseElementNamespacesz&MinidomTest.testParseElementNamespacesys��$rc��yr/r�r�s r�testParseAttributeNamespacesz(MinidomTest.testParseAttributeNamespaces{rwrc��yr/r�r�s r�testParseProcessingInstructionsz+MinidomTest.testParseProcessingInstructions}s��trc��yr/r�r�s r�testChildNodeszMinidomTest.testChildNodes���drc��yr/r�r�s r�testFirstChildzMinidomTest.testFirstChild�r�rc���td�}|j}|j|j��td�}|j}|j	|j��y)Nrarx)rr]r0r:r<)r1rrr��doc2s     r�testHasChildNodeszMinidomTest.testHasChildNodes�sY���-�.���!�!������)�)�+�,��8�$���#�#������+�+�-�.rc��|j}|j}t|j��}t|j��}|j�|j�|j	||k(d�tt
|��D]�}|j|�}	|j|�}
|j	|	|
uxrj|	j|
jk(xrO|	j|
jk(xr4|	j|
jk(xr|	j|
jk(d�|j	|
j|ud���y)Nz(clone of element has same attribute keysz3clone of attribute node has proper attribute valuesz'clone of attribute node correctly owned)
r��list�keys�sortr4�rangerkr)r�r�rOrPr�)r1�e1�e2r2�attrs1�attrs2�keys1�keys2�irdres           r�!_testCloneElementCopiesAttributesz-MinidomTest._testCloneElementCopiesAttributes�s�����������V�[�[�]�#���V�[�[�]�#��
�
�
��
�
�
�����U�e�^�%O�P��s�5�z�"�A����Q��B����Q��B��L�L��2��5����B�H�H�,�5�������4�5����2�?�?�:�5�������4�K�
M�
�L�L����B�.�=�
?�#rc��td�}|j}|j|�}|j||d|xrdxsdz�dx|_|_|j
dd�|j
dd	�||fS)
Nz<doc attr='value'><foo/></doc>�testCloneElement�Deep�Shallow�MODIFIEDrVz	NEW VALUE�added�VALUE)rr]�	cloneNoder�r�r�r�)r1�deeprrr�clones     r�_setupCloneElementzMinidomTest._setupCloneElement�s����:�;���"�"�����t�$���.�.��%�+�t���/K�)�L�	N�(2�1���t�}����&�+�.����'�7�+��E�z�rc��|jd�\}}|jt|j�dk(xr>|jjdk(xr#|j
duxr|j
�dk(d�|j�y)Nrz<doc attr="value"/>�testCloneElementShallow�r�r4rkrhrl�
parentNoderorE�r1rr�s   rr�z#MinidomTest.testCloneElementShallow�s����,�,�Q�/�
��U����S��)�)�*�a�/�;��$�$�+�+�q�0�;��$�$��,�;��K�K�M�%:�:�+�		-�
	�
�
�rc��|jd�\}}|jt|j�dk(xr>|jjdk(xr#|j
duxr|j
�dk(d�|j�y)Nrdz<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�%E�E�(�		*�
	�
�
�rc�d�td�}|jd�}|j|dud�y)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!)rr�r4�r1rr�s   r�testCloneDocumentShallowz$MinidomTest.testCloneDocumentShallow�s:���*�+���}�}�Q������T�T�\�@�	Arc��td�}|jd�}|j|j|�xs|j|�d�|jt	|j
�t	|j
�k(d�|j|jjtjk(d�|j|jjj|�d�|j|jj|j�d�|j��|j|jjtjk(d�|j|jjj|��|j|jj|j��yy)	Nr�rdz4testCloneDocumentDeep: 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�r4rbrkrhr]r8r�ELEMENT_NODEr*r�DOCUMENT_TYPE_NODEr�s   r�testCloneDocumentDeepz!MinidomTest.testCloneDocumentDeep�sm���*�+���}�}�Q������#�.�.��.�F�$�/�/�#�2F�G�F�	H����S����(�C����,@�@�J�	L����T�)�)�2�2�d�6G�6G�G�L�	N����T�)�)�7�7�B�B�4�H�N�	P�����,�,�7�7��8L�8L�M�M�M�	O��;�;�"��L�L����.�.�$�2I�2I�I�M�
O��L�L����3�3�>�>�t�D�E��L�L�S�[�[�3�3�D�L�L�A�A�B�#rc�F�t�}|jd�}|j|dux�rD|j|jk(x�r(|j|jk(x�r|j
|j
k(xr�|j|jk(xr�t|j�t|j�k(xr�|jjt|j��duxrwt|j�t|j�k(xrJ|jjt|j��duxrt|j�dk(�tt|j��D�]+}|jj|�}|jj|�}|j|j|�xr�|j|�xr�|j|jk(xr�|j|jk(xr�|j
|j
k(xrj|j|jk(xrO|j|jk(xr4|j |j k(xr|j"|j"k(���.tt|j��D]�}|jj|�}|jj|�}|j|j|�xrc|j|�xrO|j|jk(xr4|j
|j
k(xr|j|jk(���y)Nrdr)r&r�r4r�rT�publicId�systemIdrkrr)rrhr�rb�notationNamer"r#r!)r1rr�r��se�ce�sn�cns        r�testCloneDocumentTypeDeepOkz'MinidomTest.testCloneDocumentTypeDeepOk�s��)�+���!�!�!�$�����U�$�&�	/��N�N�g�&6�&6�6�	/��J�J�'�,�,�.�	/��N�N�g�&6�&6�6�	/��N�N�g�&6�&6�6�		/�
����'�3�w�/?�/?�+@�@�	/��N�N�'�'��E�N�N�(;�<��D�
	/�����(�C��0A�0A�,B�B�	/��O�O�(�(��U�_�_�)=�>�$�F�	/���(�(�)�Q�.�		0��s�7�+�+�,�-�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�j�0�
2�.��s�7�,�,�-�.�A��"�"�'�'��*�B����%�%�a�(�B��L�L�b�m�m�B�/�/�3��]�]�2�.�.�3����r�{�{�2�3����r�{�{�2�3����r�{�{�2�	
4�/rc�v�t�}|jjd�}|j|dud�y)Nrd�testCloneDocumentTypeDeepNotOk�r+rr�r4�r1rr�s   rr�z*MinidomTest.testCloneDocumentTypeDeepNotOks1��%�'�����%�%�a�(�����U�d�]�$D�Erc�P�t�}|jd�}|j|duxr�|j|jk(xr�|j|jk(xr�|j
|j
k(xr�|j|jk(xr�t|j�dk(xrp|jjd�duxrQt|j�dk(xr7|jjd�duxrt|j�dk(�yr()r&r�r4r�rTr�r�rkrr)rrh)r1rr�s   r�testCloneDocumentTypeShallowOkz*MinidomTest.testCloneDocumentTypeShallowOk	s��)�+���!�!�!�$�����U�$�&�	/��N�N�g�&6�&6�6�	/��J�J�'�,�,�.�	/��N�N�g�&6�&6�6�	/��N�N�g�&6�&6�6�		/�
����'�1�,�	/��N�N�'�'��*�d�2�
	/�����(�A�-�	/��O�O�(�(��+�t�3�	/���(�(�)�Q�.�		0rc�v�t�}|jjd�}|j|dud�y)Nr�!testCloneDocumentTypeShallowNotOkr�r�s   rr�z-MinidomTest.testCloneDocumentTypeShallowNotOks1��%�'�����%�%�a�(�����U�d�]�$G�Hrc��td�}td�}|jtjj|j
||�y)Nrx)rr�rr�NotSupportedErr�
importNode)r1r��testName�doc1r�s     r�check_import_documentz!MinidomTest.check_import_documents8���8�$���8�$�����#�'�'�1�1�4�?�?�D�$�Orc�(�|jdd�y)Nr�testImportDocumentShallow�r�r�s rr�z%MinidomTest.testImportDocumentShallow!����"�"�1�&A�Brc�(�|jdd�y)Nrd�testImportDocumentDeepr�r�s rr�z"MinidomTest.testImportDocumentDeep$����"�"�1�&>�?rc��t�}t�}|jtjj
|j|jd�yr(�r+rr�rrr�r�r�r1�srcr7s   r�testImportDocumentTypeShallowz)MinidomTest.testImportDocumentTypeShallow'�=��%�'��+�-�����#�'�'�1�1�6�3D�3D��+�+�q�	*rc��t�}t�}|jtjj
|j|jd�y�Nrdr�r�s   r�testImportDocumentTypeDeepz&MinidomTest.testImportDocumentTypeDeep-r�rc�
�td�}|jjd�}|j|d�|j	|�}|j|j
|��|j|j
|��|j|jdu|dz�|j|jj
|j�|dz�|j|j|dz�y)Nz<doc attr='value'/>rVz: ownerElement should be Nonez: ownerDocument does not matchz.: cloned attribute must have specified == True)
rr]r��assertNotEqualr�r4rbr�r*�	specified)r1r�r�rrVr�s      r�check_clone_attributez!MinidomTest.check_clone_attribute5s����/�0���"�"�3�3�F�;�����D�$�'����t�$������)�)�$�/�/�0��������/�/�0����U�'�'�4�/��:�:�	<����U�(�(�3�3�D�4F�4F�G��;�;�	=����U�_�_��K�K�	Mrc�(�|jdd�y)Nr�testCloneAttributeShallow�r�r�s rr�z%MinidomTest.testCloneAttributeShallowCr�rc�(�|jdd�y)Nrd�testCloneAttributeDeepr�r�s rr�z"MinidomTest.testCloneAttributeDeepFr�rc�.�td�}|j}|j|jtj
�|j
|�}|j|j|jk(xr|j|jk(�y)Nz<?target data?><doc/>)
rrmrSr8rr9r�r4r7r�)r1r�r�rr<r�s      r�check_clone_pizMinidomTest.check_clone_piIsn���1�2��
�^�^��������d�&F�&F�G����T�"�����U�\�\�R�Y�Y�.�*��J�J�"�'�'�)�	+rc�(�|jdd�y)Nr�testClonePIShallow�r�r�s rr�zMinidomTest.testClonePIShallowQs�����A�3�4rc�(�|jdd�y)Nrd�testClonePIDeepr�r�s rr�zMinidomTest.testClonePIDeepTs�����A�0�1rc���tjjjdj	��}Gd�d�}|�}|j
}|jd}|jdd|�|r�|jd��}|j|jjjd	�tjjj}|j
jd}	netj |d
d�5|jd��}ddd�tjjj"}jd}	|j|j$|�|j|j&d�|j|j(d�|j+|j,|�|j+|j.|	�y#1swY��xYw)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�Zy)�4MinidomTest.check_clone_node_entity.<locals>.Handlerc�J�||_||_||_||_||_yr/)�	operation�keyr�r��dst�r1r�r�r�r�r�s      r�handlez;MinidomTest.check_clone_node_entity.<locals>.Handler.handleds%��!*������ ��	������rN)�__name__�
__module__�__qualname__r�r�rr�Handlerr�cs��
rr��smiler�r�T)r�u%Don't let entities make you frown ☺r*)rrrr�striprr�setUserDatar�rSr]rmr6�UserDataHandler�
NODE_IMPORTEDr�	swap_attr�NODE_CLONEDr�r�r�r�r�r�)
r1�clone_document�documentr��handlerrr%r�r�r�s
          r�check_clone_node_entityz#MinidomTest.check_clone_node_entityWs����7�7�?�?�.�.�0�
�E�G���	�	��)���"�"���!�!�'�*�����5�&�'�2���&�&�D�&�1�E����U�2�2�=�=�G�G�D�
F����/�/�=�=�I��-�-�(�(��1�C��"�"�7�O�T�B��)�)�t�)�4��C����/�/�;�;�I��.�.��)�C�����*�*�I�6�������e�,�������v�.��
�
�g�k�k�6�*��
�
�g�k�k�3�'�C�B�s�G+�+G4c�H�|jd�|jd�y)NFT)r�r�s r�testCloneNodeEntityzMinidomTest.testCloneNodeEntity�s���$�$�U�+��$�$�T�*rc��td�}|j}|j|jd��|j|jd��|j	t|j�dk(xr|jjdk(d�|j�|j	t|j�dk(xrN|jjdk(xr3|j|juxr|jjdk(d�|j�td�}|j}|j|jd	��|j�|j	t|j�d
k(xr|jjd
k(d�|j�y)Nrx�first�secondrcztestNormalize -- preparationrd�firstsecondztestNormalize -- resultr�rz*testNormalize -- single empty node removed)
rr]r}r|r4rkrhrl�	normalizermrnr�rE�r1rrrs   r�
testNormalizezMinidomTest.testNormalize�sq���(�#���"�"������+�+�G�4�5�����+�+�H�5�6����S����)�Q�.�0��O�O�*�*�a�/�.�	0�	�
�
�����S����)�Q�.�:��O�O�*�*�a�/�:��O�O�t�~�~�5�:��O�O�(�(�M�9�+�		-�
	�
�
���(�#���"�"������+�+�B�/�0��
�
�����S����)�Q�.�0��O�O�*�*�a�/�<�	>�	�
�
�rc��td�}|j}|j|jd��|j|jd��|j|j	d��|jt
|j�dk(xr|jjdk(d�|j�|jt
|j�dk(xr�|jjdk(xr�|jjdk(xr�|j|juxrz|jj|juxrV|jjduxr<|jj|juxr|jjdud	�|j�y)
Nrxrrr�rez1testNormalizeCombineAndNextSibling -- preparationrcrz-testNormalizeCombinedAndNextSibling -- result)rr]r}r|rir4rkrhrlrrmr�rnrqrprErs   r�"testNormalizeCombineAndNextSiblingz.MinidomTest.testNormalizeCombineAndNextSibling�s����(�#���"�"������+�+�G�4�5�����+�+�H�5�6�����*�*�3�/�0����S����)�Q�.�0��O�O�*�*�a�/�C�	E�	�
�
�����S����)�Q�.�7��O�O�*�*�a�/�7��O�O�(�(�M�9�7��O�O�4�>�>�9�7��O�O�/�/�4�>�>�A�	7�
�O�O�3�3�t�;�7��N�N�2�2�d�o�o�E�
7��N�N�.�.�$�6�A�	C�	�
�
�rc���td�}|j}|j|jd��|j|jd��|j	t|j�dk(xr|jjdk(d�|j�|j	t|j�dk(xr�|jjdk(xrg|jjdk(xrL|j|juxr2|jjduxr|jjdud�|j�y)Nrxrr�rcz1testNormalizeDeleteWithPrevSibling -- preparationrdz,testNormalizeDeleteWithPrevSibling -- result�rr]r}r|r4rkrhrlrrmr�rnrqrprErs   r�"testNormalizeDeleteWithPrevSiblingz.MinidomTest.testNormalizeDeleteWithPrevSibling�s-���(�#���"�"������+�+�G�4�5�����+�+�B�/�0����S����)�Q�.�0��O�O�*�*�a�/�C�	E�	�
�
�����S����)�Q�.�<��O�O�*�*�a�/�<��O�O�(�(�G�3�<��O�O�t�~�~�5�<��O�O�/�/�4�7�	<�
�O�O�3�3�t�;�@�
	B�	�
�
�rc���td�}|j}|j|jd��|j|jd��|j	t|j�dk(xr|jjdk(d�|j�|j	t|j�dk(xr�|jjdk(xrg|jjdk(xrL|j|juxr2|jjduxr|jjdud�|j�y)Nrxr�rrcz1testNormalizeDeleteWithNextSibling -- preparationrdz,testNormalizeDeleteWithNextSibling -- resultrrs   r�"testNormalizeDeleteWithNextSiblingz.MinidomTest.testNormalizeDeleteWithNextSibling�s-���(�#���"�"������+�+�B�/�0�����+�+�H�5�6����S����)�Q�.�0��O�O�*�*�a�/�C�	E�	�
�
�����S����)�Q�.�<��O�O�*�*�a�/�<��O�O�(�(�H�4�<��O�O�t�~�~�5�<��O�O�/�/�4�7�	<�
�O�O�3�3�t�;�@�
	B�	�
�
�rc�j�td�}|j}|j|jd��|j|j	d��|j|jd��|jt
|j�dk(xr|jjdk(d�|j�|jt
|j�dk(xr�|jjdk(xr�|j|juxrz|jj|juxrV|jjduxr<|jj|juxr|jjdud�|j�y)Nrxr�r�rez1testNormalizeDeleteWithTwoSiblings -- preparationrcz,testNormalizeDeleteWithTwoSiblings -- result)rr]r}rir|r4rkrhrlrrmrnrqrprErs   r�)testNormalizeDeleteWithTwoNonTextSiblingsz5MinidomTest.testNormalizeDeleteWithTwoNonTextSiblings�sg���(�#���"�"������*�*�3�/�0�����+�+�B�/�0�����*�*�3�/�0����S����)�Q�.�0��O�O�*�*�a�/�C�	E�	�
�
�����S����)�Q�.�7��O�O�*�*�a�/�7��O�O�4�>�>�9�7��O�O�/�/�4�>�>�A�7��O�O�3�3�t�;�	7�
�N�N�2�2�d�o�o�E�7��N�N�.�.�$�6�@�	B�	�
�
�rc��td�}|j}|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j	t|j�dk(xr|jjdk(d�|j�|j	t|j�dk(xr�|jjdk(xrg|j|juxrM|jjdk(xr2|jjduxr|jjdud	�|j�y)
Nrxr�r�fourth�z,testNormalizeDeleteAndCombine -- preparationrd�secondfourthz'testNormalizeDeleteAndCombine -- result)rr]r}r|r4rkrhrlrrmrnr�rprqrErs   r�testNormalizeDeleteAndCombinez)MinidomTest.testNormalizeDeleteAndCombine�sw���(�#���"�"������+�+�B�/�0�����+�+�H�5�6�����+�+�B�/�0�����+�+�H�5�6�����+�+�B�/�0����S����)�Q�.�0��O�O�*�*�a�/�>�	@�	�
�
�����S����)�Q�.�8��O�O�*�*�a�/�8��O�O�t�~�~�5�8��O�O�(�(�N�:�8��O�O�3�3�t�;�	8�
�O�O�/�/�4�7�;�
	=�	�
�
�rc�.�td�}|j}|jdj|j	d��|jdj|j	d��|jdjdj|j	d��|jdj|j	d��|j|j	d��|jt
|j�dk(x�r!|jjdk(x�rt
|jdj�d	k(xr�|jdjjd	k(xr�t
|jdj�dk(xr�|jdjjdk(xrgt
|jdjdj�d
k(xr3|jdjdjjd
k(d�|j�|jt
|j�d
k(x�r!|jjd
k(x�rt
|jdj�d
k(xr�|jdjjd
k(xr�t
|jdj�d
k(xr�|jdjjd
k(xrgt
|jdjdj�dk(xr3|jdjdjjdk(d�|j|jdjdjd
k(xra|jdjdjdjdk(xr)|jdjdjdk(d�|j|jdjdjdux�r�|jdjdj|jdjdux�rI|jdjdjdux�r|jdjdj|jdjduxr�|jdjdjduxr�|jdjdj|jdjduxrl|jdjdjduxrB|jdjdj|jdjdud�|j�y)Nz)<doc><o><i/>t</o><o><o>t2</o>t3</o></doc>rr��xrd�x2�x3rergrcztestNormalize2 -- preparationz$testNormalize2 -- childNodes lengths�tx�t2x2�t3x3z$testNormalize2 -- joined text fieldsz"testNormalize2 -- sibling pointers)
rr]rhr}r|r4rkrlrr�rqrprErs   r�testNormalizeRecursionz"MinidomTest.testNormalizeRecursionsd���#�$��"�"�"�������&�&�s�'9�'9�"�'=�>������&�&�s�'9�'9�#�'>�?������%�%�a�(�4�4�S�5G�5G��5M�N������&�&�s�'9�'9�$�'?�@�����+�+�B�/�0����S����)�Q�.�L��O�O�*�*�a�/�L������*�5�5�6�!�;�L��O�O�A�&�1�1�8�8�A�=�L������*�5�5�6�!�;�	L�
�O�O�A�&�1�1�8�8�A�=�L������*�5�5�a�8�C�C�D��I�
L��O�O�A�&�1�1�!�4�?�?�F�F�!�K�1�	3�	�
�
�����S����)�Q�.�L��O�O�*�*�a�/�L������*�5�5�6�!�;�L��O�O�A�&�1�1�8�8�A�=�L������*�5�5�6�!�;�	L�
�O�O�A�&�1�1�8�8�A�=�L������*�5�5�a�8�C�C�D��I�
L��O�O�A�&�1�1�!�4�?�?�F�F�!�K�8�	:�	
���T�_�_�Q�'�2�2�1�5�:�:�d�B�D��O�O�A�&�1�1�!�4�?�?��B�G�G�6�Q�D��O�O�A�&�1�1�!�4�9�9�V�C�8�	:�	
���T�_�_�Q�'�2�2�1�5�A�A�T�I�<��O�O�A�&�1�1�!�4�D�D��?�?�1�-�8�8��;�<�<��O�O�A�&�1�1�!�4�D�D��L�<��O�O�A�&�1�1�!�4�@�@��?�?�1�-�8�8��;�<�	<��O�O�A�&�1�1�!�4�@�@�D�H�
<��O�O�A�&�1�1�!�4�D�D��?�?�1�-�8�8��;�<�<��O�O�A�&�1�1�!�4�D�D��L�<��O�O�A�&�1�1�!�4�@�@��?�?�1�-�8�8��;�<�6�	8�	�
�
�rc���td�}|jjd}|j|jt
j�|j�|j�y)Nz<o>text</o>r)	rr]rhrSr8r�	TEXT_NODErrE)r1rr�s   r�testBug0777884zMinidomTest.testBug0777884DsM���-�(���"�"�-�-�a�0�����������7������
�
�rc���td�}|j}d|jd_|j	�|j|jdjdud�y)Nz<o><i/>t</o>r�rdr�z)Final child's .nextSibling should be None)rr]rhr�rr4rq�r1rr7s   r�testBug1433694zMinidomTest.testBug1433694LsX���.�)���"�"��')������$��������T�_�_�R�(�4�4��<�@�	Brc�N�td�}|j}|j\}}}|j|j|uxrN|j
duxr>|j|uxr.|j
|uxr|jduxr|j
|ud�|j
�y)Nz<doc><?pi?>text?<elm/></doc>�testSiblings)rr]rhr4rqrprE)r1rrrr<r��elms      rr&zMinidomTest.testSiblingsTs����8�9���"�"���/�/���T�3����R�^�^�t�+�,��"�"�d�*�,�� � �C�'�,��$�$��*�,����4�'�	,�
�#�#�t�+�^�	=�	�
�
�rc�h�td�}|j}|jd}|j\}}|jd}|j|j|uxr>|j|uxr.|j|uxr|j|uxr|j|ud�|j�y)Nz3<doc><elm1><elm2/><elm2><elm3/></elm2></elm1></doc>r�testParents)rr]rhr4r�rE)r1rrr�elm1�elm2a�elm2b�elm3s       rr)zMinidomTest.testParentsbs����A�C���"�"�����q�!������������"�����T�_�_��+�)����4�'�)�� � �D�(�)�� � �D�(�)����5�(�-�		9�
	�
�
�rc���td�}|j}|d}|j|d|jd�uxr�|jd�duxr�|jjd�|jduxrb|jjd�|jduxr6|jjd�jjd�dud�|j	�y)Nz<doc><e/><e/></doc>rrdztest NodeList.item())rrhr4r)rE)r1r�children�docelems    r�testNodeListItemzMinidomTest.testNodeListItemqs����/�0���>�>���1�+�����X�a�[�H�M�M�!�$4�4�J��M�M�!�$��,�J��&�&�+�+�A�.�'�2D�2D�Q�2G�G�J��&�&�+�+�A�.�'�2D�2D�Q�2G�G�J��&�&�+�+�A�.�9�9�>�>�q�A�T�I�&�	(�	�
�
�rc��td�}|j|j�d�|j|jd�d�|j|jd�d�|j|jd�d�|j|jd	�d
jd	��|j	t
tf�5td�ddd�|j�y#1swY�xYw)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>s0<fran�ais>Comment �a va ? Tr�s bien ?</fran�ais>)rrSro�encoder��UnicodeDecodeErrorr
rEr>s  r�
testEncodingszMinidomTest.testEncodings}s����/�0���������B�	D�������7�+�L�	N�������=�1�J�	L�������:�.�J�	L�������8�,�
 � &��x� 0�	2��
�
� 2�J�?�
@��O�
�A�
	�
�
��A�
@�s�C?�?Dc��td�}|j|j�d�|j|jd��d�|j|jd��d�|j|jd��d�|j|jdd�d	�|j�y)
Nr3r4)�
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>)rrSrorEr>s  r�testStandalonezMinidomTest.testStandalone�s����/�0���������B�	D�������d��3�B�	D�������d��3�E�	G�������e��4�D�	F�������7�D�1�
'�	(�	�
�
�rc��eZdZdZd�Zy)�MinidomTest.UserDataHandlerrc�d�|j||dz|�|j|dd�d|_yr�)r��calledr�s      rr�z"MinidomTest.UserDataHandler.handle�s-���O�O�C����4�0��O�O�C��t�,��D�KrN)r�r�r�r>r�r�rrr�r<�s����	rr�c���t�}|jd�}|j|jd�du�|j	ddd�|j|jd�du�|j	ddd�|j	ddd�|j|jd�dk(�|j|jd�dk(�|j	ddd�|j|jd�du�|j|jd�dk(�|j�}|j	dd|�|j
d�}|j|jxr)|jd�duxr|jd�dk(�|j�|j�|j�y)Nrrz�rf�
rd)	rrir4�getUserDatar�r�r�r>rE)r1r�nr��cs     r�testUserDatazMinidomTest.testUserData�s{���j�����c�"�����Q�]�]�5�)�T�1�2�	�
�
�e�T�4�(����Q�]�]�5�)�T�1�2�	�
�
�e�R��$�	�
�
�e�R��$����Q�]�]�5�)�R�/�0����Q�]�]�5�)�R�/�0�	�
�
�e�T�4�(����Q�]�]�5�)�T�1�2����Q�]�]�5�)�R�/�0��&�&�(��	�
�
�e�R��)�
�K�K��N�����W�^�^�/��M�M�%�(�D�0�/��M�M�%�(�B�.�	0�	
���
�	���
��
�
�rc�&�|jtjj|j|dd�td�}|jtjj|j|tjjd�y)N�http://xml.python.org/nsz	xmlns:foorxrz)r�rr�NamespaceErr�
renameNoder�WrongDocumentErrr;)r1rr7r�s    r� checkRenameNodeSharedConstraintsz,MinidomTest.checkRenameNodeSharedConstraints�se�����#�'�'�.�.�����4�k�	C��8�$�����#�'�'�2�2�D�O�O�T��'�'�1�1�5�	:rc��td�}|j}|j}|jd}|j|tj
jd�}|j|jdk(xr�|jdk(xr�|jduxr�|jtj
jk(xr�|jduxr�|jdk(xr�|jd�duxrp|jd�j|�xrN|dj|�xr8|j j|�xr|j"j|��|j|dd�}|j|jdk(xr�|jdk(xr�|jdk(xr�|jdk(xr�|jduxr�|jdk(xr�|jd�duxr�|jd�duxro|jd�j|�xrM|j%dd�j|�xr*|dj|�xr|dj|��|j|dd	�}|j|jd	k(x�r|jd	k(x�r|jd
k(xr�|jdk(xr�|jdk(xr�|jdk(xr�|jd�duxr�|jd�duxr�|jd�duxr�|j%dd�duxro|jd	�j|�xrM|j%dd
�j|�xr*|d	j|�xr|dj|��|j|tj
jd
�}|j|jd
k(x�r|jd
k(xr�|jduxr�|jtj
jk(xr�|jduxr�|jdk(xr�|jd�duxr�|jd�duxrv|jd�duxra|jd	�duxrL|j%dd�duxr6|jd
�j|�xr|d
j|��|j'tj
j(|j|dd�|j+||�|j-�y)Nz<doc a='v'/>r�rh�vrGrD)rGrD�http://xml.python.org/ns2zp:dr�p)rNrr�xmlns)rr]r�rIrrr;r4rTr�rPrOrQr�r�rbr*r�rir�rHrKrE)r1rrs�attrmaprVs     r�testRenameAttributezMinidomTest.testRenameAttribute�s����.�)���"�"���/�/�����s�#���~�~�d�C�G�G�$;�$;�S�A�����T�Y�Y�#�%�
7��M�M�S�(�
7��N�N�d�*�
7��%�%����)@�)@�@�
7��K�K�4�'�	
7�
�J�J�#�%�
7��)�)�#�.�$�6�
7��)�)�#�.�9�9�$�?�
7��C�L�+�+�D�1�
7��&�&�1�1�#�6�
7��%�%�0�0��6�
	8��~�~�d�$>��D�����T�Y�Y�#�%�P��M�M�S�(�P��N�N�c�)�P��%�%�)C�C�P��K�K�4�'�	P�
�J�J�#�%�P��)�)�#�.�$�6�
P��)�)�#�.�$�6�P��)�)�#�.�9�9�$�?�P��+�+�.��5�5?�Z��5E�P��C�L�+�+�D�1�P��=�>�I�I�$�O�	Q��~�~�d�$?��G�����T�Y�Y�%�'�Q��M�M�U�*�Q��N�N�c�)�Q��%�%�)D�D�Q��K�K�3�&�	Q�
�J�J�#�%�Q��)�)�#�.�$�6�
Q��)�)�#�.�$�6�Q��)�)�#�.�$�6�Q��+�+�.��5�8<�=�Q��)�)�%�0�;�;�D�A�Q��+�+�/��6�6@�j��6F�Q��E�N�-�-�d�3�Q��>�?�J�J�4�P�	R�$�~�~�d�C�G�G�$;�$;�S�A�����T�Y�Y�#�%�
2��M�M�S�(�
2��N�N�d�*�
2��%�%����)@�)@�@�
2��K�K�4�'�	
2�
�J�J�#�%�
2��)�)�#�.�$�6�

2��)�)�#�.�$�6�
2��)�)�#�.�$�6�
2��)�)�%�0�D�8�
2��+�+�.��5�8<�=�
2��)�)�#�.�9�9�$�?�
2��C�L�+�+�D�1�
	3�	
���#�'�'�.�.�����4�g�	?��-�-�c�4�8��
�
�rc��td�}|j}|j|tjj
d�}|j
|jdk(xru|jdk(xrd|jduxrT|jtjj
k(xr+|jduxr|jj|��|j|dd�}|j
|jdk(xr^|jdk(xrM|jdk(xr<|jdk(xr+|jduxr|jj|��|j|dd�}|j
|jdk(xr_|jdk(xrN|jdk(xr=|jdk(xr,|jdk(xr|jj|��|j|tjj
d	�}|j
|jd	k(xru|jd	k(xrd|jduxrT|jtjj
k(xr+|jduxr|jj|��|j||�|j�y)
Nrxr�rGrhrNzp:crDrOr)rr]rIrrr;r4r�r�rPrOrQr*rbrKrErIs   r�testRenameElementzMinidomTest.testRenameElements����(�#���"�"���~�~�d�C�G�G�$;�$;�S�A�����T�\�\�S�(�7��M�M�S�(�7��N�N�d�*�7��%�%����)@�)@�@�7��K�K�4�'�	7�
�&�&�1�1�#�6�	8��~�~�d�$>��D�����T�\�\�S�(�7��M�M�S�(�7��N�N�c�)�7��%�%�)C�C�7��K�K�4�'�	7�
�&�&�1�1�#�6�	8��~�~�d�$?��G�����T�\�\�U�*�7��M�M�U�*�7��N�N�c�)�7��%�%�)D�D�7��K�K�3�&�	7�
�&�&�1�1�#�6�	8��~�~�d�C�G�G�$;�$;�S�A�����T�\�\�S�(�7��M�M�S�(�7��N�N�d�*�7��%�%����)@�)@�@�7��K�K�4�'�	7�
�&�&�1�1�#�6�	8�	
�-�-�c�4�8��
�
�rc��tjjj�j	tjj
dd�}|j
d�}|jtjj|j|tjj
d�|j�y)Nr�commentrz)rrrr	rr;r�r�r�rIrEr#s   r�testRenameOtherzMinidomTest.testRenameOtherCs����g�g�o�o�2�2�4�C�C��G�G�#�#�S�$�0��� � ��+�����#�'�'�1�1�3�>�>�4��'�'�1�1�5�	:��
�
�rc���td�}|j}|jd}|j|jt
j�|j|d�|j|jd��|j|d�|j|jd�|�|j|d�|jd�}|j|�|jd	�}|j|�|j|d�|j|d	�|jd
�}|j||�|}|j|d�|j|d	�|jdd�}|j||�|}|j|d�|j|d	�|j!|�|j|d
�|j|d
�y)Nz<doc>a</doc>rr�rh�abrD�cabrVrr�y�z�cabd)rr]rhrSr8rr r:r}r|rj�createCDATASectionr�rir��createProcessingInstruction�removeChild)r1rrsr��splitter�text2rs       r�
testWholeTextzMinidomTest.testWholeTextMs����.�)���"�"�����q�!�����������7����D�#�&�����+�+�C�0�1����D�$�'����#�0�0��5�t�<����D�%�(��$�$�Y�/������"��"�"�3�'����������D�%�(����E�3�'����c�"�����!�X�&������D�%�(����E�3�'��+�+�C��5�����!�X�&������D�%�(����E�3�'�����"����D�&�)����E�6�*rc���td�}|j}|j}|j|j|ud�|j||�|j|j|ud�y)Nz<doc><e/></doc>zBefore replaceChild()zAfter replaceChild())rr]rmr4r�r�)r1rrsrs    r�testPatch1094164zMinidomTest.testPatch1094164qsa���+�,���"�"���O�O�����Q�\�\�T�)�+B�C����!�Q�����Q�\�\�T�)�+A�Brc�h�d�}|�\}}}}}|jd�}|j|d�|j|d�|jt|j�dk(�|�\}}}}}|jd�}|j|d�|j|d�|jt|j�dk(�|�\}}}}}|jd�}|j|d�|j|duxrt|j�dk(�y)	Nc�
�td�}|j}|j}|j}|j}|j|j
d�|�|j|jd�|�|||||fS)Nz<doc>a<e/>d</doc>rhrD)rr]rmrnrqrjr|r^)rrs�text1rbras     r�setupz/MinidomTest.testReplaceWholeText.<locals>.setup{s|���1�2�C��&�&�D��O�O�E��N�N�E��(�(�H����c�0�0��5�x�@����c�4�4�S�9�5�A���e�X�u�4�4rznew contentrrerZrr�rc)�replaceWholeTextr:r4rkrh)r1rirrsrhrarbr�s        r�testReplaceWholeTextz MinidomTest.testReplaceWholeTextzs��	5�-2�G�)��T�5�(�E��%�%�m�4�����D�-�0����E�3�'����S����)�Q�.�/�,1�G�)��T�5�(�E��%�%�m�4�����D�-�0����E�5�)����S����)�Q�.�/�,1�G�)��T�5�(�E��%�%�b�)�����E�3�'����T�T�\�.�����(�A�-�	/rc���td�}|j}|j}|j|jduxr'|j
tjjk(�dj�}|D]c}|j|�}|j}|jt|d�xr'|j
tjjk(��ey)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 nmsrT)rr]�
schemaTyper4rT�	namespacerrr;�splitr��hasattr)r1rrsr9�namesrTr�s       r�testSchemaTypezMinidomTest.testSchemaType�s����
/�0��"�"�"��

�O�O�����Q�V�V�t�^�;��K�K�3�7�7�#:�#:�:�	<�=�C�C�E���D��%�%�d�+�A����A��L�L���F�+�?����s�w�w�'>�'>�>�
@�rc��td�}|j}|jd�}|jd�}|j|j	d�duxr|j
xr
|j
�|j
d�|j|j|j	d��xr|j
xr
|j
�|j
d�|j|j|j	d��xr<|j|j	d��xr|j
xr|j
�|jd�}d|_	|j|�|j|j	d�duxrL|j|j	d��xr*|j
xr|j
xr
|j
�|j|tjjd�|j|j|j	d��xr|j
�y)Nz<doc a1='v' a2='w'/>rdrerM�w�an)rr]r�r4�getElementByIdr�r�rb�createAttributer��setAttributeNoderIrrr;)r1rrrdre�a3s      r�testSetIdAttributezMinidomTest.testSetIdAttribute�s����0�1������
�
�
��
%��
�
�
��
%�����S�'�'��,��4� ����K� ����K�	!�	
��������Q�\�\�#�"4�"4�S�"9�:� ��G�G� ����K�	!�	
��������Q�\�\�#�"4�"4�S�"9�:���L�L��!3�!3�C�!8�9���G�G���G�G�	�
�
 �
 ��
&�����	���2�����S�'�'��,��4� ��L�L��!3�!3�C�!8�9� ����K� ��G�G� ����K�		!�	���r�3�7�7�2�2�D�9����Q�\�\�#�"4�"4�S�"9�:���G�G�	rc�@�d}d}td|zdz|zdz�}|j}|j|d�}|j|d�}|j|j	d�duxr|j
xr
|j
�|j
|d�|j|j|j	d��xr|j
xr
|j
�|j
|d�|j|j|j	d��xr<|j|j	d	��xr|j
xr|j
�|j|d�}d|_	|j|�|j|j|j	d	���|j|j
�|j|j
�|j|j
�|j|j	d�du�|j|tjjd
�|j|j|j	d	��xr|j
�y�Nzhttp://xml.python.org/ns1rNz<doc xmlns:ns1='z
' xmlns:ns2='z' ns1:a1='v' ns2:a2='w'/>rdrerMrtru)rr]rir4rvr��setIdAttributeNSrb�createAttributeNSr�rxrIrrr;�r1�NS1�NS2rrrdrerys        r�testSetIdAttributeNSz MinidomTest.testSetIdAttributeNS�sC��)��)���)�+.�/�2)�)�+.�/�25�5�6��
����
�
!�
!�#�t�
,��
�
!�
!�#�t�
,�����S�'�'��,��4� ����K� ����K�	!�	
���3��%����Q�\�\�#�"4�"4�S�"9�:� ��G�G� ����K�	!�	
���3��%����Q�\�\�#�"4�"4�S�"9�:���L�L��!3�!3�C�!8�9���G�G���G�G�	�
�
"�
"�3��
-�����	���2�����Q�\�\�#�"4�"4�S�"9�:�;�������[�!����R�W�W��������[�!����S�'�'��,��4�5����r�3�7�7�2�2�D�9����Q�\�\�#�"4�"4�S�"9�:���G�G�	rc�<�d}d}td|zdz|zdz�}|j}|j|d�}|j|d�}|j|j	d�duxr|j
xr
|j
�|j
|�|j|j|j	d��xr|j
xr
|j
�|j
|�|j|j|j	d��xr<|j|j	d	��xr|j
xr|j
�|j|d�}d|_	|j|�|j|j|j	d	���|j|j
�|j|j
�|j|j
�|j|j	d�du�|j|tjjd
�|j|j|j	d	��xr|j
�yr|)rr]rir4rvr��setIdAttributeNoderbr~r�rxrIrrr;rs        r�testSetIdAttributeNodez"MinidomTest.testSetIdAttributeNode�s?��)��)���)�+.�/�2)�)�+.�/�25�5�6��
����
�
!�
!�#�t�
,��
�
!�
!�#�t�
,�����S�'�'��,��4� ����K� ����K�	!�	
���R� ����Q�\�\�#�"4�"4�S�"9�:� ��G�G� ����K�	!�	
���R� ����Q�\�\�#�"4�"4�S�"9�:���L�L��!3�!3�C�!8�9���G�G���G�G�	�
�
"�
"�3��
-�����	���2�����Q�\�\�#�"4�"4�S�"9�:�;�������[�!����R�W�W��������[�!����S�'�'��,��4�5����r�3�7�7�2�2�D�9����Q�\�\�#�"4�"4�S�"9�:���G�G�	rc��||fg}|�r;|j�\}}|j|j|j�|jt|j�t|j��|j|j
|j
�|j
|j|��|j
|j|��|jtjk(�r�t|j�t|j�t|j�t|j�|jt|j�t|j��|jt|j�t|j��tt|j��D]�}|jj|�}|jj|�}|j|j|j�|j|j|j�|j|j |j �|j#||f���tt|j��D]�}|jj|�}	|jj|�}
|j|	j$|
j$�|j|	j|
j�|j|	j |
j �|j#|	|
f���|jtj&k7rT|j)|j*j|��|j)|j*j|��tt|j��D]/}|j#|j||j|f��1|r��:yyr/)�poprSr8rkrhr�r<rbrr�rrr�r)rTr�r�rr��
DOCUMENT_NODEr0r*)r1rr��stack�n1�n2r��no1�no2r�r�s           r�assert_recursive_equalz"MinidomTest.assert_recursive_equals����t��
����Y�Y�[�F�B�����R�[�[�"�+�+�6����S����/��R�]�]�1C�D����R�[�[�"�+�+�6����R�]�]�2�.�/����R�]�]�2�.�/��{�{�d�5�5�5��B�K�K� ��B�K�K� ��B�L�L�!��B�L�L�!�� � ��R�[�[�!1�3�r�{�{�3C�D�� � ��R�\�\�!2�C����4E�F��s�2�<�<�0�1�A��,�,�+�+�A�.�C��,�,�+�+�A�.�C��$�$�S�X�X�s�x�x�8��$�$�S�\�\�3�<�<�@��$�$�S�\�\�3�<�<�@��L�L�#�s��,�2��s�2�;�;�/�0�A����)�)�!�,�B����)�)�!�,�B��$�$�R�_�_�b�o�o�F��$�$�R�[�[�"�+�+�>��$�$�R�[�[�"�+�+�>��L�L�"�b��*�
1��{�{�d�0�0�0����� 0� 0� ;� ;�C� @�A����� 0� 0� ;� ;�D� A�B��3�r�}�}�-�.�����b�m�m�A�.��
�
�a�0@�A�B�/�Arc���tt�}tdtjdz�D]?}tj
||�}tj|�}|j||��Ay)Nrcrd)r�sampler��pickle�HIGHEST_PROTOCOL�dumps�loadsr�)r1r�protor8r�s     r�testPickledDocumentzMinidomTest.testPickledDocumentDsU���&�!���1�f�5�5��9�:�E����S�%�(�A��<�<��?�D��'�'��T�2�;rc�p�tt�}tj|�}|j	||�yr/)rr��copy�deepcopyr�r�s   r�testDeepcopiedDocumentz"MinidomTest.testDeepcopiedDocumentKs*���&�!���}�}�S�!���#�#�C��.rc��t�}|j|jd��|jt|j
�y)Nzfoo--bar)rr}r�r��
ValueErrorror>s  r�(testSerializeCommentNodeWithDoubleHyphenz4MinidomTest.testSerializeCommentNodeWithDoubleHyphenPs5��(�*������)�)�*�5�6����*�c�i�i�0rc��td�}t|j��}|j|jtj
jk(�y)Nz$<element xmlns=''>
<foo/>
</element>)rror4rOrrr;r�s   r�testEmptyXMLNSValuezMinidomTest.testEmptyXMLNSValueVsB���/�0���3�9�9�;�'�����T�&�&�#�'�'�*A�*A�A�Brc�z�|jttf�5td�ddd�y#1swYyxYw)NzE<element xmlns:abc="http:abc.com/de f g/hi/j k"><abc:foo /></element>)r�r�r
rr�s r�!testExceptionOnSpacesInXMLNSValuez-MinidomTest.testExceptionOnSpacesInXMLNSValue\s.��
�
�
�
�J�7�
8��(�
�9�
8�
8�s�1�:c��tt�}|jjd�d}|j	t
jj|j|�t|j�}|j|jd�t|j�}|j||dz
k(�y)N�TITLErrd)rrDr]r\r�rrr�r`rkrhr0)r1r�	title_tag�num_children_before�num_children_afters     r�testDocRemoveChildzMinidomTest.testDocRemoveChildcs����G�n���'�'�<�<�W�E�a�H�	����3�7�7�.�.�����K�!�#�.�.�1��������q�)�*� ����0�����*�.A�A�.E�E�Frc�T�tt�}|jdd�}d|_y)Nr[r\�crash)rrDr_r�)r1rr<s   r�"testProcessingInstructionNameErrorz.MinidomTest.testProcessingInstructionNameErrorls&���G�n��
�
,�
,�S�#�
6����rc��d}t|�}tj�}|j|�|j	|j�|�y�N�E<?xml version="1.0" ?><curriculum status="public" company="example"/>)r�io�StringIO�writexmlrS�getvalue)r1�xml_strr�outputs    r�test_minidom_attribute_orderz(MinidomTest.test_minidom_attribute_orderss?��Y���'�"����������V��������*�G�4rc�^�d}t|�}|j|j�|�yr�)rrSro�r1r�rs   r�"test_toxml_with_attributes_orderedz.MinidomTest.test_toxml_with_attributes_orderedzs'��Y���'�"���������g�.rc�^�d}t|�}|j|j�d�y)Nr�zG<?xml version="1.0" ?>
<curriculum status="public" company="example"/>
�rrSr'r�s   r�(test_toprettyxml_with_attributes_orderedz4MinidomTest.test_toprettyxml_with_attributes_ordereds/��Y���'�"��������*�M�	Nrc�^�d}t|�}|j|j�d�y)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�s-��W���'�"��������*�%�	&rc��d}t|�}|j|jd�djd�t|j	��}|j|jd�djd�y)Nr�r7rz</data>)rr:r\rmr')r1r��dom1r�s    r�test_cdata_parsingzMinidomTest.test_cdata_parsing�sp��W���7�#�����D�5�5�f�=�a�@�K�K�Y�W��4�+�+�-�.�����D�5�5�f�=�a�@�K�K�Y�WrN)�Test)�r�r�r�r4r:r?rIrLrWrYr_rvr�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�rrr
rrrrrr#r)r.r1r4r=r?rArCrErJrLrNrPrRrTrVrXrZr]r_rfrkrmrorqrtrvryr{r}rr�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�rrr
r
rrrrr!r$r&r)r1r7r:r�rErKrRrTrWrcrerkrrrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr-r-6s���(�B�*�
4�4�6�4��)�V+��"����*�"�)�)�
�
���*	�	���$1�$�L
�
�
�<��)�
�)�
=�"����%�$�:�L�	E�I�
@�2� �!�'��(�)��#��$�%�&�$�&�K�9�'�&�+�+�0�$�'�.�0�3�"�"�/�?�(
���
A�C�2 4�DF�
0�I�
P�
C�@�*�*�M�C�@�+�5�2�-(�^+��2�*�$�$�(�*<�~�B��
�
��.� ���0:�K�Z)�V�"+�HC�/�:@�B�>"�H"�H#C�J3�/�
1�C��G��5�/�
N�&�Xrr-�__main__r/)r�r�r�r2r�unittest�xml.dom.minidomrrrrrrr	�xml.parsers.expatr
�findfilerDr�rr&r+�TestCaser-r��mainr�rr�<module>r�s����
�	����D�D�0�(��'�
�
�:�m�
<��7��G�� �^X�(�#�#�^X�@3�z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists