o !bF0@sddlZddlmZmZmZddlmZmZmZm Z ddl m Z m Z ddl mZddlmZGdddejZGd d d ejZd d Zed krPejd ddSdS)N)AttrsQNameStream) XMLParser HTMLParser ParseErrorET)StringIOBytesIO) doctest_suite) ElementTreec@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)XMLParserTestCasecCLd}ttt|}|d\}}}|tj||d||d|dSNzfoo barzfoo barNrlistrr assertEqualrTEXTselftexteventskinddataposr4/usr/lib/python3/dist-packages/genshi/tests/input.pytest_text_node_pos_single_line  z0XMLParserTestCase.test_text_node_pos_single_linecCr)Nfoo barrfoo bar)Nrrrrrrtest_text_node_pos_multi_line  z/XMLParserTestCase.test_text_node_pos_multi_linecCsxd}ttt|}|d\}}}|tj||\}}|d||d|d|d|d|d|ddS) Nz)relem)titlebaz)idfoor)classbar)rrr rrSTART)rrrrrrtagattribrrrtest_element_attribute_order)s z.XMLParserTestCase.test_element_attribute_ordercC@d}ttt|}|d\}}}|tj||d|dSNu
ru–rrrrrtest_unicode_input4 z$XMLParserTestCase.test_unicode_inputcCJdd}ttt|dd}|d\}}}|tj||d|dSNu
ö
iso-8859-1encodingröencoderrr rrrrrrrtest_latin1_encoded; z%XMLParserTestCase.test_latin1_encodedcCsFdd}ttt|}|d\}}}|tj||d|dS)NuK
ö
r9r.r<r=rrrrtest_latin1_encoded_xmldeclBsz-XMLParserTestCase.test_latin1_encoded_xmldeclcCr3)Nz   r. rrrrrtest_html_entity_with_dtdKs z+XMLParserTestCase.test_html_entity_with_dtdcCr3)Nz rrBrrrrrtest_html_entity_without_dtdUr6z.XMLParserTestCase.test_html_entity_without_dtdcCfd}ttt|}|d\}}}|tj||d|dd|d\}}}|tj|dS)Nz

rrBrr()rrr rrr/getENDrrrrtest_html_entity_in_attribute\z/XMLParserTestCase.test_html_entity_in_attributecC"d}tt|}|tt|dS)Nz &junk; rr assertRaisesrrrrrrrrtest_undefined_entity_with_dtdes z0XMLParserTestCase.test_undefined_entity_with_dtdcCrJ)Nz&junk;rKrMrrr!test_undefined_entity_without_dtdms z3XMLParserTestCase.test_undefined_entity_without_dtdN)__name__ __module__ __qualname__r r%r2r5r?rArCrDrHrNrOrrrrr s     r c@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)S)*HTMLParserTestCasecCrrrrr rrrrrrrr ur!z1HTMLParserTestCase.test_text_node_pos_single_linecCr)Nr"rr#rrTrrrrr%}r&z0HTMLParserTestCase.test_text_node_pos_multi_linecCr7r8)r>rrr rrrrrrrtest_input_encoding_textr@z+HTMLParserTestCase.test_input_encoding_textcCsTdd}ttt|dd}|d\}\}}}|tj||d|ddS)Nu

r9r:rr<r()r>rrr rrr/rF)rrrrr0r1rrrrtest_input_encoding_attributes z0HTMLParserTestCase.test_input_encoding_attributecCr3r4rTrrrrr5r6z%HTMLParserTestCase.test_unicode_inputcCrE)Nz

rrBrr()rrr rrr/rFrGrrrrrHrIz0HTMLParserTestCase.test_html_entity_in_attributecCr3)Nz

 

rrBrTrrrrtest_html_entity_in_textr6z+HTMLParserTestCase.test_html_entity_in_textcCPd}ttt|}|d\}\}}}|tj||d||d|dS)Nzrphpz echo "Foobar"rrr rrPIrrrrtargetrrrrrtest_processing_instruction  z.HTMLParserTestCase.test_processing_instructioncCrX)Nzrr+rZr\rrr%test_processing_instruction_no_data_1r_z8HTMLParserTestCase.test_processing_instruction_no_data_1cCszd}ttt|}|d\}\}}}|tj||d||d||d\}\}}}|d||d|dS)Nz...r experimentr`r.z /experimentrZr\rrr%test_processing_instruction_no_data_2s   z8HTMLParserTestCase.test_processing_instruction_no_data_2cC^d}ttt|}|d\}\}}}}|tj||d||d||d|dS)Nzr1.0r$rrr rrXML_DECLrrrrversionr; standalonerrrr test_xmldecl  zHTMLParserTestCase.test_xmldeclcCs^d}ttt|}|d\}\}}}}|tj||d||d||d|dS)Nz/rreutf-8r$rfrhrrrtest_xmldecl_encodingrlz(HTMLParserTestCase.test_xmldecl_encodingcCrd)Nz/rrerrfrhrrrtest_xmldecl_standalonerlz*HTMLParserTestCase.test_xmldecl_standalonecCrX)NzrrYzecho "Foobar" ?rZr\rrr*test_processing_instruction_trailing_qmarkr_z=HTMLParserTestCase.test_processing_instruction_trailing_qmarkcCsd}ttt|}|dt||tjdf|ddd|tjdf|ddd|tjdf|ddd|tjd f|d dd|tjd f|d dddS) NzFoobarspanrrr.brrFoobarrurs rrr rlenrr/rrGrMrrrtest_out_of_order_tags1s"z*HTMLParserTestCase.test_out_of_order_tags1cCsdd}ttt|dd}|dt||tjdtdgff|ddd|tjd f|d dd|tjd f|ddd|tj d f|d dd|tj df|ddd|tj df|ddd|tj df|ddddS)Nz-Foobarrmr:rs)r,r)rr.rtr)irrvrwr}rxrurqr) r>rrr rrzrr/rrrGrMrrrtest_out_of_order_tags2s "z*HTMLParserTestCase.test_out_of_order_tags2cCsdd}ttt|dd}|dt||tjdf|ddd|tjdf|d dd|tjd f|ddd|tj d f|d dd|tj d f|ddddS)NzFoobarrmr:rqrrrr.rtrrvrurwrsrx) r>rrr rrzrr/rrGrMrrrtest_out_of_order_tags3s "z*HTMLParserTestCase.test_out_of_order_tags3cCsd}ttt|}|dt||tjdf|ddd|tjdf|ddd|tjdf|ddddS) Nz'rwrrrr.'rrsryrMrrrtest_hex_charref s "z#HTMLParserTestCase.test_hex_charrefcCsPd}ttt|ddd}|dt||tj|f|ddddS)Nuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaærmr:rrr.)rrr r>rrzrrrMrrr*test_multibyte_character_on_chunk_boundarys "z=HTMLParserTestCase.test_multibyte_character_on_chunk_boundarycCstd}tt|}|dt||tjtdt tddfgff|ddd|tj df|d dd|tjtd t ff|ddd|tj d f|d dd|tj td f|d dd|tj tdf|ddddS)Nz;
textsome more text
rdivr,test_divrr.rrrszsome more textrwrxrq) r fromstringrrrrzrr/rrrrG)rtreerrrr)test_convert_ElementTree_to_markup_streams ("&zs   ]7