diff options
author | Walter Doerwald <walter@livinglogic.de> | 2012-01-29 11:49:02 +0100 |
---|---|---|
committer | Walter Doerwald <walter@livinglogic.de> | 2012-01-29 11:49:02 +0100 |
commit | 41ee92c664b1be298fb98d74ca4aed59a6dda513 (patch) | |
tree | ab1dc2856c1a770f7104f308d1a4b7f7299be23f | |
parent | 53c2c6c82a05259298b0f5c7ac9e96f96621d004 (diff) | |
download | python-lxml-41ee92c664b1be298fb98d74ca4aed59a6dda513.tar.gz |
Add tests for the DTD attributes name, systemID and externalID.
-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() |