
    7bhd                     z    d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 dZ G d dej                        Zy)	    N)client)
FakeSocket)mock)getDOMImplementationminidom
xmlbuilders  <?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xdc="http://www.xml.com/books">
<!-- A comment -->
<title>Introduction to XSL</title>
<hr/>
<p><xdc:author xdc:attrib="prefixed attribute" attrib="other attrib">A. Namespace</xdc:author></p>
</html>c                   $    e Zd Zd Zd Zd Zd Zy)XMLBuilderTestc                    dt         z   }t        |      }t        j                  |      }|j	                          d|i}t        j                  di |}t        j                         }t        j                  d      5 }||_
        |j                  d d      }d d d        | j                  t        j                         | j                  |j                         | j!                  |j"                  d       | j!                  |j$                  d       | j!                  |j&                  d       | j)                  |j*                  |       | j                  |j,                         | j                  |j.                         y # 1 sw Y   xY w)N:   HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8

open.return_valueurllib.request.build_openerhttp://example.com/2000/svgzhttp://example.com/2000/zutf-8 )SMALL_SAMPLEr   r   HTTPResponsebeginr   Mockr   DOMEntityResolverpatchreturn_valueresolveEntityassertIsInstanceDOMInputSourceassertIsNonepublicIdassertEqualsystemIdbaseURIencodingassertIs
byteStreamcharacterStream
stringData)	selfbodysockresponseattrsopenerresolver
mock_buildsources	            F/opt/python-3.12.12/usr/lib/python3.12/test/test_xml_dom_xmlbuilder.pytest_entity_resolverz#XMLBuilderTest.test_entity_resolver   s=   O 	
 $&&t,$h/#U#//1ZZ56*&,J#++D2OPF 7 	fj&?&?@&//**GH)CD'2f''2&001&++, 76s   <F  F	c                     t               }| j                  |t        j                         |j	                  |j
                  d       }| j                  |t        j                         y )N)r   r   r   DOMImplementationLScreateDOMBuilderMODE_SYNCHRONOUS
DOMBuilder)r%   impbuilders      r.   test_builderzXMLBuilderTest.test_builder.   sN    "$c:#A#AB&&s';';TBgz'<'<=    c                    dt         z   }t        |      }t        j                  |      }|j	                          d|i}t        j                  di |}t        j                  d      5 }||_        t               }|j                  |j                  d       }|j                  d      }	d d d        | j                  	t        j                         | j!                  t#        |	j$                        d       y # 1 sw Y   OxY w)Nr   r   r   r      r   )r   r   r   r   r   r   r   r   r   r   r2   r3   parseURIr   r   Documentr   len
childNodes)
r%   r&   r'   r(   r)   r*   r,   r5   r6   documents
             r.   test_parse_urizXMLBuilderTest.test_parse_uri5   s    O 	
 $&&t,$h/#U#ZZ56*&,J#&(C**3+?+?FG''(EFH 7 	h(8(89X00115 76s   (?C55C>c                    t        j                  t              }t        j                  d      5 }||_        t               }|j                         }|j                  |j                  d       }d|_
        |j                  |      }d d d        | j                  t        j                         | j                  t!        |j"                        d       y # 1 sw Y   OxY w)Nzurllib.request.urlopenr   r:   )ioBytesIOr   r   r   r   r   createDOMInputSourcer2   r3   r   parser   r   r<   r   r=   r>   )r%   r(   	mock_openr5   r-   r6   r?   s          r.   test_parse_with_systemIdz'XMLBuilderTest.test_parse_with_systemIdK   s    ::l+ZZ01Y%-I"&(C--/F**3+?+?FG;FO}}V,H 2 	h(8(89X00115 21s   ACCN)__name__
__module____qualname__r/   r7   r@   rG   r   r8   r.   r
   r
      s    -8>6,6r8   r
   )rB   unittesthttpr   test.test_httplibr   r   xml.domr   r   r   r   TestCaser
   r   r8   r.   <module>rP      s5    	   (  = =G6X&& G6r8   