U
n^p, @ s
d dl mZ zd dlZW n ek
r4 edY nX d dlmZ d dlZd dlZd dlZd dl Z ddl
mZmZ d dl
mZ d dlmZ d dlZdd lmZ d dlZd d
lmZmZ G dd deZG d
d deZG dd deZG dd deZG dd deZdS ) )absolute_importNz"lxml is required to run the tests.)BytesIO )HelperTestCaseskipIf)xmlfile)LxmlSyntaxError)compare_xml)Elementparsec @ s" e Zd ZdZdd Zdd Zdd Zdd Zd
d Zdd
Z dd Z
dd Zdd Zdd Z
dd Zdd Zdd Zejjdd Zejjdd Zd d! Zd"d# Zejjd$d% Zejjd&d' Zejjd(d) Zd*d+ Zd,d- Zd.d/ Zejjd0d1 Zd2d3 Zd4d5 Z d6d7 Z!d;d9d:Z"dS )<_XmlFileTestCaseBaseNc C s t | _d S Nr _fileself r /private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/et-xmlfile/et_xmlfile/tests/test_incremental_xmlfile.pysetUp! s z_XmlFileTestCaseBase.setUpc
C s: t | j}|d W 5 Q R X W 5 Q R X | d d S )Ntestz
r r element assertXmlr xfr r r test_element$ s z!_XmlFileTestCaseBase.test_elementc
C sD t | j&}|d |d W 5 Q R X W 5 Q R X | d d S )Nr toasttoastr r r writer r r r r test_element_write_text* s z,_XmlFileTestCaseBase.test_element_write_textc C sp t | jR}|d< |d& |d |d W 5 Q R X W 5 Q R X W 5 Q R X W 5 Q R X | d d S )Nr r tasteZconTentz2conTentr r r r r test_element_nested0 s 2z(_XmlFileTestCaseBase.test_element_nestedc C s t | jz}|dd |d |d: |d |d |d W 5 Q R X |d W 5 Q R X |d W 5 Q R X W 5 Q R X | d d S )
Nr conr Ztentr! ZinsideZtnetZnocz?contentinsidetnetnocr r r r r test_element_nested_with_text8 s
z2_XmlFileTestCaseBase.test_element_nested_with_textc C s2 t | j}|td W 5 Q R X | d d S )Nr z)r r r r
r r r r r test_write_ElementE s z'_XmlFileTestCaseBase.test_write_Elementc
C s t d}t| j4}|d tdD ]}|| q(W 5 Q R X W 5 Q R X | }| |d k | dt |
| tdgtdd |
D d S )Nr d c s s | ]}|j V qd S r
)tag).0elr r r T s zE_XmlFileTestCaseBase.test_write_Element_repeatedly..)r
r r r ranger _parse_file
assertTrueZassertEquallengetrootset)r r r itreer r r test_write_Element_repeatedlyJ s z2_XmlFileTestCaseBase.test_write_Element_repeatedlyc
C sB t | j$}|jdddid W 5 Q R X W 5 Q R X | d d S )N{nsURI}testxnsURIZnsmapz!r r r r r test_namespace_nsmapV s z)_XmlFileTestCaseBase.test_namespace_nsmapc C sX t | j:}|jdddid |d W 5 Q R X W 5 Q R X W 5 Q R X | d d S )Nr r5 r6 r7 {nsURI}toastz0r r r r r test_namespace_nested_nsmap\ s
z0_XmlFileTestCaseBase.test_namespace_nested_nsmapc
C s: t | j}|d W 5 Q R X W 5 Q R X | d d S )Nr4 z'r r r r r test_anonymous_namespacec s z-_XmlFileTestCaseBase.test_anonymous_namespacec C sP t | j2}|d |d W 5 Q R X W 5 Q R X W 5 Q R X | d d S )Nr r9 z6r r r r r test_namespace_nested_anonymousi s
z4_XmlFileTestCaseBase.test_namespace_nested_anonymousc
C sB t | j$}|jdd did W 5 Q R X W 5 Q R X | d d S )Nr4 r6 r7 zr r r r r test_default_namespacep s z+_XmlFileTestCaseBase.test_default_namespacec C sX t | j:}|jdd did |d W 5 Q R X W 5 Q R X W 5 Q R X | d d S )Nr4 r6 r7 r9 z*r r r r r test_nested_default_namespacev s
z2_XmlFileTestCaseBase.test_nested_default_namespacec
C sT ddl m} t| j*}||d |d W 5 Q R X W 5 Q R X | d d S )Nr )ProcessingInstructionpypir z)et_xmlfile.xmlfiler? r r r r r )r r? r r r r test_pi} s z_XmlFileTestCaseBase.test_pic
C sJ t | j,}|td |d W 5 Q R X W 5 Q R X | d d S )Nz a commentr z)r r r etreeCommentr r r r r r test_comment s
z!_XmlFileTestCaseBase.test_commentc
C sB t | j$}|jdddid W 5 Q R X W 5 Q R X | d d S )Nr kv)attribzr r r r r test_attribute s z#_XmlFileTestCaseBase.test_attributec
C sN t | j0}|d |d |d W 5 Q R X W 5 Q R X | d d S )Nr zComments:
zEntities: &z>Comments: <!-- text -->
Entities: &r r r r r
test_escaping s
z"_XmlFileTestCaseBase.test_escapingc
C sL t | jdd&}|d |d W 5 Q R X W 5 Q R X | jddd d S )Nutf16)encodingr r r r r r r r
test_encoding s z"_XmlFileTestCaseBase.test_encodingc C s t | jdd}|d | d |d | d |d. | d |d td
d | d W 5 Q R X | d |d
| d W 5 Q R X | d W 5 Q R X | d d S )NFZbufferedr zr ztoastr! toastZsomeZmorez"toastsometoastz*toastsometoastendz-toastsometoastendz4toastsometoastend)r r r r r rC r
r r r r test_buffering s
z#_XmlFileTestCaseBase.test_bufferingc C s t | jdd}|d` | d |d | d |d" | d | | d W 5 Q R X | d W 5 Q R X | d W 5 Q R X | d d S ) NTrN r r r! rO z!toast)r r r r r flushr r r r
test_flush s
z_XmlFileTestCaseBase.test_flushc C sR z$t | j}|d W 5 Q R X W n tk
rB | d Y nX | d d S )Nr TF)r r r r r- r r r r test_failure_preceding_text s z0_XmlFileTestCaseBase.test_failure_preceding_textc
C sh t | jT}|d W 5 Q R X z|d W n tk
rN | d Y nX | d W 5 Q R X d S )Nr r TF)r r r r r r- r r r r test_failure_trailing_text s
z/_XmlFileTestCaseBase.test_failure_trailing_textc
C sl t | jX}|d W 5 Q R X z|td W n tk
rR | d Y nX | d W 5 Q R X d S )Nr TF)r r r r r
r r- r r r r test_failure_trailing_Element s
z2_XmlFileTestCaseBase.test_failure_trailing_Elementc C s d }z:t | j&}|d}|j}| tdW 5 Q R X W n\ tk
r | | z|ttdd W n tk
r | d Y nX | d Y nX | d d S )Nr Z123ZhuhuTF)r r r __exit__ __enter__
ValueErrorr- r )r cm_exitr r5 r r r 'test_closing_out_of_order_in_error_case s
z<_XmlFileTestCaseBase.test_closing_out_of_order_in_error_casec C s8 | j }| j d z| j W S | j | X d S Nr )r tellseekreadr posr r r
_read_file s
z_XmlFileTestCaseBase._read_filec C s8 | j }| j d zt| j W S | j | X d S r] )r r^ r_ r ra r r r r, s
z _XmlFileTestCaseBase._parse_filec C s | j d k r| j d S r
)r closer r r r tearDown s
z_XmlFileTestCaseBase.tearDownutf8c C s( t | ||}|d ks$t|d S r
)r rc decodeAssertionError)r expectedrL Zdiffr r r r
s z_XmlFileTestCaseBase.assertXml)rf )#__name__
__module____qualname__r r r r r" r$ r% r3 r8 r: r; r<