U n^p,@s ddlmZz ddlZWnek r4edYnXddlmZddlZddlZddlZddl Z ddl m Z m Z ddl mZddlmZddlZdd lmZddlZdd lmZmZGd d d e ZGd ddeZGdddeZGdddeZGdddeZdS))absolute_importNz"lxml is required to run the tests.)BytesIO)HelperTestCaseskipIf)xmlfile)LxmlSyntaxError) compare_xml)Elementparsec@s"eZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZejjddZejjddZd d!Zd"d#Zejjd$d%Zejjd&d'Zejjd(d)Zd*d+Zd,d-Zd.d/Zejjd0d1Zd2d3Zd4d5Z d6d7Z!d;d9d:Z"dS)<_XmlFileTestCaseBaseNcCs t|_dSNr_fileselfr/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/et-xmlfile/et_xmlfile/tests/test_incremental_xmlfile.pysetUp!sz_XmlFileTestCaseBase.setUpc Cs:t|j}|dW5QRXW5QRX|ddS)Ntestz rrelement assertXmlrxfrrr test_element$s  z!_XmlFileTestCaseBase.test_elementc CsDt|j&}|d|dW5QRXW5QRX|ddS)Nrtoasttoastrrrwriterrrrrtest_element_write_text*s  z,_XmlFileTestCaseBase.test_element_write_textc Cspt|jR}|d<|d&|d|dW5QRXW5QRXW5QRXW5QRX|ddS)NrrtasteZconTentz2conTentrrrrrtest_element_nested0s     2z(_XmlFileTestCaseBase.test_element_nestedc Cst|jz}|dd|d|d:|d|d|dW5QRX|dW5QRX|dW5QRXW5QRX|d dS) NrconrZtentr!ZinsideZtnetZnocz?contentinsidetnetnocrrrrrtest_element_nested_with_text8s      z2_XmlFileTestCaseBase.test_element_nested_with_textc Cs2t|j}|tdW5QRX|ddS)Nrz)rrrr rrrrrtest_write_ElementEs z'_XmlFileTestCaseBase.test_write_Elementc Cstd}t|j4}|dtdD]}||q(W5QRXW5QRX|}||dk |dt | |t dgt dd| DdS)Nrdcss|] }|jVqdSr )tag).0elrrr TszE_XmlFileTestCaseBase.test_write_Element_repeatedly..) r rrrranger _parse_file assertTrueZ assertEquallengetrootset)rrritreerrrtest_write_Element_repeatedlyJs    z2_XmlFileTestCaseBase.test_write_Element_repeatedlyc CsBt|j$}|jdddidW5QRXW5QRX|ddS)N {nsURI}testxnsURIZnsmapz!rrrrrtest_namespace_nsmapVs z)_XmlFileTestCaseBase.test_namespace_nsmapc CsXt|j:}|jdddid|dW5QRXW5QRXW5QRX|ddS)Nrr5r6r7 {nsURI}toastz0rrrrrtest_namespace_nested_nsmap\s   z0_XmlFileTestCaseBase.test_namespace_nested_nsmapc Cs:t|j}|dW5QRXW5QRX|ddS)Nr4z'rrrrrtest_anonymous_namespacecs  z-_XmlFileTestCaseBase.test_anonymous_namespacec CsPt|j2}|d|dW5QRXW5QRXW5QRX|ddS)Nrr9z6rrrrrtest_namespace_nested_anonymousis    z4_XmlFileTestCaseBase.test_namespace_nested_anonymousc CsBt|j$}|jdddidW5QRXW5QRX|ddS)Nr4r6r7zrrrrrtest_default_namespaceps z+_XmlFileTestCaseBase.test_default_namespacec CsXt|j:}|jdddid|dW5QRXW5QRXW5QRX|ddS)Nr4r6r7r9z*rrrrrtest_nested_default_namespacevs   z2_XmlFileTestCaseBase.test_nested_default_namespacec CsTddlm}t|j*}||d|dW5QRXW5QRX|ddS)Nr)ProcessingInstructionpypirz)et_xmlfile.xmlfiler?rrrrr)rr?rrrrtest_pi}s    z_XmlFileTestCaseBase.test_pic CsJt|j,}|td|dW5QRXW5QRX|ddS)Nz a commentrz)rrretreeCommentrrrrrr test_comments   z!_XmlFileTestCaseBase.test_commentc CsBt|j$}|jdddidW5QRXW5QRX|ddS)Nrkv)attribzrrrrrtest_attributes z#_XmlFileTestCaseBase.test_attributec CsNt|j0}|d|d|dW5QRXW5QRX|ddS)NrzComments: zEntities: &z>Comments: <!-- text --> Entities: &amp;rrrrr test_escapings   z"_XmlFileTestCaseBase.test_escapingc CsLt|jdd&}|d|dW5QRXW5QRX|jddddS)Nutf16)encodingrrrrrrrr test_encodings z"_XmlFileTestCaseBase.test_encodingc Cst|jdd}|d|d|d|d|d.|d|d td d|d W5QRX|d |d |dW5QRX|dW5QRX|ddS)NFZbufferedrzrz toastr!toastZsomeZmorez"toastsometoastz*toastsometoastendz-toastsometoastendz4toastsometoastend)rrrrrrCr rrrrtest_bufferings        z#_XmlFileTestCaseBase.test_bufferingc Cst|jdd}|d`|d|d|d|d"|d||dW5QRX|dW5QRX|dW5QRX|ddS) NTrNrrr!rOz!toast)rrrrrflushrrrr test_flushs      z_XmlFileTestCaseBase.test_flushc CsRz$t|j}|dW5QRXWntk rB|dYn X|ddS)NrTF)rrrrr-rrrrtest_failure_preceding_texts  z0_XmlFileTestCaseBase.test_failure_preceding_textc Csht|jT}|dW5QRXz|dWntk rN|dYn X|dW5QRXdS)NrrTF)rrrrrr-rrrrtest_failure_trailing_texts   z/_XmlFileTestCaseBase.test_failure_trailing_textc Cslt|jX}|dW5QRXz|tdWntk rR|dYn X|dW5QRXdS)NrTF)rrrrr rr-rrrrtest_failure_trailing_Elements   z2_XmlFileTestCaseBase.test_failure_trailing_Elementc Csd}z:t|j&}|d}|j}|tdW5QRXWn\tk r||z|ttddWntk r|dYn X|dYn X|ddS)NrZ123ZhuhuTF)rrr__exit__ __enter__ ValueErrorr-r)rcm_exitrr5rrr'test_closing_out_of_order_in_error_cases   z<_XmlFileTestCaseBase.test_closing_out_of_order_in_error_casec Cs8|j}|jdz|jWS|j|XdSNr)rtellseekreadrposrrr _read_files   z_XmlFileTestCaseBase._read_filec Cs8|j}|jdzt|jWS|j|XdSr])rr^r_r rarrrr,s   z _XmlFileTestCaseBase._parse_filecCs|jdk r|jdSr )rcloserrrrtearDowns z_XmlFileTestCaseBase.tearDownutf8cCs(t|||}|dks$t|dSr )r rcdecodeAssertionError)rexpectedrLZdiffrrrr sz_XmlFileTestCaseBase.assertXml)rf)#__name__ __module__ __qualname__rrrr r"r$r%r3r8r:r;r<r=r>pytestmarkZxfailrBrErIrJrMrQrTrUrVrWr\rcr,rerrrrrr sF           r c@seZdZddZddZdS)BytesIOXmlFileTestCasecCs t|_dSr rrrrrrszBytesIOXmlFileTestCase.setUpc CsDt|jdd}|dW5QRXW5QRX|t|jjdSNT)rdr)rrrZ assertRaisesrZgetvaluerrrrtest_filelike_closes z*BytesIOXmlFileTestCase.test_filelike_closeN)rjrkrlrrrrrrrrosroc@seZdZddZdS)TempXmlFileTestCasecCst|_dSr )tempfile TemporaryFilerrrrrrszTempXmlFileTestCase.setUpN)rjrkrlrrrrrrssrsc@sPeZdZddZddZddZddZed d d d Zed d d dZ dS)TempPathXmlFileTestCasecCstjdd|_|jj|_dS)NF)delete)rtNamedTemporaryFile_tmpfilenamerrrrrr szTempPathXmlFileTestCase.setUpc Cs4z|jW5tj|jjr.t|jjXdSr )ospathexistsryrzunlinkrdrrrrre$sz TempPathXmlFileTestCase.tearDowncCs|jd|jSr])ryr_r`rrrrrc+s z"TempPathXmlFileTestCase._read_filecCs|jdt|jSr])ryr_r rrrrr,/s z#TempPathXmlFileTestCase._parse_fileTz1temp file behaviour is too platform specific herecCsdSr rrrrrrQ3sz&TempPathXmlFileTestCase.test_bufferingcCsdSr rrrrrrT7sz"TempPathXmlFileTestCase.test_flushN) rjrkrlrrercr,rrQrTrrrrrvs rvc@sDeZdZGdddeZddZddZddZd d Zd d Z d S)SimpleFileLikeXmlFileTestCasec@seZdZddZddZdS)z,SimpleFileLikeXmlFileTestCase.SimpleFileLikecCs(||_|j|_|j|_|j|_d|_dS)NF)_targetrr^r_closed)rtargetrrr__init__>s z5SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__cCs|jr td|_|jdS)NT)rrhrrdrrrrrdEs z2SimpleFileLikeXmlFileTestCase.SimpleFileLike.closeN)rjrkrlrrdrrrrSimpleFileLike=srcCst|_||j|_dSr )rrrrrrrrrJsz#SimpleFileLikeXmlFileTestCase.setUpcCs |jSr )rrqrrrrrcNsz(SimpleFileLikeXmlFileTestCase._read_filec Cs8|j}|jdzt|jWS|j|XdSr])rr^rr_r rarrrr,Qs   z)SimpleFileLikeXmlFileTestCase._parse_filec Cs>t|j}|dW5QRXW5QRX||jjdS)Nr)rrrZ assertFalserrrrrtest_filelike_not_closingYs  z7SimpleFileLikeXmlFileTestCase.test_filelike_not_closingc CsHt|jdd}|dW5QRXW5QRX||jjd|_dSrp)rrrr-rrrrrrr_s  z1SimpleFileLikeXmlFileTestCase.test_filelike_closeN) rjrkrlobjectrrrcr,rrrrrrrr<s  r) __future__rlxml ImportErroriorZunittestrtr{sysZcommon_importsrrZ et_xmlfilerrArrmhelperr xml.etree.ElementTreexmlr r r rorsrvrrrrrs(      r