a zeB @sddlmZmZmZmZmZddlZddlmZz eWneyVedYn0ddl m Z m Z m Z m Z mZmZddlmZddlmZmZddlmZmZmZdd lmZmZddlZddlZddlZdd l m!Z!ddl"Z#dd l$m%Z%dd l&m'Z'm(Z(m)Z)e'd ddZ*e'dddZ+ze*,de+,dWne-yRedYn0dZ.ej/j0sze%j1,e%j2Wne3e4fydZ.Yn0e5e.dZ6dZ7Gdddej8Z9d?ddZ:d@ddZ;dAddZGd$d%d%ej8Z?Gd&d'd'ej8Z@Gd(d)d)ZAGd*d+d+eAej8ZBGd,d-d-eAej8ZCGd.d/d/eCZDGd0d1d1eAej8ZEGd2d3d3eAej8ZFd4ZGGd5d6d6ej8ZHeIe+d7ZJeJKZLWdn1s0YGd8d9d9e9ZMGd:d;d;ej8ZNGdkreQdS)B) make_parserContentHandler SAXExceptionSAXReaderNotAvailableSAXParseExceptionN)mockzno XML parsers available) XMLGeneratorescapeunescape quoteattr XMLFilterBaseprepare_input_source) create_parser)feature_namespacesfeature_external_ges) InputSourceAttributesImplAttributesNSImpl)BytesIOStringIO)URLError)support)findfileFakePathTESTFNztest.xmlZ xmltestdata)Zsubdirz test.xml.oututf-8z!filename is not encodable to utf8TFz$Requires non-ascii filenames supportz%http://www.python.org/xml-ns/saxtest/c@s$eZdZddZddZddZdS) XmlTestBasecCs|t|jd|t|jd|t|jd|t|jd|t|jd||d|| g|| g|t |d| d||t |g||dd||ddd|t |g|t |gdS)Nattrrattrs) assertRaisesKeyErrorgetValuegetValueByQNamegetNameByQNamegetQNameByName __getitem__ assertEqual getLengthgetNames getQNameslen assertNotInlistkeysgetitemsvaluesselfrr4A/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_sax.pyverify_empty_attrs2s zXmlTestBase.verify_empty_attrscCs|t|jtdf|t|jd|t|jd|t|jtdf|t|jtdf|| d|| g|| g|t |d| tdf||t|g||tdfd||tdfdd|t|g|t|gdS)Nrns:attrrr)r r!r"ns_urir#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r4r4r5verify_empty_nsattrsCsz XmlTestBase.verify_empty_nsattrscCs||d||dg||dg|t|d|d||t|dg||dd||ddd|t| dg|t| dg|| dd|| dd|| dd||dd||dddS)Nrvalr)rr;)r'r(r)r*r+assertInr-r.r/r0r1r"r#r$r%r2r4r4r5verify_attrs_wattrTs zXmlTestBase.verify_attrs_wattrN)__name__ __module__ __qualname__r6r9r=r4r4r4r5r1srcCs|dur |Sd||fSN& %sr4)docencodingr4r4r5xml_strfsrE.cCs|dur |}t|||dS)N.xmlcharrefreplace)rEencode)rCrD decl_encodingr4r4r5 xml_bytesksrIcCsP|dur |}ttd|dd }|t||Wdn1sB0YdS)N.wrF)rDerrors)openrwriterE)rCrDrHfr4r4r5 make_xml_filepsrOc@s`eZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS) ParseTestu,$£€𐅻cCsttdSN)runlinkrr3r4r4r5tearDownzszParseTest.tearDowncCs>ddlm}t}||t|d||t|jddS)Nr)parser)xml.saxrUrrr'getvaluerEdata)r3rNrUresultr4r4r5 check_parse}s zParseTest.check_parsec Csd}|D]}|tt|j|t|j|ttd|d}||Wdn1s\0Y|t|jt|j|dttd|d}||Wdq1s0YqdS)Nus-ascii iso-8859-1rutf-16utf-16leutf-16berrD)rZrrErXrOrLrr3 encodingsrDrNr4r4r5test_parse_texts (zParseTest.test_parse_textc Csd}|D]}|tt|j|t|j||tttd}||Wdn1sb0Y|tt|j|dt|j|d|tttd}||Wdq1s0Yq|tt|jddt|jdd|tttd}||Wdn1s.0Y|tt|jddt|jdd|tttd}||Wdn1s0Y|tt|jdt|jd|tttd}||Wdn1s0Y|t(|tt|jddWdn1s:0Yt|jdd|t|tWdn1s~0YttdF}|t||Wdn1s0YWdn1s0YdS)Nr\rr^r_r`rb utf-8-sigrr]) rZrrIrXrOrrLr rrcr4r4r5test_parse_bytessF   (  *  *  *   * 8 *  zParseTest.test_parse_bytescCs t|jdd|ttdS)Nr)rOrXrZrrrSr4r4r5test_parse_path_objectsz ParseTest.test_parse_path_objectcCs`t|jddttd4}t}|||d||Wdn1sR0YdS)Nr]rg)rOrXrLrr setByteStreamZ setEncodingrZ)r3rNinputr4r4r5test_parse_InputSources    z ParseTest.test_parse_InputSourcec stdfdd}tjd|d^t|jdd|t|tWdn1s^0Y| j Wdn1s0YdS)Ncs |SrQr4)argsZ builtin_openfileobjr4r5 mock_opensz4ParseTest.test_parse_close_source..mock_openzxml.sax.saxutils.open)Z side_effectr]) rLrZpatchrOrXr rrZr assertTrueclosed)r3rqr4ror5test_parse_close_sources (z!ParseTest.test_parse_close_sourcecCs>ddlm}t}||t|d||t|jddS)Nr) parseStringr)rVrurrr'rWrErX)r3srurYr4r4r5check_parseStrings zParseTest.check_parseStringcCs0d}|D]}|t|j|q||jdS)Nr[)rwrErXr3rdrDr4r4r5test_parseString_textszParseTest.test_parseString_textcCsd}|D]*}|t|j||t|j|dq|t|jdd|t|jdd|t|jd|t$|t|jddWdn1s0YdS)Nrfrhrr])rwrIrXr rrxr4r4r5test_parseString_bytess z ParseTest.test_parseString_bytesN)r>r?r@rXrTrZrerirjrmrtrwryrzr4r4r4r5rPws * rPc@s,eZdZddZddZddZddZd S) MakeParserTestcCspddlm}|}ddlm}|}ddlm}|}ddlm}|}ddlm}|}ddlm}|}dS)Nrr)rVr)r3rpr4r4r5test_make_parser2s      z MakeParserTest.test_make_parser2cCsHtdgtdtdhttdhtddittdgdS)Nmodule)rr frozensetiterrSr4r4r5test_make_parser3s    z MakeParserTest.test_make_parser3cCs>tgtttttttittgdSrQ)rtuplesetrrrSr4r4r5test_make_parser4s    z MakeParserTest.test_make_parser4cCsRtddgtdtddhttddhtdddttddgdS)Nmodule1module2)rrrrSr4r4r5test_make_parser5s   z MakeParserTest.test_make_parser5N)r>r?r@r~rrrr4r4r4r5r{s  r{c@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS) SaxutilsTestcCs|tdddS)NDonald Duck & CoDonald Duck & Cor'r rSr4r4r5test_escape_basic*szSaxutilsTest.test_escape_basiccCs|tdddS)N<Donald Duck & Co>rrSr4r4r5test_escape_all-s zSaxutilsTest.test_escape_allcCs|tdddiddSNu Hei på degåzåzHei på degrrSr4r4r5test_escape_extra1szSaxutilsTest.test_escape_extracCs|tdddS)Nrrr'r rSr4r4r5test_unescape_basic6sz SaxutilsTest.test_unescape_basiccCs|tdddS)NrrrrSr4r4r5test_unescape_all9s zSaxutilsTest.test_unescape_allcCs|tdddiddSrrrSr4r4r5test_unescape_extra=sz SaxutilsTest.test_unescape_extracCs|tdddiddS)Nz &foo;z&foo;ZsplatrrSr4r4r5test_unescape_amp_extraAsz$SaxutilsTest.test_unescape_amp_extracCs|tdddS)Nrz"Donald Duck & Co"r'r rSr4r4r5test_quoteattr_basicEs z!SaxutilsTest.test_quoteattr_basiccCs|tdddS)NzIncludes "double" quotesz'Includes "double" quotes'rrSr4r4r5test_single_quoteattrIs z"SaxutilsTest.test_single_quoteattrcCs|tdddS)NzIncludes 'single' quotesz"Includes 'single' quotes"rrSr4r4r5test_double_quoteattrMs z"SaxutilsTest.test_double_quoteattrcCs|tdddS)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and "double" quotes"rrSr4r4r5test_single_double_quoteattrQs z)SaxutilsTest.test_single_double_quoteattrcCstdg}dS)Nzxml.parsers.no_such_parserr|)r3r}r4r4r5test_make_parserVszSaxutilsTest.test_make_parserN)r>r?r@rrrrrrrrrrrrr4r4r4r5r(src@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)PrepareInputSourceTestcCsBtj|_t|jd}|dWdn1s40YdS)NrJzThis was read from a file.)rrfilerLrM)r3tmpr4r4r5setUp^szPrepareInputSourceTest.setUpcCst|jdSrQ)rrRrrSr4r4r5rTcszPrepareInputSourceTest.tearDowncCstdSNsThis is a byte stream.)rrSr4r4r5make_byte_streamfsz'PrepareInputSourceTest.make_byte_streamcCstdSNzThis is a character stream.)rrSr4r4r5make_character_streamisz,PrepareInputSourceTest.make_character_streamcCs&||||||dSrQ)ZassertIsNotNoner'readclose)r3streamcontentr4r4r5 checkContentls z#PrepareInputSourceTest.checkContentcCsBt|j}||t|}||||ddSr) rrsetCharacterStreamrr assertIsNone getByteStreamrgetCharacterStreamr3srcprepr4r4r5test_character_streamrs  z,PrepareInputSourceTest.test_character_streamcCsBt|j}||t|}||||ddSr) rrrkrr rrrrrr4r4r5test_byte_stream{s  z'PrepareInputSourceTest.test_byte_streamcCs4t|j}t|}||||ddSNsThis was read from a file.)rrr rrrrrr4r4r5test_system_ids   z%PrepareInputSourceTest.test_system_idcCs,t|j}||||ddSr)r rrrrrr3rr4r4r5 test_strings   z"PrepareInputSourceTest.test_stringcCs0tt|j}||||ddSr)r rrrrrrrr4r4r5test_path_objectss  z(PrepareInputSourceTest.test_path_objectscCs.t|}||||ddSr)r rrrrrrr4r4r5test_binary_files   z'PrepareInputSourceTest.test_binary_filecCs.t|}||||ddSr)r rrrrrrr4r4r5test_text_files   z%PrepareInputSourceTest.test_text_fileN)r>r?r@rrTrrrrrrrrrrr4r4r4r5r\s   rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1S)2 XmlgenTestcCsP|}t|}||di|d||||ddS)NrC ioclassr startDocument startElement endElement endDocumentr'rWxmlr3rYgenr4r4r5test_xmlgen_basics  zXmlgenTest.test_xmlgen_basiccCsT|}t|dd}||di|d||||ddS)NTZshort_empty_elementsrCrrr4r4r5test_xmlgen_basic_emptys   z"XmlgenTest.test_xmlgen_basic_emptycCsZ|}t|}||di|d|d|||| ddS)NrChuheihuhei rrrr charactersrrr'rWrrr4r4r5test_xmlgen_contents   zXmlgenTest.test_xmlgen_contentcCs^|}t|dd}||di|d|d|||| ddS)NTrrCrrrrr4r4r5test_xmlgen_content_emptys    z$XmlgenTest.test_xmlgen_content_emptycCs\|}t|}||dd|di|d|||| ddS)NtestrXrCz) rrrZprocessingInstructionrrrr'rWrrr4r4r5test_xmlgen_pis    zXmlgenTest.test_xmlgen_picCsZ|}t|}||di|d|d|||| ddS)NrCz<huhei&rrr4r4r5test_xmlgen_content_escapes    z%XmlgenTest.test_xmlgen_content_escapecCs|}t|}||dddi|dddi|d|dddi|d|dddi|d|d||||ddS) NrCa"e'z'"z zKrrr4r4r5test_xmlgen_attr_escapes    z"XmlgenTest.test_xmlgen_attr_escapecCstd}|D]f}|}t||d}||dddi|d|d||||j d|dqdS)N z iso-8859-15rrhr^r`r_zutf-32zutf-32bezutf-32lerbrCr€urr3rdrDrYrr4r4r5test_xmlgen_encoding s     zXmlgenTest.test_xmlgen_encodingcCsf|}t|dd}||dddi|d|d||||j ddddS)NasciirbrCrrzrrr4r4r5test_xmlgen_unencodables     z"XmlgenTest.test_xmlgen_unencodablecCsZ|}t|}||di|d|d|||| ddS)NrC rrrrignorableWhitespacerrr'rWrrr4r4r5test_xmlgen_ignorable(s   z XmlgenTest.test_xmlgen_ignorablecCs^|}t|dd}||di|d|d|||| ddS)NTrrCrrrrr4r4r5test_xmlgen_ignorable_empty4s    z&XmlgenTest.test_xmlgen_ignorable_emptycCsd}|D]|}|}t||d}||dddi|d||d||d|| | |j d|dqdS)NrrbrCrrru) rrrrrrGrrrr'rWrrr4r4r5test_xmlgen_encoding_bytes@s    z%XmlgenTest.test_xmlgen_encoding_bytescCs|}t|}||dt|tdfdi|ddi|dd|tdfd|d|| | | dtdS)Nns1rCns1:docNZudocz/ rrrstartPrefixMappingr8startElementNS endElementNSendPrefixMappingrr'rWrrr4r4r5test_xmlgen_nsRs   zXmlgenTest.test_xmlgen_nscCs|}t|dd}||dt|tdfdi|ddi|dd|tdfd|d|| | | dtdS)NTrrrCrrz)rrr4r4r5test_xmlgen_ns_emptyds    zXmlgenTest.test_xmlgen_ns_emptycCsX|}t|}||ddddi|dd||||ddS)NNrrNbcz rrrrrrr'rWrrr4r4r5test_1463026_1vs zXmlgenTest.test_1463026_1cCs\|}t|dd}||ddddi|dd||||ddS)NTrrrrrz rrr4r4r5test_1463026_1_emptys  zXmlgenTest.test_1463026_1_emptycCsj|}t|}||dd|ddi|dd|d||| | ddS)Nquxrrrz rrrrrrrrr'rWrrr4r4r5test_1463026_2s   zXmlgenTest.test_1463026_2cCsn|}t|dd}||dd|ddi|dd|d||| | ddS)NTrrrrzrrr4r4r5test_1463026_2_emptys    zXmlgenTest.test_1463026_2_emptycCsn|}t|}||dd|ddddi|dd|d||| | ddS)Nmyrrrrrz"rrr4r4r5test_1463026_3s    zXmlgenTest.test_1463026_3cCsr|}t|dd}||dd|ddddi|dd|d||| | d dS) NTrrrrrrrzrrr4r4r5test_1463026_3_emptys     zXmlgenTest.test_1463026_3_emptycCsXtd}t}|td|}t|}|||||| | ddS)NzbHelloTMHello) rr setFeaturerrrsetContentHandlerrUr'rWr)r3Ztest_xmlparserrYrr4r4r5 test_5027_1s    zXmlgenTest.test_5027_1cCs|}t|}||dd|ddiddi}|dd||d |dd|dd|d|| | | d dS) Nrhttp://example.com/ns)rg1r)z$http://www.w3.org/XML/1998/namespacelangen)rg2r Hellor) rrrrrrrrrr'rWr)r3rYrZ lang_attrr4r4r5 test_5027_2s"      zXmlgenTest.test_5027_2cCs(|}dd}||||jdS)NcSs t|}||didS)NrC)rrr)outrr4r4r5funcsz+XmlgenTest.test_no_close_file..func)rZ assertFalsers)r3rYr r4r4r5test_no_close_fileszXmlgenTest.test_no_close_filecCsz|}t|}|dddi|d|d|dddi|d|||dt|d ddS) NZfoorz1.0r Zbarrz2.0z+Hello) rrrrrr'rWrr+rr4r4r5test_xmlgen_fragments    zXmlgenTest.test_xmlgen_fragmentN)r>r?r@rrrrrrrrrrrrrrrrrrrrrr rrr4r4r4r5rs0              rc@seZdZeZdddZdZdS)StringXmlgenTestr]cCs d||fSrAr4r3rCrDr4r4r5rszStringXmlgenTest.xmlN)r])r>r?r@rrrrr4r4r4r5rs rc@seZdZeZdddZdS)BytesXmlgenTestr]cCsd||f|dS)NrBrFrGrr4r4r5rs zBytesXmlgenTest.xmlN)r])r>r?r@rrrr4r4r4r5rsrc@seZdZGdddeZdS)WriterXmlgenTestc@s.eZdZejZdZddZddZddZ dS) zWriterXmlgenTest.ioclassFcCsdS)NTr4rSr4r4r5seekable$sz!WriterXmlgenTest.ioclass.seekablecCst|SrQ)r+rSr4r4r5tell'szWriterXmlgenTest.ioclass.tellcCs d|S)N)joinrSr4r4r5rW+sz!WriterXmlgenTest.ioclass.getvalueN) r>r?r@r-appendrMrsrrrWr4r4r4r5r s rN)r>r?r@r-rr4r4r4r5rsrc@seZdZddZdddZdS)StreamWriterXmlgenTestcCs"t}td|d}|j|_|S)NrrF)rcodecs getwriterrW)r3rawwriterr4r4r5r/szStreamWriterXmlgenTest.ioclassr]cCsd||fddSNrBrrFrrr4r4r5r5s zStreamWriterXmlgenTest.xmlN)r])r>r?r@rrr4r4r4r5r.src@s(eZdZejdZddZdddZdS) StreamReaderWriterXmlgenTestz-codecscsDtjjdddddfdd}|fdd }|_S) NrJrrFr)rDrK bufferingcstjdSrQ)rrrRfnamer4r3rr4r5cleanup?sz5StreamReaderWriterXmlgenTest.ioclass..cleanupcs@tjd}|WdS1s20YdSNrg)rrLnamer)rN)rr4r5rWCsz6StreamReaderWriterXmlgenTest.ioclass..getvalue)rrLr# addCleanuprW)r3r%rWr4r$r5r<s   z$StreamReaderWriterXmlgenTest.ioclassr]cCsd||fddSr rrr4r4r5rKs z StreamReaderWriterXmlgenTest.xmlN)r])r>r?r@rrr#rrr4r4r4r5r!9s r!s, c@seZdZddZdS)XMLFilterBaseTestcCspt}t|}t}||||di|d|d|d| | | t ddS)NrCrrscontent ) rrr rrrrrrrr'rWstart)r3rYrfilterr4r4r5test_filter_basicSs     z#XMLFilterBaseTest.test_filter_basicN)r>r?r@r,r4r4r4r5r)Rsr)rgc@seZdZddZddZeddZddZd d ZGd d d Z Gd ddZ ddZ ddZ ddZ GdddZddZddZGdddeZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zed)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zed7d8Z d9S):ExpatReaderTestcCsft}t}t|}||ttd}||Wdn1sH0Y||t dSr& rrrrrL TEST_XMLFILErUr'rW xml_test_outr3rrYxmlgenrNr4r4r5test_expat_binary_fileos  (z&ExpatReaderTest.test_expat_binary_filecCsjt}t}t|}||ttddd}||Wdn1sL0Y||t dSNZrtr]rbr.r1r4r4r5test_expat_text_filezs (z$ExpatReaderTest.test_expat_text_filecCsbtj}tt||tj|t}t}t |}| || t |d| |tdSr&)rTESTFN_UNICODEshutilcopyfiler/r(rRrrrrrUrLr'rWr0r3r#rrYr2r4r4r5test_expat_binary_file_nonasciis  z/ExpatReaderTest.test_expat_binary_file_nonasciicCsptt}t}t}t|}||t|d}||Wdn1sR0Y| | t dSr&) osfsencoder/rrrrrLrUr'rWr0)r3r#rrYr2rNr4r4r5!test_expat_binary_file_bytes_names   (z1ExpatReaderTest.test_expat_binary_file_bytes_namec Cst}t}t|}||ttdL}t|ddd}||Wdn1s\0YWdn1sz0Y|| t dS)NrgF)closefd) rrrrrLr/filenorUr'rWr0)r3rrYr2rNf2r4r4r5test_expat_binary_file_int_names  Fz/ExpatReaderTest.test_expat_binary_file_int_namec@s$eZdZddZddZddZdS)zExpatReaderTest.TestDTDHandlercCsg|_g|_dSrQ) _notations _entitiesrSr4r4r5__init__sz'ExpatReaderTest.TestDTDHandler.__init__cCs|j|||fdSrQ)rBr)r3r'publicIdsystemIdr4r4r5 notationDeclsz+ExpatReaderTest.TestDTDHandler.notationDeclcCs|j||||fdSrQ)rCr)r3r'rErFZndatar4r4r5unparsedEntityDeclsz1ExpatReaderTest.TestDTDHandler.unparsedEntityDeclN)r>r?r@rDrGrHr4r4r4r5TestDTDHandlersrIc@seZdZddZddZdS)z"ExpatReaderTest.TestEntityRecordercCs g|_dSrQ)entitiesrSr4r4r5rDsz+ExpatReaderTest.TestEntityRecorder.__init__cCs.|j||ft}|||||SrQ)rJrrZ setPublicId setSystemId)r3rErFsourcer4r4r5 resolveEntitys   z0ExpatReaderTest.TestEntityRecorder.resolveEntityN)r>r?r@rDrMr4r4r4r5TestEntityRecordersrNcCsvt}|}|||d|d|d|d|d|||jdg||jdgdS)N zW ]> r)GIFz;-//CompuServe//NOTATION Graphics Interchange Format 89a//ENN)ZimgNz expat.gifrQ)rrIZ setDTDHandlerfeedrr'rBrC)r3rhandlerr4r4r5test_expat_dtdhandlers      z%ExpatReaderTest.test_expat_dtdhandlercCsz|tjjt}|td|}||| t | dWdn1s\0Y| |j dgdS)NT8 )Nzunsupported://non-existing)r(urllibZrequest urlcleanuprrrrNsetEntityResolverr rrRr'rJr3rZresolverr4r4r5test_expat_external_dtd_enableds   "z/ExpatReaderTest.test_expat_external_dtd_enabledcCsFt}|}|||d|d|||jgdS)NrUz)rrNrXrRrr'rJrYr4r4r5test_expat_external_dtd_defaults  z/ExpatReaderTest.test_expat_external_dtd_defaultc@seZdZddZdS)z"ExpatReaderTest.TestEntityResolvercCst}|td|S)Ns )rrkr)r3rErFinpsrcr4r4r5rMsz0ExpatReaderTest.TestEntityResolver.resolveEntityN)r>r?r@rMr4r4r4r5TestEntityResolversr]cCs|t}|td||t}|t||d|d|d|d| | | t ddS)NTrO# rP&test;s) rrrrXr]rrrrRrr'rWr*r3rrYr4r4r5!test_expat_entityresolver_enableds      z1ExpatReaderTest.test_expat_entityresolver_enabledcCst}||td||t}|t|| d| d| d| d| || t ddS)NFrOr^rPr_ ) rr'Z getFeaturerrXr]rrrrRrrWr*r`r4r4r5!test_expat_entityresolver_default s     z1ExpatReaderTest.test_expat_entityresolver_defaultc@seZdZddZddZdS)zExpatReaderTest.AttrGatherercCs ||_dSrQ_attrs)r3r'rr4r4r5r sz)ExpatReaderTest.AttrGatherer.startElementcCs ||_dSrQrd)r3r'Zqnamerr4r4r5r#sz+ExpatReaderTest.AttrGatherer.startElementNSN)r>r?r@rrr4r4r4r5 AttrGatherersrfcCs:t}|}|||d|||jdS)Nr)rrfrrRrr6rer3rgatherr4r4r5test_expat_attrs_empty&s   z&ExpatReaderTest.test_expat_attrs_emptycCs:t}|}|||d|||jdS)Nz)rrfrrRrr=rergr4r4r5test_expat_attrs_wattr0s   z&ExpatReaderTest.test_expat_attrs_wattrcCs<td}|}|||d|||jdS)Nr:r)rrfrrRrr9rergr4r4r5test_expat_nsattrs_empty:s   z(ExpatReaderTest.test_expat_nsattrs_emptycCs,td}|}|||dt||j}||d|| tdfg| | gkpx| dgk|t |d| tdf|||tdfd||tdfdd|t|tdfdfg|t|dg||tdfd||tdfddS)Nr:z"rr7r;r)rrfrrRr8rrer'r(r)rrr*r+r<r/r-r0r1r")r3rrhrr4r4r5test_expat_nsattrs_wattrDs&  z(ExpatReaderTest.test_expat_nsattrs_wattrcCs<t}t}t|}|||t||tdSrQ) rrrrrUr/r'rWr0r3rrYr2r4r4r5test_expat_inpsource_filename]s   z-ExpatReaderTest.test_expat_inpsource_filenamecCs@t}t}t|}|||tt||t dSrQ) rrrrrUrr/r'rWr0rmr4r4r5test_expat_inpsource_sysidgs  z*ExpatReaderTest.test_expat_inpsource_sysidcCs`tj}tt||tj|t}t}t |}| || t || |tdSrQ)rr6r7r8r/r(rRrrrrrUrr'rWr0r9r4r4r5#test_expat_inpsource_sysid_nonasciiqs  z3ExpatReaderTest.test_expat_inpsource_sysid_nonasciicCsvt}t}t|}||t}ttd$}||||Wdn1sX0Y| | t dSr&) rrrrrrLr/rkrUr'rWr0r3rrYr2r\rNr4r4r5 test_expat_inpsource_byte_streams   (z0ExpatReaderTest.test_expat_inpsource_byte_streamcCszt}t}t|}||t}ttddd$}||||Wdn1s\0Y| | t dSr4) rrrrrrLr/rrUr'rWr0rqr4r4r5%test_expat_inpsource_character_streams  (z5ExpatReaderTest.test_expat_inpsource_character_streamcCsRt}t|}t}|||d|d|||tddS)Nrb) rrrrrRrr'rWr*r3rYr2rr4r4r5test_expat_incrementals   z&ExpatReaderTest.test_expat_incrementalcCst}t|}t}|||d|dt}t|}||||d|d|d|||t ddS)Nrttextrustext) rrrrrRresetrr'rWr*rvr4r4r5test_expat_incremental_resets       z,ExpatReaderTest.test_expat_incremental_resetcCsnt}t|}t}|||d|d|||d||d|| ddS)Nrtrur:) rrrrrRrr' getSystemId getPublicId getLineNumberrvr4r4r5test_expat_locator_noinfos   z)ExpatReaderTest.test_expat_locator_noinfocCsLt}t|}t}|||t||t||ddSrQ) rrrrrUr/r'r{r|rvr4r4r5test_expat_locator_withinfos  z+ExpatReaderTest.test_expat_locator_withinfocCsltj}tt||tj|t}t|}t }| || || | || |ddSrQ)rr6r7r8r/r(rRrrrrrUr'r{r|)r3r#rYr2rr4r4r5$test_expat_locator_withinfo_nonasciis   z4ExpatReaderTest.test_expat_locator_withinfo_nonasciiN)!r>r?r@r3r5requires_nonascii_filenamesr:r=rArIrNrTrZr[r]rarcrrfrirjrkrlrnrorprrrsrwrzr~rrr4r4r4r5r-ks>               r-c@s2eZdZddZddZddZGdddZd S) ErrorReportingTestc Cst}|tt}|tdd}||z|||Wn4t y~}z| | |WYd}~n d}~00dS)Nsz a file name) rrrrrkrrKrUZfailrr'r{)r3rrLr'rr4r4r5test_expat_inpsource_locations    z0ErrorReportingTest.test_expat_inpsource_locationcCsJt}|t|t|jtd||d|| ddS)Nzr:) rrrr rrUrr'getColumnNumberr})r3rr4r4r5test_expat_incompletes  z(ErrorReportingTest.test_expat_incompletecCsdttdd|ddttdd|ddttdd|ddttdd|dddS)Nmessager:)strr DummyLocatorrSr4r4r5test_sax_parse_exception_strs    z/ErrorReportingTest.test_sax_parse_exception_strc@s4eZdZddZddZddZddZd d Zd S) zErrorReportingTest.DummyLocatorcCs||_||_dSrQ)_lineno_colno)r3linenocolnor4r4r5rDsz(ErrorReportingTest.DummyLocator.__init__cCsdS)NZpubidr4rSr4r4r5r|sz+ErrorReportingTest.DummyLocator.getPublicIdcCsdS)NZsysidr4rSr4r4r5r{sz+ErrorReportingTest.DummyLocator.getSystemIdcCs|jSrQ)rrSr4r4r5r}sz-ErrorReportingTest.DummyLocator.getLineNumbercCs|jSrQ)rrSr4r4r5r"sz/ErrorReportingTest.DummyLocator.getColumnNumberN)r>r?r@rDr|r{r}rr4r4r4r5rs rN)r>r?r@rrrrr4r4r4r5rs rc@s,eZdZddZddZddZddZd S) XmlReaderTestcCs|tidSrQ)r6rrSr4r4r5test_attrs_empty.szXmlReaderTest.test_attrs_emptycCs|tddidS)Nrr;)r=rrSr4r4r5test_attrs_wattr1szXmlReaderTest.test_attrs_wattrcCs|tiidSrQ)r9rrSr4r4r5test_nsattrs_empty4sz XmlReaderTest.test_nsattrs_emptycCsZttdfditdfdi}||d||tdfg||dg|t|d|tdf||t| tdfg|| tdfd|| tdfdd|t| tdfdfg|t| dg|| tdfd||dd||dtdf||tdfd||tdfddS)Nrr;r7r:r)rr8r'r(r)r*r+r<r-r.r/r0r1r"r#r$r%r2r4r4r5test_nsattrs_wattr7s$  z XmlReaderTest.test_nsattrs_wattrN)r>r?r@rrrrr4r4r4r5r+sr__main__)N).).)RrVrrrrrZunittestrZSkipTestZxml.sax.saxutilsrr r r r r Zxml.sax.expatreaderrZxml.sax.handlerrrZxml.sax.xmlreaderrrriorrrZos.pathr;r7Z urllib.errorrZurllib.requestrVrrZ test.supportrrrr/ZTEST_XMLFILE_OUTrGUnicodeEncodeErrorZsupports_nonascii_filenamespathsupports_unicode_filenamesr6ZTESTFN_ENCODING UnicodeError TypeErrorZ skipUnlessrr8ZTestCaserrErIrOrPr{rrrrrrrr!r*r)rLrNrr0r-rrr>mainr4r4r4r5s            5   |54Sc  (>!