[Lxml-checkins] r53794 - lxml/branch/lxml-2.0/src/lxml/tests

scoder at codespeak.net scoder at codespeak.net
Tue Apr 15 20:22:03 CEST 2008


Author: scoder
Date: Tue Apr 15 20:22:03 2008
New Revision: 53794

Modified:
   lxml/branch/lxml-2.0/src/lxml/tests/test_etree.py
Log:
trunk merge -c 53793 (test case)

Modified: lxml/branch/lxml-2.0/src/lxml/tests/test_etree.py
==============================================================================
--- lxml/branch/lxml-2.0/src/lxml/tests/test_etree.py	(original)
+++ lxml/branch/lxml-2.0/src/lxml/tests/test_etree.py	Tue Apr 15 20:22:03 2008
@@ -533,6 +533,28 @@
         root = tree.getroot()
         self.assertEquals(root.text, test_url)
 
+    def test_resolve_filename_dtd(self):
+        parse = self.etree.parse
+        parser = self.etree.XMLParser(attribute_defaults=True)
+        assertEqual = self.assertEqual
+        test_url = u"__nosuch.dtd"
+
+        class MyResolver(self.etree.Resolver):
+            def resolve(self, url, id, context):
+                assertEqual(url, test_url)
+                return self.resolve_filename(
+                    fileInTestDir('test.dtd'), context)
+
+        parser.resolvers.add(MyResolver())
+
+        xml = u'<!DOCTYPE a SYSTEM "%s"><a><b/></a>' % test_url
+        tree = parse(StringIO(xml), parser)
+        root = tree.getroot()
+        self.assertEquals(
+            root.attrib,    {'default': 'valueA'})
+        self.assertEquals(
+            root[0].attrib, {'default': 'valueB'})
+
     def test_resolve_empty(self):
         parse = self.etree.parse
         parser = self.etree.XMLParser(load_dtd=True)


More information about the lxml-checkins mailing list