ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ AXXc@sdZddlZyddlmZeZWnek rGZeZnXddl m Z ddl m Z m Z mZee dde e fdYZdS( sDTests to ensure that the html5lib tree builder generates good trees.iN(tHTML5TreeBuilder(t SoupStrainer(tHTML5TreeBuilderSmokeTesttSoupTesttskipIfs?html5lib seems not to be present, not testing its tree builder.tHTML5LibBuilderSmokeTestcBsweZdZedZdZdZdZdZdZ dZ dZ d Z d Z d ZRS( s"See ``HTML5TreeBuilderSmokeTest``.cCstS(N(R(tself((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pytdefault_builderscCstd}d}tjdt}|j|d|}WdQX|j|j|j||jdt |dj kdS(Ntbs

A bold statement.

trecordt parse_onlys4the html5lib tree builder doesn't support parse_onlyi( Rtwarningstcatch_warningstTruetsoupt assertEqualtdecodet document_fort assertTruetstrtmessage(RtstrainertmarkuptwR((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyttest_soupstrainers cCs'd}|j|d|jddS(s8html5lib inserts tags where other parsers don't.s[s
Here's another table:
foo
Here's another table:
foo
s{
Foo
Bar
Baz
N(tassertSoupEquals(RR((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyttest_correctly_nested_tables(s cCs2d}|j|}|jd|jjdS(Nsy

foo

s

foo

(RRtptencode(RRR((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyt(test_xml_declaration_followed_by_doctype<s cCsQd}|j|}|jd|jj|jdt|jddS(Ns%

foo

bar

uD

foo

bar

iR(RRtbodyRtlentfind_all(RRR((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyttest_reparented_markupJscCsQd}|j|}|jd|jj|jdt|jddS(Ns&

foo

bar

uE

foo

bar

iR(RRRRRR (RRR((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyt+test_reparented_markup_ends_with_whitespaceQscCsFd}|j|}|jdd\}}|jd\}}dS(sVerify that we keep the two whitespace nodes in this document distinct when reparenting the adjacent tags. s,
tstringt ttbodyN(RR (RRRtspace1tspace2ttbody1ttbody2((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyt<test_reparented_markup_containing_identical_whitespace_nodesWs cCsd}|j|}|j}|jd|j|jdd}|jddd}|j||j|j||jdS(NsF
aftermath

aftermath

ttargetR#t aftermathi(RtnoscriptRt next_elementtfindR tprevious_element(RRRR-R+tfinal_aftermath((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyt*test_reparented_markup_containing_childrenbs cCsd}|j|}dS(s(Processing instructions become comments.sN(R(RRR((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyttest_processing_instructionrscCs>d}|j|}|jd\}}|j||dS(Ns

ta(RR R(RRRta1ta2((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyttest_cloned_multivalue_nodexs cCs2d}|j|}|jd|jjdS(NsAu>A
(RRRR(RRR((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyttest_foster_parentings(t__name__t __module__t__doc__tpropertyRRRRR!R"R*R2R3R7R8(((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyRs       (R;R t bs4.builderRR tHTML5LIB_PRESENTt ImportErrortetFalset bs4.elementRt bs4.testingRRRR(((s;/usr/lib/python2.7/site-packages/bs4/tests/test_html5lib.pyts