From 4191d5ff45015c6fac1db0bbdd7b3fcaff234424 Mon Sep 17 00:00:00 2001
From: Leonard Richardson
<<sacré bleu!>>
" expected = u"<<sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>>".encode("utf-8") -- cgit v1.2.3 From 09c9ca430e49449cc39cbeb7556230cb62df9b19 Mon Sep 17 00:00:00 2001 From: Leonard Richardsonfoo
' + soup = BeautifulSoup(markup) + doctype = soup.contents[0] + self.assertEquals(doctype.__class__, Doctype) + self.assertEquals(doctype, 'xsl:stylesheet SYSTEM "htmlent.dtd"') + self.assertEquals(str(soup)[:len(doctype_str)], doctype_str) + self.assertEquals(soup.p.contents[0], 'foo') + + def test_namespaced_public_doctype(self): + doctype_str = '' + markup = doctype_str + 'foo
' + soup = BeautifulSoup(markup) + doctype = soup.contents[0] + self.assertEquals(doctype.__class__, Doctype) + self.assertEquals(doctype, 'xsl:stylesheet PUBLIC "htmlent.dtd"') + self.assertEquals(str(soup)[:len(doctype_str)], doctype_str) + self.assertEquals(soup.p.contents[0], 'foo') + # Tests below this line need work. - #def test_doctype(self): - # xml = 'foo' - # self.assertSoupEquals(xml) + + def test_doctype(self): + doctype_str = ' + markup = doctype_str + 'foo
' + self.assertSoupEquals(xml) def test_entities_converted_on_the_way_out(self): text = "<<sacré bleu!>>
" @@ -274,6 +296,9 @@ class TestLXMLBuilderInvalidMarkup(SoupTest): markup = "onetwo
" self.assertSoupEquals(markup) + #def testJunkInDeclaration(self): + # self.assertSoupEquals('a', 'a') + def test_cdata_where_it_doesnt_belong(self): #CDATA sections are ignored. markup = "foo
' soup = BeautifulSoup(markup) doctype = soup.contents[0] self.assertEquals(doctype.__class__, Doctype) - self.assertEquals(doctype, 'xsl:stylesheet SYSTEM "htmlent.dtd"') + self.assertEquals(doctype, doctype_fragment) self.assertEquals(str(soup)[:len(doctype_str)], doctype_str) - self.assertEquals(soup.p.contents[0], 'foo') - def test_namespaced_public_doctype(self): - doctype_str = '' - markup = doctype_str + 'foo
' - soup = BeautifulSoup(markup) - doctype = soup.contents[0] - self.assertEquals(doctype.__class__, Doctype) - self.assertEquals(doctype, 'xsl:stylesheet PUBLIC "htmlent.dtd"') - self.assertEquals(str(soup)[:len(doctype_str)], doctype_str) + # Make sure that the doctype was correctly associated with the + # parse tree and that the rest of the document parsed. self.assertEquals(soup.p.contents[0], 'foo') - # Tests below this line need work. + def test_doctype(self): + # Test a normal HTML doctype you'll commonly see in a real document. + self._test_doctype( + 'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"') + def test_namespaced_system_doctype(self): + # Test a namespaced doctype with a system id. + self._test_doctype('xsl:stylesheet SYSTEM "htmlent.dtd"') + + def test_namespaced_system_doctype(self): + # Test a namespaced doctype with a public id. + self._test_doctype('xsl:stylesheet PUBLIC "htmlent.dtd"') + + # Tests below this line need work. - def test_doctype(self): - doctype_str = ' - markup = doctype_str + 'foo
' - self.assertSoupEquals(xml) def test_entities_converted_on_the_way_out(self): text = "<<sacré bleu!>>
" -- cgit v1.2.3 From a011baa0e95e3d42d647cdf68164ba1c30314492 Mon Sep 17 00:00:00 2001 From: Leonard Richardsonfoo
' - soup = BeautifulSoup(markup) + soup = self.soup(markup) doctype = soup.contents[0] self.assertEquals(doctype.__class__, Doctype) self.assertEquals(doctype, doctype_fragment) -- cgit v1.2.3 From bc97bb3a83ee9fb4c8e31d11069ccf1cda61d4ff Mon Sep 17 00:00:00 2001 From: Leonard Richardsononetwo
" self.assertSoupEquals(markup) - #def testJunkInDeclaration(self): - # self.assertSoupEquals('a', 'a') + def test_nonsensical_declaration(self): + # Declarations that don't make any sense are ignored. + self.assertSoupEquals('a
', "a
") def test_cdata_where_it_doesnt_belong(self): #CDATA sections are ignored. -- cgit v1.2.3