a 5êdg ¼ã @s$ddlmZmZmZmZmZddlZddlmZz eƒWneyVe d¡‚Yn0ddl 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)m*Z*e'd ddZ+e'dddZ,ze+ -d¡e, -d¡Wne.yVe d¡‚Yn0dZ/ej0j1s–ze%j2 -e%j3¡Wne4e5fy”dZ/Yn0e 6e/d¡Z7dZ8Gdd„dej9ƒZ:dAdd„Z;dBdd„ZGd"d#„d#ej9ƒZ?Gd$d%„d%ej9ƒZ@Gd&d'„d'ej9ƒZAGd(d)„d)ƒZBGd*d+„d+eBej9ƒZCGd,d-„d-eBej9ƒZDGd.d/„d/eDƒZEGd0d1„d1eBej9ƒZFGd2d3„d3eBej9ƒZGd4ZHGd5d6„d6ej9ƒZIeJe,d7ƒZKeK L¡ZMWdƒn1sÌ0YGd8d9„d9e:ƒZNGd:d;„d;ej9ƒZOGdd?„ZQeRd@kr eQƒdS)Dé)Ú make_parserÚContentHandlerÚ SAXExceptionÚSAXReaderNotAvailableÚSAXParseExceptionN)Úmockzno XML parsers available)Ú XMLGeneratorÚescapeÚunescapeÚ quoteattrÚ XMLFilterBaseÚprepare_input_source)Ú create_parser)Úfeature_namespacesÚfeature_external_ges)Ú InputSourceÚAttributesImplÚAttributesNSImpl)ÚBytesIOÚStringIO)ÚURLError)Úsupport)ÚfindfileÚ run_unittestÚFakePathÚTESTFNztest.xmlZ xmltestdata)Zsubdirz test.xml.outúutf-8z!filename is not encodable to utf8TFz$Requires non-ascii filenames supportz%http://www.python.org/xml-ns/saxtest/c@s$eZdZdd„Zdd„Zdd„ZdS)Ú XmlTestBasecCs| t|jd¡| t|jd¡| t|jd¡| t|jd¡| t|jd¡| | ¡d¡| |  ¡g¡| |  ¡g¡| t |ƒd¡|  d|¡| t | ¡ƒg¡| | d¡d¡| | dd¡d¡| t | ¡ƒg¡| t | ¡ƒg¡dS)NÚattrrÚattrsé)Ú assertRaisesÚKeyErrorÚgetValueÚgetValueByQNameÚgetNameByQNameÚgetQNameByNameÚ __getitem__Ú assertEqualÚ getLengthÚgetNamesÚ getQNamesÚlenÚ assertNotInÚlistÚkeysÚgetÚitemsÚvalues©Úselfr©r5ú)/usr/local/lib/python3.9/test/test_sax.pyÚverify_empty_attrs2s zXmlTestBase.verify_empty_attrscCs| t|jtdf¡| t|jd¡| t|jd¡| t|jtdf¡| t|jtdf¡| |  ¡d¡| |  ¡g¡| |  ¡g¡| t |ƒd¡|  tdf|¡| t| ¡ƒg¡| | tdf¡d¡| | tdfd¡d¡| t| ¡ƒg¡| t| ¡ƒg¡dS)Nrúns:attrrr )r!r"r#Úns_urir$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r5r5r6Úverify_empty_nsattrsCsz XmlTestBase.verify_empty_nsattrscCs| | ¡d¡| | ¡dg¡| | ¡dg¡| t|ƒd¡| d|¡| t| ¡ƒdg¡| | d¡d¡| | dd¡d¡| t|  ¡ƒdg¡| t|  ¡ƒdg¡| |  d¡d¡| |  d¡d¡| |  d¡d¡| |dd¡| | d¡d¡dS)NérÚvalr )rr<)r(r)r*r+r,ÚassertInr.r/r0r1r2r#r$r%r&r3r5r5r6Úverify_attrs_wattrTs zXmlTestBase.verify_attrs_wattrN)Ú__name__Ú __module__Ú __qualname__r7r:r>r5r5r5r6r1srcCs|dur |Sd||fS©Nú& %sr5)ÚdocÚencodingr5r5r6Úxml_strfsrF.cCs|dur |}t||ƒ |d¡S)N.Úxmlcharrefreplace)rFÚencode)rDrEÚ decl_encodingr5r5r6Ú xml_bytesksrJcCsP|dur |}ttd|dd }| t||ƒ¡Wdƒn1sB0YdS)N.ÚwrG)rEÚerrors)ÚopenrÚwriterF)rDrErIÚfr5r5r6Ú make_xml_filepsrPc@s`eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dS)Ú ParseTestu,$£€ð…»cCst t¡dS©N)rÚunlinkr©r4r5r5r6ÚtearDownzszParseTest.tearDowncCs>ddlm}tƒ}||t|dƒƒ| | ¡t|jdƒ¡dS)Nr)Úparser)Úxml.saxrVrrr(ÚgetvaluerFÚdata)r4rOrVÚresultr5r5r6Ú check_parse}s zParseTest.check_parsec CsÂd}|D]´}| tt|j|ƒƒ¡t|j|ƒttd|d}| |¡Wdƒn1s\0Y| t|jƒ¡t|j|dƒttd|d}| |¡Wdƒq1s²0YqdS)N©úus-asciiú iso-8859-1rúutf-16úutf-16leúutf-16beÚr©rE)r[rrFrYrPrMr©r4Ú encodingsrErOr5r5r6Útest_parse_textƒs (zParseTest.test_parse_textc Csîd}|D]È}| tt|j|ƒƒ¡t|j|ƒ| t¡ttdƒ}| |¡Wdƒn1sb0Y| tt|j|dƒƒ¡t|j|dƒ| t¡ttdƒ}| |¡Wdƒq1sÆ0Yq| tt|jddƒƒ¡t|jddƒ| t¡ttdƒ}| |¡Wdƒn1s.0Y| tt|jddƒƒ¡t|jddƒ| t¡ttdƒ}| |¡Wdƒn1s”0Y| tt|jdƒƒ¡t|jdƒ| t¡ttdƒ}| |¡Wdƒn1sö0Y| t¡(| tt|jddƒƒ¡Wdƒn1s:0Yt|jddƒ| t¡| t¡Wdƒn1s~0YttdƒF}| t¡| |¡Wdƒn1sÀ0YWdƒn1sà0YdS)N©r]rr_r`raÚrbú utf-8-sigrr^) r[rrJrYrPrrMr!rrdr5r5r6Útest_parse_bytessF   (  *  *  *   * 8 *  zParseTest.test_parse_bytescCs t|jddƒ| ttƒ¡dS)Nr)rPrYr[rrrTr5r5r6Útest_parse_path_objectºsz ParseTest.test_parse_path_objectcCs`t|jddƒttdƒ4}tƒ}| |¡| d¡| |¡Wdƒn1sR0YdS)Nr^rh)rPrYrMrrÚ setByteStreamZ setEncodingr[)r4rOÚinputr5r5r6Útest_parse_InputSource¾s    z ParseTest.test_parse_InputSourcec s–t‰d‰‡‡fdd„}tjd|d^t|jddƒ| t¡| t¡Wdƒn1s^0Y|  ˆj ¡Wdƒn1sˆ0YdS)Ncs ˆ|މˆSrRr5)Úargs©Z builtin_openÚfileobjr5r6Ú mock_openËsz4ParseTest.test_parse_close_source..mock_openzxml.sax.saxutils.open)Z side_effectr^) rMrZpatchrPrYr!rr[rÚ assertTrueÚclosed)r4rrr5rpr6Útest_parse_close_sourceÇs (z!ParseTest.test_parse_close_sourcecCs>ddlm}tƒ}||t|dƒƒ| | ¡t|jdƒ¡dS)Nr)Ú parseStringr)rWrvrrr(rXrFrY)r4ÚsrvrZr5r5r6Úcheck_parseStringÖs zParseTest.check_parseStringcCs0d}|D]}| t|j|ƒ¡q| |j¡dS)Nr\)rxrFrY©r4rerEr5r5r6Útest_parseString_textÜszParseTest.test_parseString_textcCs°d}|D]*}| t|j|ƒ¡| t|j|dƒ¡q| t|jddƒ¡| t|jddƒ¡| t|jdƒ¡| t¡$| t|jddƒ¡Wdƒn1s¢0YdS)Nrgrirr^)rxrJrYr!rryr5r5r6Útest_parseString_bytesãs z ParseTest.test_parseString_bytesN)r?r@rArYrUr[rfrjrkrnrurxrzr{r5r5r5r6rQws * rQc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚMakeParserTestcCspddlm}|ƒ}ddlm}|ƒ}ddlm}|ƒ}ddlm}|ƒ}ddlm}|ƒ}ddlm}|ƒ}dS)Nr©r)rWr)r4rÚpr5r5r6Útest_make_parser2ôs      z MakeParserTest.test_make_parser2cCsHtdgƒtdƒtdhƒttdhƒƒtddiƒttdgƒƒdS)NÚmodule)r€©rÚ frozensetÚiterrTr5r5r6Útest_make_parser3s    z MakeParserTest.test_make_parser3cCs>tgƒttƒƒttƒƒttƒƒtiƒttgƒƒdSrR)rÚtupleÚsetr‚rƒrTr5r5r6Útest_make_parser4s    z MakeParserTest.test_make_parser4cCsRtddgƒtdƒtddhƒttddhƒƒtdddœƒttddgƒƒdS)NÚmodule1Úmodule2)rˆr‰rrTr5r5r6Útest_make_parser5s   z MakeParserTest.test_make_parser5N)r?r@rArr„r‡rŠr5r5r5r6r|ós  r|c@sleZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)Ú SaxutilsTestcCs| tdƒd¡dS)NúDonald Duck & CoúDonald Duck & Co©r(r rTr5r5r6Útest_escape_basic*szSaxutilsTest.test_escape_basiccCs| tdƒd¡dS)Núú<Donald Duck & Co>rŽrTr5r5r6Útest_escape_all-s ÿzSaxutilsTest.test_escape_allcCs| tdddiƒd¡dS©Nu Hei pÃ¥ degõÃ¥zåzHei på degrŽrTr5r5r6Útest_escape_extra1sÿzSaxutilsTest.test_escape_extracCs| tdƒd¡dS)NrrŒ©r(r rTr5r5r6Útest_unescape_basic6sz SaxutilsTest.test_unescape_basiccCs| tdƒd¡dS)Nr‘rr–rTr5r5r6Útest_unescape_all9s ÿzSaxutilsTest.test_unescape_allcCs| tdddiƒd¡dSr“r–rTr5r5r6Útest_unescape_extra=sÿz SaxutilsTest.test_unescape_extracCs| tdddiƒd¡dS)Nz &foo;z&foo;Zsplatr–rTr5r5r6Útest_unescape_amp_extraAsz$SaxutilsTest.test_unescape_amp_extracCs| tdƒd¡dS)NrŒz"Donald Duck & Co"©r(r rTr5r5r6Útest_quoteattr_basicEs ÿz!SaxutilsTest.test_quoteattr_basiccCs| tdƒd¡dS)NzIncludes "double" quotesz'Includes "double" quotes'r›rTr5r5r6Útest_single_quoteattrIs ÿz"SaxutilsTest.test_single_quoteattrcCs| tdƒd¡dS)NzIncludes 'single' quotesz"Includes 'single' quotes"r›rTr5r5r6Útest_double_quoteattrMs ÿz"SaxutilsTest.test_double_quoteattrcCs| tdƒd¡dS)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and "double" quotes"r›rTr5r5r6Útest_single_double_quoteattrQs ÿz)SaxutilsTest.test_single_double_quoteattrcCstdgƒ}dS)Nzxml.parsers.no_such_parserr})r4r~r5r5r6Útest_make_parserVszSaxutilsTest.test_make_parserN)r?r@rArr’r•r—r˜r™ršrœrržrŸr r5r5r5r6r‹(sr‹c@sleZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)ÚPrepareInputSourceTestcCsBtj|_t|jdƒ}| d¡Wdƒn1s40YdS)NrKzThis was read from a file.)rrÚfilerMrN)r4Útmpr5r5r6ÚsetUp^szPrepareInputSourceTest.setUpcCst |j¡dSrR)rrSr¢rTr5r5r6rUcszPrepareInputSourceTest.tearDowncCstdƒS©NsThis is a byte stream.)rrTr5r5r6Úmake_byte_streamfsz'PrepareInputSourceTest.make_byte_streamcCstdƒS©NzThis is a character stream.)rrTr5r5r6Úmake_character_streamisz,PrepareInputSourceTest.make_character_streamcCs&| |¡| | ¡|¡| ¡dSrR)ZassertIsNotNoner(ÚreadÚclose)r4ÚstreamÚcontentr5r5r6Ú checkContentls z#PrepareInputSourceTest.checkContentcCsBt|jƒ}| | ¡¡t|ƒ}| | ¡¡| | ¡d¡dSr§) rr¢ÚsetCharacterStreamr¨r Ú assertIsNoneÚ getByteStreamr­ÚgetCharacterStream©r4ÚsrcÚprepr5r5r6Útest_character_streamrs  ÿz,PrepareInputSourceTest.test_character_streamcCsBt|jƒ}| | ¡¡t|ƒ}| | ¡¡| | ¡d¡dSr¥) rr¢rlr¦r r¯r±r­r°r²r5r5r6Útest_byte_stream{s  ÿz'PrepareInputSourceTest.test_byte_streamcCs4t|jƒ}t|ƒ}| | ¡¡| | ¡d¡dS©NsThis was read from a file.)rr¢r r¯r±r­r°r²r5r5r6Útest_system_id…s   ÿz%PrepareInputSourceTest.test_system_idcCs,t|jƒ}| | ¡¡| | ¡d¡dSr·)r r¢r¯r±r­r°©r4r´r5r5r6Ú test_stringŽs   ÿz"PrepareInputSourceTest.test_stringcCs0tt|jƒƒ}| | ¡¡| | ¡d¡dSr·)r rr¢r¯r±r­r°r¹r5r5r6Útest_path_objects•s  ÿz(PrepareInputSourceTest.test_path_objectscCs.t| ¡ƒ}| | ¡¡| | ¡d¡dSr¥)r r¦r¯r±r­r°r¹r5r5r6Útest_binary_fileœs   ÿz'PrepareInputSourceTest.test_binary_filecCs.t| ¡ƒ}| | ¡¡| | ¡d¡dSr§)r r¨r¯r°r­r±r¹r5r5r6Útest_text_file¤s   ÿz%PrepareInputSourceTest.test_text_fileN)r?r@rAr¤rUr¦r¨r­rµr¶r¸rºr»r¼r½r5r5r5r6r¡\s   r¡c@sÌeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1S)2Ú XmlgenTestcCsP| ¡}t|ƒ}| ¡| di¡| d¡| ¡| | ¡| d¡¡dS)NrDú © ÚioclassrÚ startDocumentÚ startElementÚ endElementÚ endDocumentr(rXÚxml©r4rZÚgenr5r5r6Útest_xmlgen_basic°s  zXmlgenTest.test_xmlgen_basiccCsT| ¡}t|dd}| ¡| di¡| d¡| ¡| | ¡| d¡¡dS)NT©Zshort_empty_elementsrDúrÀrÇr5r5r6Útest_xmlgen_basic_emptyºs   z"XmlgenTest.test_xmlgen_basic_emptycCsZ| ¡}t|ƒ}| ¡| di¡| d¡| d¡| ¡| | ¡|  d¡¡dS)NrDÚhuheiúhuhei© rÁrrÂrÃÚ charactersrÄrÅr(rXrÆrÇr5r5r6Útest_xmlgen_contentÄs   zXmlgenTest.test_xmlgen_contentcCs^| ¡}t|dd}| ¡| di¡| d¡| d¡| ¡| | ¡|  d¡¡dS)NTrÊrDrÍrÎrÏrÇr5r5r6Útest_xmlgen_content_emptyÐs    z$XmlgenTest.test_xmlgen_content_emptycCs\| ¡}t|ƒ}| ¡| dd¡| di¡| d¡| ¡| | ¡|  d¡¡dS)NÚtestrYrDz) rÁrrÂZprocessingInstructionrÃrÄrÅr(rXrÆrÇr5r5r6Útest_xmlgen_piÜs    ÿzXmlgenTest.test_xmlgen_picCsZ| ¡}t|ƒ}| ¡| di¡| d¡| d¡| ¡| | ¡|  d¡¡dS)NrDz<huhei&rÏrÇr5r5r6Útest_xmlgen_content_escapeés    ÿz%XmlgenTest.test_xmlgen_content_escapecCs¢| ¡}t|ƒ}| ¡| dddi¡| dddi¡| d¡| dddi¡| d¡| dddi¡| d¡| d¡| ¡| | ¡| d¡¡dS) NrDÚaú"Úeú'z'"z zKrÀrÇr5r5r6Útest_xmlgen_attr_escapeös    ÿz"XmlgenTest.test_xmlgen_attr_escapecCstd}|D]f}| ¡}t||d}| ¡| dddi¡| d¡| d¡| ¡| | ¡|j d|d¡qdS)N© z iso-8859-15rrir_rar`zutf-32zutf-32bezutf-32lercrDrÖõ€u€rÏ©r4rerErZrÈr5r5r6Útest_xmlgen_encoding s     ÿzXmlgenTest.test_xmlgen_encodingcCsf| ¡}t|dd}| ¡| dddi¡| d¡| d¡| ¡| | ¡|j ddd¡dS)NÚasciircrDrÖrÜzrÏrÇr5r5r6Útest_xmlgen_unencodables     ÿz"XmlgenTest.test_xmlgen_unencodablecCsZ| ¡}t|ƒ}| ¡| di¡| d¡| d¡| ¡| | ¡|  d¡¡dS)NrDú ú © rÁrrÂrÃÚignorableWhitespacerÄrÅr(rXrÆrÇr5r5r6Útest_xmlgen_ignorable(s   z XmlgenTest.test_xmlgen_ignorablecCs^| ¡}t|dd}| ¡| di¡| d¡| d¡| ¡| | ¡|  d¡¡dS)NTrÊrDrárârãrÇr5r5r6Útest_xmlgen_ignorable_empty4s    z&XmlgenTest.test_xmlgen_ignorable_emptycCsŠd}|D]|}| ¡}t||d}| ¡| dddi¡| d |¡¡| d |¡¡| d¡| ¡|  |  ¡|j d|d¡qdS)NrÛrcrDrÖrÜráu€ ) rÁrrÂrÃrÐrHrärÄrÅr(rXrÆrÝr5r5r6Útest_xmlgen_encoding_bytes@s    ÿz%XmlgenTest.test_xmlgen_encoding_bytescCs| ¡}t|ƒ}| ¡| dt¡| tdfdi¡| ddi¡| dd¡| tdfd¡| d¡| ¡|  |  ¡|  dt¡¡dS)NÚns1rDúns1:doc©NZudocz/© rÁrrÂÚstartPrefixMappingr9ÚstartElementNSÚ endElementNSÚendPrefixMappingrÅr(rXrÆrÇr5r5r6Útest_xmlgen_nsRs   ÿÿzXmlgenTest.test_xmlgen_nscCs”| ¡}t|dd}| ¡| dt¡| tdfdi¡| ddi¡| dd¡| tdfd¡| d¡| ¡|  |  ¡|  dt¡¡dS)NTrÊrèrDrérêz)rërÇr5r5r6Útest_xmlgen_ns_emptyds    ÿÿzXmlgenTest.test_xmlgen_ns_emptycCsX| ¡}t|ƒ}| ¡| ddddi¡| dd¡| ¡| | ¡| d¡¡dS)N©NrÖrÖ©NÚbÚcz © rÁrrÂrírîrÅr(rXrÆrÇr5r5r6Útest_1463026_1vs zXmlgenTest.test_1463026_1cCs\| ¡}t|dd}| ¡| ddddi¡| dd¡| ¡| | ¡| d¡¡dS)NTrÊròrÖrórõz rörÇr5r5r6Útest_1463026_1_emptys  zXmlgenTest.test_1463026_1_emptycCsj| ¡}t|ƒ}| ¡| dd¡| ddi¡| dd¡| d¡| ¡| |  ¡|  d¡¡dS)NÚqux©rùrÖrÖz© rÁrrÂrìrírîrïrÅr(rXrÆrÇr5r5r6Útest_1463026_2Œs   zXmlgenTest.test_1463026_2cCsn| ¡}t|dd}| ¡| dd¡| ddi¡| dd¡| d¡| ¡| |  ¡|  d¡¡dS)NTrÊrùrúrÖzrûrÇr5r5r6Útest_1463026_2_empty™s    zXmlgenTest.test_1463026_2_emptycCsn| ¡}t|ƒ}| ¡| dd¡| ddddi¡| dd¡| d¡| ¡| |  ¡|  d¡¡dS)NÚmyrùrúrÖrórõz"rûrÇr5r5r6Útest_1463026_3¦s    ÿzXmlgenTest.test_1463026_3cCsr| ¡}t|dd}| ¡| dd¡| ddddi¡| dd¡| d¡| ¡| |  ¡|  d ¡¡dS) NTrÊrþrùrúrÖrórõzrûrÇr5r5r6Útest_1463026_3_empty´s     ÿzXmlgenTest.test_1463026_3_emptycCsXtdƒ}tƒ}| td¡| ¡}t|ƒ}| |¡| |¡| |  ¡|  d¡¡dS)NzbHelloTúMHello) rrÚ setFeaturerrÁrÚsetContentHandlerrVr(rXrÆ)r4Ztest_xmlÚparserrZrÈr5r5r6Ú test_5027_1Âsÿ    ÿÿzXmlgenTest.test_5027_1cCs–| ¡}t|ƒ}| ¡| dd¡| ddi¡ddi}| dd|¡| d ¡| dd¡| dd¡| d¡| ¡|  |  ¡|  d ¡¡dS) NrÖúhttp://example.com/ns)rÚg1r)z$http://www.w3.org/XML/1998/namespaceÚlangÚen)rÚg2r ÚHellor) rÁrrÂrìrírÐrîrïrÅr(rXrÆ)r4rZrÈZ lang_attrr5r5r6Ú test_5027_2Üs"      ÿÿzXmlgenTest.test_5027_2cCs(| ¡}dd„}||ƒ| |j¡dS)NcSs t|ƒ}| ¡| di¡dS)NrD)rrÂrÃ)ÚoutrÈr5r5r6Úfuncúsz+XmlgenTest.test_no_close_file..func)rÁZ assertFalsert)r4rZrr5r5r6Útest_no_close_fileøszXmlgenTest.test_no_close_filecCsz| ¡}t|ƒ}| dddi¡| d¡| d¡| dddi¡| d¡| | ¡| d¡t| d ¡ƒd…¡dS) NZfoorÖz1.0r Zbarrôz2.0z+HelloÚ) rÁrrÃrÐrÄr(rXrÆr,rÇr5r5r6Útest_xmlgen_fragments    ÿzXmlgenTest.test_xmlgen_fragmentN)r?r@rArÉrÌrÑrÒrÔrÕrÚrÞràrårærçrðrñr÷rørürýrÿrrr rrr5r5r5r6r¾¯s0              r¾c@seZdZeZddd„ZdZdS)ÚStringXmlgenTestr^cCs d||fSrBr5©r4rDrEr5r5r6rÆszStringXmlgenTest.xmlN)r^)r?r@rArrÁrÆràr5r5r5r6rs rc@seZdZeZddd„ZdS)ÚBytesXmlgenTestr^cCsd||f |d¡S)NrCrG©rHrr5r5r6rÆs ÿÿzBytesXmlgenTest.xmlN)r^)r?r@rArrÁrÆr5r5r5r6rsrc@seZdZGdd„deƒZdS)ÚWriterXmlgenTestc@s.eZdZejZdZdd„Zdd„Zdd„Z dS) zWriterXmlgenTest.ioclassFcCsdS)NTr5rTr5r5r6Úseekable$sz!WriterXmlgenTest.ioclass.seekablecCst|ƒSrR)r,rTr5r5r6Útell'szWriterXmlgenTest.ioclass.tellcCs d |¡S)Nó)ÚjoinrTr5r5r6rX+sz!WriterXmlgenTest.ioclass.getvalueN) r?r@rAr.ÚappendrNrtrrrXr5r5r5r6rÁ s rÁN)r?r@rAr.rÁr5r5r5r6rsrc@seZdZdd„Zddd„ZdS)ÚStreamWriterXmlgenTestcCs"tƒ}t d¡|dƒ}|j|_|S)NrßrG)rÚcodecsÚ getwriterrX)r4ÚrawÚwriterr5r5r6rÁ/szStreamWriterXmlgenTest.ioclassr^cCsd||f dd¡S©NrCrßrGrrr5r5r6rÆ5s ÿÿzStreamWriterXmlgenTest.xmlN)r^)r?r@rArÁrÆr5r5r5r6r.src@s(eZdZejdZdd„Zddd„ZdS) ÚStreamReaderWriterXmlgenTestz-codecscsDtjˆjddddd‰‡‡fdd„}ˆ |¡‡fdd „}|ˆ_ˆS) NrKrßrGr)rErLÚ bufferingcsˆ ¡t ˆj¡dSrR)rªrrSÚfnamer5©r4r r5r6Úcleanup?sz5StreamReaderWriterXmlgenTest.ioclass..cleanupcs@ˆ ¡tˆjdƒ}| ¡WdƒS1s20YdS©Nrh)rªrMÚnamer©)rO)r r5r6rXCsz6StreamReaderWriterXmlgenTest.ioclass..getvalue)rrMr$Ú addCleanuprX)r4r&rXr5r%r6rÁ<s ÿ  z$StreamReaderWriterXmlgenTest.ioclassr^cCsd||f dd¡Sr!rrr5r5r6rÆKs ÿÿz StreamReaderWriterXmlgenTest.xmlN)r^)r?r@rArrr$rÁrÆr5r5r5r6r"9s r"s, c@seZdZdd„ZdS)ÚXMLFilterBaseTestcCsptƒ}t|ƒ}tƒ}| |¡| ¡| di¡| d¡| d¡| d¡|  ¡|  |  ¡t d¡dS)NrDr¬ráscontent ) rrr rrÂrÃrÐrärÄrÅr(rXÚstart)r4rZrÈÚfilterr5r5r6Útest_filter_basicSs     z#XMLFilterBaseTest.test_filter_basicN)r?r@rAr-r5r5r5r6r*Rsr*rhc@seZdZdd„Zdd„Zedd„ƒZdd„Zd d „ZGd d „d ƒZ Gd d„dƒZ dd„Z dd„Z dd„Z Gdd„dƒZdd„Zdd„ZGdd„deƒZdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zed)d*„ƒZd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zed7d8„ƒZ d9S):ÚExpatReaderTestcCsftƒ}tƒ}t|ƒ}| |¡ttdƒ}| |¡Wdƒn1sH0Y| | ¡t ¡dSr'© rrrrrMÚ TEST_XMLFILErVr(rXÚ xml_test_out©r4rrZÚxmlgenrOr5r5r6Útest_expat_binary_fileos  (z&ExpatReaderTest.test_expat_binary_filecCsjtƒ}tƒ}t|ƒ}| |¡ttddd}| |¡Wdƒn1sL0Y| | ¡t ¡dS©NZrtr^rcr/r2r5r5r6Útest_expat_text_filezs (z$ExpatReaderTest.test_expat_text_filecCsbtj}t t|¡| tj|¡tƒ}tƒ}t |ƒ}|  |¡|  t |dƒ¡|  | ¡t¡dSr')rÚTESTFN_UNICODEÚshutilÚcopyfiler0r)rSrrrrrVrMr(rXr1©r4r$rrZr3r5r5r6Útest_expat_binary_file_nonascii…s  z/ExpatReaderTest.test_expat_binary_file_nonasciicCspt t¡}tƒ}tƒ}t|ƒ}| |¡t|dƒ}| |¡Wdƒn1sR0Y|  |  ¡t ¡dSr') ÚosÚfsencoder0rrrrrMrVr(rXr1)r4r$rrZr3rOr5r5r6Ú!test_expat_binary_file_bytes_name”s   (z1ExpatReaderTest.test_expat_binary_file_bytes_namec Cs˜tƒ}tƒ}t|ƒ}| |¡ttdƒL}t| ¡ddd}| |¡Wdƒn1s\0YWdƒn1sz0Y| |  ¡t ¡dS)NrhF)Úclosefd) rrrrrMr0ÚfilenorVr(rXr1)r4rrZr3rOÚf2r5r5r6Útest_expat_binary_file_int_name s  Fz/ExpatReaderTest.test_expat_binary_file_int_namec@s$eZdZdd„Zdd„Zdd„ZdS)zExpatReaderTest.TestDTDHandlercCsg|_g|_dSrR)Ú _notationsÚ _entitiesrTr5r5r6Ú__init__°sz'ExpatReaderTest.TestDTDHandler.__init__cCs|j |||f¡dSrR)rCr)r4r(ÚpublicIdÚsystemIdr5r5r6Ú notationDecl´sz+ExpatReaderTest.TestDTDHandler.notationDeclcCs|j ||||f¡dSrR)rDr)r4r(rFrGZndatar5r5r6ÚunparsedEntityDecl·sz1ExpatReaderTest.TestDTDHandler.unparsedEntityDeclN)r?r@rArErHrIr5r5r5r6ÚTestDTDHandler®srJc@seZdZdd„Zdd„ZdS)z"ExpatReaderTest.TestEntityRecordercCs g|_dSrR)ÚentitiesrTr5r5r6rE¼sz+ExpatReaderTest.TestEntityRecorder.__init__cCs.|j ||f¡tƒ}| |¡| |¡|SrR)rKrrZ setPublicIdÚ setSystemId)r4rFrGÚsourcer5r5r6Ú resolveEntity¿s   z0ExpatReaderTest.TestEntityRecorder.resolveEntityN)r?r@rArErNr5r5r5r6ÚTestEntityRecorder»srOcCsvtƒ}| ¡}| |¡| d¡| d¡| d¡| d¡| d¡| ¡| |jdg¡| |jdg¡dS)Nú zW ú]> r¿)ÚGIFz;-//CompuServe//NOTATION Graphics Interchange Format 89a//ENN)ZimgNz expat.gifrR)rrJZ setDTDHandlerÚfeedrªr(rCrD)r4rÚhandlerr5r5r6Útest_expat_dtdhandlerÆs      ÿz%ExpatReaderTest.test_expat_dtdhandlercCsz| tjj¡tƒ}| td¡| ¡}| |¡|  t ¡|  d¡Wdƒn1s\0Y|  |j dg¡dS)NTú8 )Nzunsupported://non-existing)r)ÚurllibZrequestÚ urlcleanuprrrrOÚsetEntityResolverr!rrSr(rK©r4rZresolverr5r5r6Útest_expat_external_dtd_enabledÖs   ÿ"ÿz/ExpatReaderTest.test_expat_external_dtd_enabledcCsFtƒ}| ¡}| |¡| d¡| d¡| ¡| |jg¡dS)NrVz)rrOrYrSrªr(rKrZr5r5r6Útest_expat_external_dtd_defaultçs ÿ z/ExpatReaderTest.test_expat_external_dtd_defaultc@seZdZdd„ZdS)z"ExpatReaderTest.TestEntityResolvercCstƒ}| tdƒ¡|S)Ns )rrlr)r4rFrGÚinpsrcr5r5r6rN÷sz0ExpatReaderTest.TestEntityResolver.resolveEntityN)r?r@rArNr5r5r5r6ÚTestEntityResolverõsr^cCs|tƒ}| td¡| | ¡¡tƒ}| t|ƒ¡| d¡| d¡| d¡| d¡|  ¡|  |  ¡t d¡dS)NTrPú# rQú&test;s) rrrrYr^rrrrSrªr(rXr+©r4rrZr5r5r6Ú!test_expat_entityresolver_enabledüs      ÿz1ExpatReaderTest.test_expat_entityresolver_enabledcCs‚tƒ}| | t¡d¡| | ¡¡tƒ}| t|ƒ¡|  d¡|  d¡|  d¡|  d¡|  ¡| |  ¡t d¡dS)NFrPr_rQr`ó ) rr(Z getFeaturerrYr^rrrrSrªrXr+rar5r5r6Ú!test_expat_entityresolver_default s     ÿz1ExpatReaderTest.test_expat_entityresolver_defaultc@seZdZdd„Zdd„ZdS)zExpatReaderTest.AttrGatherercCs ||_dSrR©Ú_attrs)r4r(rr5r5r6rà sz)ExpatReaderTest.AttrGatherer.startElementcCs ||_dSrRre)r4r(Zqnamerr5r5r6rí#sz+ExpatReaderTest.AttrGatherer.startElementNSN)r?r@rArÃrír5r5r5r6Ú AttrGatherersrgcCs:tƒ}| ¡}| |¡| d¡| ¡| |j¡dS)NrË)rrgrrSrªr7rf©r4rÚgatherr5r5r6Útest_expat_attrs_empty&s   z&ExpatReaderTest.test_expat_attrs_emptycCs:tƒ}| ¡}| |¡| d¡| ¡| |j¡dS)Nz)rrgrrSrªr>rfrhr5r5r6Útest_expat_attrs_wattr0s   z&ExpatReaderTest.test_expat_attrs_wattrcCs<tdƒ}| ¡}| |¡| d¡| ¡| |j¡dS)Nr;rË)rrgrrSrªr:rfrhr5r5r6Útest_expat_nsattrs_empty:s   z(ExpatReaderTest.test_expat_nsattrs_emptycCs,tdƒ}| ¡}| |¡| dt¡| ¡|j}| | ¡d¡| |  ¡tdfg¡|  |  ¡gkpx|  ¡dgk¡| t |ƒd¡|  tdf|¡| | tdf¡d¡| | tdfd¡d¡| t| ¡ƒtdfdfg¡| t| ¡ƒdg¡| | tdf¡d¡| |tdfd¡dS)Nr;z"rr8r<r )rrgrrSr9rªrfr(r)r*rsr+r,r=r0r.r1r2r#)r4rrirr5r5r6Útest_expat_nsattrs_wattrDs&  ÿz(ExpatReaderTest.test_expat_nsattrs_wattrcCs<tƒ}tƒ}t|ƒ}| |¡| t¡| | ¡t¡dSrR) rrrrrVr0r(rXr1©r4rrZr3r5r5r6Útest_expat_inpsource_filename]s   z-ExpatReaderTest.test_expat_inpsource_filenamecCs@tƒ}tƒ}t|ƒ}| |¡| ttƒ¡| | ¡t ¡dSrR) rrrrrVrr0r(rXr1rnr5r5r6Útest_expat_inpsource_sysidgs  z*ExpatReaderTest.test_expat_inpsource_sysidcCs`tj}t t|¡| tj|¡tƒ}tƒ}t |ƒ}|  |¡|  t |ƒ¡|  | ¡t¡dSrR)rr7r8r9r0r)rSrrrrrVrr(rXr1r:r5r5r6Ú#test_expat_inpsource_sysid_nonasciiqs  z3ExpatReaderTest.test_expat_inpsource_sysid_nonasciicCsvtƒ}tƒ}t|ƒ}| |¡tƒ}ttdƒ$}| |¡| |¡Wdƒn1sX0Y|  |  ¡t ¡dSr') rrrrrrMr0rlrVr(rXr1©r4rrZr3r]rOr5r5r6Ú test_expat_inpsource_byte_stream€s   (z0ExpatReaderTest.test_expat_inpsource_byte_streamcCsztƒ}tƒ}t|ƒ}| |¡tƒ}ttddd$}| |¡| |¡Wdƒn1s\0Y|  |  ¡t ¡dSr5) rrrrrrMr0r®rVr(rXr1rrr5r5r6Ú%test_expat_inpsource_character_streams  (z5ExpatReaderTest.test_expat_inpsource_character_streamcCsRtƒ}t|ƒ}tƒ}| |¡| d¡| d¡| ¡| | ¡td¡dS)Núúrc) rrrrrSrªr(rXr+©r4rZr3rr5r5r6Útest_expat_incrementalœs   z&ExpatReaderTest.test_expat_incrementalcCstƒ}t|ƒ}tƒ}| |¡| d¡| d¡tƒ}t|ƒ}| |¡| ¡| d¡| d¡| d¡| ¡| | ¡t d¡dS)NruÚtextrvstext) rrrrrSÚresetrªr(rXr+rwr5r5r6Útest_expat_incremental_reset¨s       z,ExpatReaderTest.test_expat_incremental_resetcCsntƒ}t|ƒ}tƒ}| |¡| d¡| d¡| ¡| | ¡d¡| | ¡d¡| |  ¡d¡dS)Nrurvr;) rrrrrSrªr(Ú getSystemIdÚ getPublicIdÚ getLineNumberrwr5r5r6Útest_expat_locator_noinfo¿s   z)ExpatReaderTest.test_expat_locator_noinfocCsLtƒ}t|ƒ}tƒ}| |¡| t¡| | ¡t¡| | ¡d¡dSrR) rrrrrVr0r(r|r}rwr5r5r6Útest_expat_locator_withinfoÍs  z+ExpatReaderTest.test_expat_locator_withinfocCsltj}t t|¡| tj|¡tƒ}t|ƒ}t ƒ}|  |¡|  |¡|  |  ¡|¡|  | ¡d¡dSrR)rr7r8r9r0r)rSrrrrrVr(r|r})r4r$rZr3rr5r5r6Ú$test_expat_locator_withinfo_nonascii×s   z4ExpatReaderTest.test_expat_locator_withinfo_nonasciiN)!r?r@rAr4r6Úrequires_nonascii_filenamesr;r>rBrJrOrUr[r\r^rbrdrrgrjrkrlrmrorprqrsrtrxr{rr€rr5r5r5r6r.ks>               r.c@s2eZdZdd„Zdd„Zdd„ZGdd„dƒZd S) ÚErrorReportingTestc Cs„tƒ}| tƒ¡tƒ}| tdƒ¡d}| |¡z| |¡| ¡Wn4t y~}z|  |  ¡|¡WYd}~n d}~00dS)Nsz a file name) rrrrrlrrLrVZfailrr(r|)r4rrMr(rØr5r5r6Útest_expat_inpsource_locationîs    z0ErrorReportingTest.test_expat_inpsource_locationcCsJtƒ}| tƒ¡| t|jtdƒ¡| | ¡d¡| |  ¡d¡dS)Nzér;) rrrr!rrVrr(ÚgetColumnNumberr~)r4rr5r5r6Útest_expat_incompleteûs  z(ErrorReportingTest.test_expat_incompletecCsdttdd| dd¡ƒƒttdd| dd¡ƒƒttdd| dd¡ƒƒttdd| dd¡ƒƒdS)NÚmessager;)ÚstrrÚ DummyLocatorrTr5r5r6Útest_sax_parse_exception_strs ÿ ÿ ÿ ÿz/ErrorReportingTest.test_sax_parse_exception_strc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) zErrorReportingTest.DummyLocatorcCs||_||_dSrR)Ú_linenoÚ_colno)r4ÚlinenoÚcolnor5r5r6rEsz(ErrorReportingTest.DummyLocator.__init__cCsdS)NZpubidr5rTr5r5r6r}sz+ErrorReportingTest.DummyLocator.getPublicIdcCsdS)NZsysidr5rTr5r5r6r|sz+ErrorReportingTest.DummyLocator.getSystemIdcCs|jSrR)rŒrTr5r5r6r~sz-ErrorReportingTest.DummyLocator.getLineNumbercCs|jSrR)rrTr5r5r6r†"sz/ErrorReportingTest.DummyLocator.getColumnNumberN)r?r@rArEr}r|r~r†r5r5r5r6rŠs rŠN)r?r@rAr„r‡r‹rŠr5r5r5r6rƒís rƒc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú XmlReaderTestcCs| tiƒ¡dSrR)r7rrTr5r5r6Útest_attrs_empty.szXmlReaderTest.test_attrs_emptycCs| tddiƒ¡dS)Nrr<)r>rrTr5r5r6Útest_attrs_wattr1szXmlReaderTest.test_attrs_wattrcCs| tiiƒ¡dSrR)r:rrTr5r5r6Útest_nsattrs_empty4sz XmlReaderTest.test_nsattrs_emptycCsZttdfditdfdiƒ}| | ¡d¡| | ¡tdfg¡| | ¡dg¡| t|ƒd¡| tdf|¡| t|  ¡ƒtdfg¡| |  tdf¡d¡| |  tdfd¡d¡| t|  ¡ƒtdfdfg¡| t|  ¡ƒdg¡| |  tdf¡d¡| | d¡d¡| | d¡tdf¡| |tdfd¡| | tdf¡d¡dS)Nrr<r8r;r )rr9r(r)r*r+r,r=r.r/r0r1r2r#r$r%r&r3r5r5r6Útest_nsattrs_wattr7s$  ÿz XmlReaderTest.test_nsattrs_wattrN)r?r@rAr‘r’r“r”r5r5r5r6r+src Cs"tttttttttt t t t ƒ dSrR) rr|rQr‹r¡rrrrr"r.rƒrr5r5r5r6Ú test_mainLsõr•Ú__main__)N).).)SrWrrrrrZunittestrZSkipTestZxml.sax.saxutilsrr r r r r Zxml.sax.expatreaderrZxml.sax.handlerrrZxml.sax.xmlreaderrrrÚiorrrZos.pathr<r8Z urllib.errorrZurllib.requestrWrÓrZ test.supportrrrrr0ZTEST_XMLFILE_OUTrHÚUnicodeEncodeErrorZsupports_nonascii_filenamesÚpathÚsupports_unicode_filenamesr7ZTESTFN_ENCODINGÚ UnicodeErrorÚ TypeErrorZ skipUnlessr‚r9ZTestCaserrFrJrPrQr|r‹r¡r¾rrrrr"r+r*rMrOr©r1r.rƒrr•r?r5r5r5r6Ús‚            þ5   |54Sc  (>!