← Back
Editing: test_domhelpers.cpython-38.pyc
U W[_+ � @ sn d Z ddlmZ ddlmZ ddlmZ ddlmZm Z G dd� d�Z G dd � d e e�ZG d d� de e�ZdS ) zH Specific tests for (some of) the methods in L{twisted.web.domhelpers}. � )�minidom)�unicode)�TestCase)� domhelpers�microdomc @ s| e Zd ZdZdZdd� Zdd� Zdd� Zd d � Zdd� Z d d� Z dd� Zdd� Zdd� Z dd� Zdd� Zdd� Zdd� ZdS )�DOMHelpersTestsMixinz� A mixin for L{TestCase} subclasses which defines test methods for domhelpers functionality based on a DOM creation function provided by a subclass. Nc C s� | j �d�}t�|d�d j}d}| �||� |j}t�|d�d j}| �||� d}| j �|�}t�|d�}d�dd� |D ��}d}| �||� |j}t�|d�}d�d d� |D ��}| �||� d } | j �| �} t�| d�}d�dd� |D ��}d}| �||� | j}t�|d�}d�d d� |D ��}| �||� d}| j �|�} t�| d�}| j}||jd jd g}| �||� t�|d�}| �||� d S )Nz<foo/>�foor z<a><foo in="a"/><b><foo in="b"/></b><c><foo in="c"/></c><foo in="d"/><foo in="ef"/><g><foo in="g"/><h><foo in="h"/></h></g></a>� c S s g | ]}|� d ��qS ��in�ZgetAttribute��.0�node� r �B/usr/lib/python3/dist-packages/twisted/web/test/test_domhelpers.py� <listcomp>$ s zBDOMHelpersTestsMixin.test_getElementsByTagName.<locals>.<listcomp>�abcdefghc S s g | ]}|� d ��qS r r r r r r r ) s aH <a><foo in="a"/> <b><foo in="b"/> <d><foo in="d"/> <g><foo in="g"/></g> <h><foo in="h"/></h> </d> <e><foo in="e"/> <i><foo in="i"/></i> </e> </b> <c><foo in="c"/> <f><foo in="f"/> <j><foo in="j"/></j> </f> </c> </a>c S s g | ]}|� d ��qS r r r r r r r ? s � abdgheicfjc S s g | ]}|� d ��qS r r r r r r r D s z'<foo><bar></bar><baz><foo/></baz></foo>���) �dom�parseStringr ZgetElementsByTagNameZnodeName�assertEqual�documentElement�join� childNodes)�self�doc1�actual�expectedZel1�doc2_xml�doc2Ztag_listZel2�doc3_xml�doc3Zel3�doc4_xml�doc4�rootr r r �test_getElementsByTagName sF z.DOMHelpersTestsMixin.test_getElementsByTagNamec C s� | j �d�}t�|�}d}| �||� t�|j�}| �||� d}| j �|�}t�|�}d}| �||� t�|j�}| �||� d}| j �|�}t�|�}d}| �||� t�|j�}| �||� d S )Nz <a>foo</a>r z+<a>a<b>b</b><c>c</c>def<g>g<h>h</h></g></a>r zP<a>a<b>b<d>d<g>g</g><h>h</h></d><e>e<i>i</i></e></b><c>c<f>f<j>j</j></f></c></a>r �r r r ZgatherTextNodesr r )r r r r r r! r"