Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.144.152.153
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_pulldom.cpython-310.pyc
o

ab�2�@s�ddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZeddd�Zd	Z
Gd
d�dej�ZGdd
�d
ej�ZGdd�de�ZGdd�de�ZGdd�de	j�ZGdd�dej�Zedkrje��dSdS)�N)�AttributesImpl)�feature_external_ges)�pulldom)�findfileztest.xmlZxmltestdata)Zsubdira
<?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@sPeZdZdd�Zdd�Zdd�Zejdd��Zejd	d
��Z	dd�Z
d
d�ZdS)�PullDOMTestCasecCs^t�t�}|�|jj�t|�ttd��}tt�|��Wd�dS1s(wYdS)z&Minimal test of DOMEventStream.parse()�rbN)r�parse�tstfileZ
addCleanup�stream�close�list�open)�self�handler�fin�r�:/usr/local/python-3.10/lib/python3.10/test/test_pulldom.py�
test_parses
"�zPullDOMTestCase.test_parsecCs�t�t�}t|�\}}|�t|d��|�tj|�t|�\}}|�tj|�|�d|j	�|�dt
|j��|�|j�d�j
d�t|�\}}|�tj|�t|�\}}|�tj|�t|�\}}|�d|j	�|}t|�\}}|�tj|�|�d|j�t|�\}}|�tj|�|�d|j	�|�||u�t|�\}}|�tj|�t|�\}}|�tj|�|�d|j	�t|�\}}|�tj|�|�d|j	�t|�\}}|�tj|�t|�\}}|�tj|�|�d	|j	�t|�\}}|�tj|�|�d
|j	�t|�\}}|�tj|�t|�\}}|�tj|�|�d
|j	�t|�\}}|�tj|�t|�\}}|�tj|�t|�\}}|�tj|�dS)z&Test DOMEventStream parsing semantics.�
createElement�html�z	xmlns:xdczhttp://www.xml.com/books�titlezIntroduction to XSL�hr�pz
xdc:authorN)r�parseString�SMALL_SAMPLE�next�
assertTrue�hasattr�assertEqual�START_DOCUMENT�
START_ELEMENT�tagName�lenZ
attributesZgetNamedItem�value�
CHARACTERS�data�END_ELEMENT)r�items�evt�nodeZ
title_noderrr�test_parse_semantics+sh
�z$PullDOMTestCase.test_parse_semanticscCs>t�t�}|D]\}}|tjkr%|jdkr%|�|�|�dt|j��q+q|�	d�|D]\}}|tjkr8q9q-|�d|jd�|�|�|�t
|�dtj�t
|�\}}|�|jd�|�|�t
|�t
|�\}}|�|jd�|�t
��t
|�Wd	�n1s�wY|��|�|j�|�|j�d	S)
z$Ensure expandItem works as expected.r�z,No "title" element detected in SMALL_SAMPLE!rz=expandNode did not leave DOMEventStream in the correct state.rrrN)rrrr!r"Z
expandNoderr#�
childNodes�failrr%ZassertRaises�
StopIteration�clear�assertIsNone�parserr
)rr(r)�itemr*rrr�test_expandItemis:

�

�
�


�zPullDOMTestCase.test_expandItemcCs6t�t�}|D]\}}|tjkrdSq|�d�dS)z*PullDOM does not receive "comment" events.zNo comment was encounteredN)rrr�COMMENTr.)rr(r)�_rrr�test_comment�s

�zPullDOMTestCase.test_commentcCspt�t�}|D]\}}|tjkr|jdkrqqzt|�\}}|�tj|�WdSty7|�	d�YdSw)z/PullDOM does not receive "end-document" events.rz8Ran out of events, but should have received END_DOCUMENTN)
rrrr'r"rr�END_DOCUMENTr/r.)rr(r)r*rrr�test_end_document�s
�
��z!PullDOMTestCase.test_end_documentcCsRt�t�}|�td��|�|ddtj�Wd�dS1s"wYdS)NzUse iterator protocol instead���r)rrrZassertWarnsRegex�DeprecationWarningrr )rr2rrr�test_getitem_deprecation�s
�"�z(PullDOMTestCase.test_getitem_deprecationcCs*t�t�}|j}|�t�}|�|d�dS)NF)rrrr2Z
getFeaturerr)rr2Z	saxparserZgesrrr�test_external_ges_default�s

z)PullDOMTestCase.test_external_ges_defaultN)�__name__�
__module__�__qualname__rr+r4�unittest�expectedFailurer7r9r<r=rrrrrs> 
	
rc@s8eZdZdZdd�Zejdd��Zdd�Zdd	d
�Z	dS)
�ThoroughTestCasez(Test the hard-to-reach parts of pulldom.cCs|�tjdt�d��dS)z0Test some of the hard-to-reach parts of PullDOM.N)r2)�_test_thoroughrr�SAXExerciser�rrrr�test_thorough_parse�sz$ThoroughTestCase.test_thorough_parsecCstdt�d�}|�|�dS)z2SAX2DOM can"t handle a PI before the root element.N�)�SAX2DOMTestHelperrErD�r�pdrrr�test_sax2dom_fail�sz"ThoroughTestCase.test_sax2dom_failcCstdt�d�}|�|d�dS)z0Test some of the hard-to-reach parts of SAX2DOM.NrHF)rI�SAX2DOMExerciserrDrJrrr�test_thorough_sax2dom�sz&ThoroughTestCase.test_thorough_sax2domTcCs�t|�\}}|�tj|�|�t|d��|rFt|�\}}|�tj|�|�d|j�t|�\}}|�tj|�|�d|j	�|�d|j�t|�\}}|�tj
|�|�d|j�t|�\}}|�tj|�|�d|j�t|�\}}|�tj|�|�d|j	�|�d|j�t|�\}}|�tj
|�|�d|j�t|�\}}|�tj|�|�d|j�t|�\}}|�tj
|�|�d|j�t|�\}}|�tj
|�|�d|j�t|�\}}|�tj|�dS)	zPTest some of the hard-to-reach parts of the parser, using a mock
        parser.r�	a comment�targetr&rr�textN)rrrr rrr5r&ZPROCESSING_INSTRUCTIONrPr!r"r%r'r8)rrKZbefore_rootr)r*rrrrD�sFzThoroughTestCase._test_thoroughN)T)
r>r?r@�__doc__rGrArBrLrNrDrrrrrC�s
rCc@s0eZdZdZdd�Zdd�Zdd�ZeZeZdS)	rEznA fake sax parser that calls some of the harder-to-reach sax methods to
    ensure it emits the correct eventscCs
||_dS�N)�_handler)rrrrr�setContentHandler�s
zSAXExerciser.setContentHandlercCs�|j}|��|�d�|�dd�|�dti��|�d�|�dd�|�dtddi��|�d�|�d�|�d�|��dS)	NrOrPr&rr�class�	paraclassrQ)	rT�
startDocument�comment�processingInstruction�startElementr�
characters�
endElement�endDocument�rr6�hrrrr�s




zSAXExerciser.parsecOsdS)zStub method. Does nothing.Nr)r�args�kwargsrrr�stub
szSAXExerciser.stubN)	r>r?r@rRrUrrcZsetProperty�
setFeaturerrrrrE�srEc@�eZdZdZdd�ZdS)rMz�The same as SAXExerciser, but without the processing instruction and
    comment before the root element, because S2D can"t handle itcCsr|j}|��|�dti��|�d�|�dd�|�dtddi��|�d�|�d�|�d�|��dS)	NrrOrPr&rrVrWrQ)	rTrXr[rrYrZr\r]r^r_rrrrs



zSAX2DOMExerciser.parseN)r>r?r@rRrrrrrrMsrMc@re)rIz1Allows us to drive SAX2DOM from a DOMEventStream.cCs0t��|_|j�tjjjd�|j�|j�dS)Nr,)	r�SAX2DOMr2rd�xml�saxrZfeature_namespacesrUrFrrr�reset(s
zSAX2DOMTestHelper.resetN)r>r?r@rRrirrrrrI%srIc@s&eZdZd	dd�Zdd�Zdd�ZdS)
�SAX2DOMTestCase�TestcCs|�||�dSrS)r)r�testZtestnamerrr�confirm1szSAX2DOMTestCase.confirmcCs~t�t��0}t|tj��tt��}|D]\}}|tj	kr#|j
dkr#q$q|�t|j�d�Wd�dS1s8wYdS)z'Ensure SAX2DOM can parse from a stream.rrN)
�io�StringIOrrIrgrhZmake_parserr#rr!r"Z
assertGreaterr-)rr�sdr)r*rrr�
test_basic4s��"�zSAX2DOMTestCase.test_basiccCs>t��}|��|�di�|�d�|�di�|�d�|�d�|�d�|�d�|��|j}|j}|j	\}}}|j	d}|�
|j�|�|j
|�|�|j|�|�|j
|�|�|j|�|�
|j
�|�
|j�|�
|j
�|�|j|�|�|j|�|�|j|�|�|j|�|�|j|�|��dS)z)Ensure SAX2DOM expands nodes as expected.�docrQZsubelmrN)rrfrXr[r\r]r^ZdocumentZdocumentElementr-r1ZpreviousSiblingZassertIsZnextSiblingZ
parentNode�unlink)rZsax2domrr�rootZtext1Zelm1Ztext2Ztext3rrr�testSAX2DOM@s8





zSAX2DOMTestCase.testSAX2DOMN)rk)r>r?r@rmrqrurrrrrj/s
rj�__main__)rnrAZxml.saxrgZxml.sax.xmlreaderrZxml.sax.handlerrZxml.domrZtest.supportrr	rZTestCaserrC�objectrErMZDOMEventStreamrIrjr>�mainrrrr�<module>s&	A"
4�
© 2025 GrazzMean