U n^" @s2ddlZddlZddlZddlZddlZddlZz ddlZWn ek r\ddlm ZYnXzddl m Z Wnddl m Z YnXddZ eedddkpeedddk ZejddkZzdd lmZWnBek rzdd lmZWnek r dZYnXYnXeed r*e ejZnd Zzdd lmZWn>ek r|z ddlZWnek rvdZYnXYnXeed re ejZnd Zd dZz$ddlZejejejejWn"ee fk rddl!ZYnXze"Wne#k rddZ"Yn Xe"e$d<ze%Wne#k rBddZ%Yn Xe%e$d<z ddl&Z&Wn&ek rGddde'Z(Yn Xe&j)j(Z(dLddZ*ddl+m,Z,ejddkrddl-m.Z/dMddZ0dNddZ1ddl+m2Z3d d!Z2eZ4e5d"j6Z7e5d#j6Z8d$d%Z9nddd&l:m/Z/dOd'dZ0dPd(dZ1ddl+m2Z2eZ4e5d)ej;j6ZZ>Wn,e k rd-d.d/d.fd0d1Z>YnXGd2d3d3ej?Z@Gd4d5d5ZAGd6d7d7ZBGd8d9d9eBZCd:d;ZDdd?ZFdQdAdBZGdRdDdEZHdSdFdGZIdHdIZJdJdKZKdS)TN) pathname2urlc CsPg}td|D]6}z|t|Wqtk rD||YqXqt|S)Nz([0-9]+|[^0-9.]+))refindallappendint ValueErrortuple)Zversion_stringlpartr {/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/et-xmlfile/et_xmlfile/tests/common_imports.pymake_version_tuplesr implementationZpypypypy_version_info) ElementTreeVERSIONrrr) cElementTreecCs>|j}dd}t|D]"}||d}||krt|||qdS)zGRemove test methods that do not work with the current lib version. cSsdSNr selfr r r dummy_test_method?sz,filter_by_version..dummy_test_methodrN)getdirsetattr)Z test_classZ version_dictcurrent_versionZfind_required_versionrnameZexpected_versionr r r filter_by_version;s   rcKst|}|jf||Sr)listsort)seqkwargsr r r sortedTs r#cCs|Sr)next)itr r r r$_sr$c@s eZdZdZddZddZdS)skipifzNUsing a class because a function would bind into a method when used in classescGsdSrr )rargsr r r __init__jzskipif.__init__cGs|Srr )rfuncr'r r r __call__kr)zskipif.__call__N)__name__ __module__ __qualname____doc__r(r+r r r r r&hsr&c Cs<tjt|jd}tjtjtjt |dd|S)Nr,__file__) sysmodules _getframe f_globalsospathnormpathjoindirnamegetattr)filenameZ frame_depthmoduler r r _get_caller_relative_pathos  r?)StringIO)strUTF-8cCs|Srr sencodingr r r _strysrFcCs ||Sr)encoderCr r r _bytes{srH)BytesIOcGs*|r"t|dtr"|ddf}t|S)NrrB) isinstancerArG_BytesIO)r'r r r rI~srIz (\s+)u(["\'])z(.*except [^(]*),\s*(.*:)c CsDt|}t|}td|}td|}tt|itj ||dS)N\1\2z\1 as \2r) r? read_file _fix_unicode_fix_exceptionsdoctest DocTestCasedoctest_parser get_doctestr7r8basenamer=Zdoctestsr r r make_doctests   rVunicodecCs t||dS)N)rErWrCr r r rFscCs|Srr rCr r r rHsz1^(\s*)(?:\w+\.)+(\w*(?:Error|Exception|Invalid):)z(.*except [^(]*)\s+as\s+(.*:)z (\s+)b(["\'])c CsNt|}t|}td|}td|}td|}tt|it j ||dS)NrLz\1, \2r) r?rM_fix_tracebackrO _fix_bytesrPrQrRrSr7r8rTrUr r r rVs    cCsdSrr Z test_methodr r r r)r\cCs|Srr r[r r r r\r)cCs |r|S|Srr ) conditionwhyZ_skipZ_keepr r r skipIfsr_c@sPeZdZddZdddZddZz ejjWne k rJejj ZYnXdS) HelperTestCasecCs tdSr)gcZcollectrr r r tearDownszHelperTestCase.tearDownNcCs(t|trt|nt|}tj||dS)N)parser)rJbytesrIr@etreeparse)rtextrcfr r r rfszHelperTestCase.parsecCs.t|tdtdtdtdS)N r2 )retostringgetrootreplacerH)rtreer r r _rootstringszHelperTestCase._rootstring)N) r,r-r.rbrfrounittestTestCaseZ assertFalseAttributeErrorZfailIfr r r r r`s  r`c@s&eZdZedfddZdddZdS) SillyFileLikezcCs ||_dSr)xml_data)rrtr r r r(szSillyFileLike.__init__NcCsF|jr>|r*|jd|}|j|d|_n|j}td|_|StdS)Nr2)rtrH)ramountdatar r r reads zSillyFileLike.read)N)r,r-r.rHr(rwr r r r rssrsc@s(eZdZd ddZddZd d d ZdS) LargeFileLikedcCs0t|_td||_t||_|||_dSNa)rIrvrHcharsrangechildren iterelementsmorerZcharlendepthrr r r r(s zLargeFileLike.__init__ccs\tdV|d8}|dkrF|jD]"}||D] }|Vq.|jVq n|jVtdVdSNzrz)rHrrr~rrchildelementr r r rs   zLargeFileLike.iterelementsNcCs|j}|j}|r6|jD]}||||krqJqn|jD] }||q<|}|d||r|||d|d|}|S)Nr)rvwritertellgetvalueseektruncate)rrurvrrresultr r r rws       zLargeFileLike.read)ryrzr{)N)r,r-r.r(rrwr r r r rxs  rxc@seZdZd ddZddZdS) LargeFileLikeUnicoderyrzr{cCs6t||||t|_td||_|||_dSr|)rxr(r@rvrFr~rrrr r r r(szLargeFileLikeUnicode.__init__ccs\tdV|d8}|dkrF|jD]"}||D] }|Vq.|jVq n|jVtdVdSr)rFrrr~rr r r rs   z!LargeFileLikeUnicode.iterelementsN)ryrzr{)r,r-r.r(rr r r r rs rcCstjt}tj||Sr)r7r8r;r1r:)rZ_testdirr r r fileInTestDir s rcCstdt|S)Nzfile:)urlparseurljoinr)r8r r r path2urlsrcCs tt|Sr)rr)rr r r fileUrlInTestDirsrrcCs&t||}z |}W5|X|Sr)opencloserw)rmoderhrvr r r rMs    rMwcCs(t||}z||}W5|XdSr)rrr)rrvrrhr r r write_to_files rcCstt||Sr)rMr)rrr r r readFileInTestDir%srcCs8tt|trt|nt|}t}|||Sr)rerfrJrdrIr@ write_c14nr)xmlrnrhr r r canonicalize(s  rcCs.td|D]\}}||tt|}q |S)Nz (&#([0-9]+);))rrrmunichrr)rZ entity_namevaluer r r unentitify.sr)r0)rB)rB)rB)rB)r)r)r)Lr7os.pathrrar3rpr ImportError urllib.parserfurllibrurllib.requestr r<ZIS_PYPY version_infoZ IS_PYTHON3Z xml.etreerZ elementtreehasattrrZ ET_VERSIONrZ CET_VERSIONrrPZ DocFileSuiteZ DocTestParserZNORMALIZE_WHITESPACEELLIPSISrrZ local_doctestr# NameErrorlocalsr$Zpytestobjectr&markr?ior@builtinsrArXrFrHrIrKrRcompilesubrNrOrV __builtin__MrYrZr_rqr`rsrxrrrrrMrrrrr r r r s                            &