diff options
-rw-r--r-- | src/lxml/tests/test_dtd.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lxml/tests/test_dtd.py b/src/lxml/tests/test_dtd.py index 976b62b9..653f4964 100644 --- a/src/lxml/tests/test_dtd.py +++ b/src/lxml/tests/test_dtd.py @@ -129,6 +129,10 @@ class ETreeDtdTestCase(HelperTestCase): def test_dtd_attrs(self): dtd = etree.DTD(fileInTestDir("test.dtd")) + # Test systemID attribute + self.assert_(dtd.systemID.endswith("test.dtd")) + + # Test elements and their attributes a = dtd.elements()[0] self.assertEqual(a.name, "a") self.assertEqual(a.type, "element") @@ -147,11 +151,31 @@ class ETreeDtdTestCase(HelperTestCase): self.assertEqual(b.type, "empty") self.assertEqual(b.content, None) + # Test entities and their attributes c = dtd.entities()[0] self.assertEqual(c.name, "c") self.assertEqual(c.orig, "*") self.assertEqual(c.content, "*") + # Test name and systemID attributes + root = etree.XML(_bytes(''' + <!DOCTYPE a SYSTEM "none" [ + <!ELEMENT a EMPTY> + ]> + <a/> + ''')) + dtd = etree.ElementTree(root).docinfo.internalDTD + self.assertEqual(dtd.name, "a") + + parser = etree.XMLParser(dtd_validation=True) + xml = '<!DOCTYPE a SYSTEM "test.dtd"><a><b/></a>' + root = etree.fromstring(xml, parser=parser, + base_url=fileInTestDir("test.xml")) + + dtd = root.getroottree().docinfo.internalDTD + self.assertEqual(dtd.name, "a") + self.assertEqual(dtd.systemID, "test.dtd") + def test_suite(): suite = unittest.TestSuite() |