Do not use the default namespace for attributes.
Fixes http://bugs.debian.org/229885
Will backport to 2.3.
diff --git a/Lib/test/test_xmllib.py b/Lib/test/test_xmllib.py
index b14ead9..0780bc9 100644
--- a/Lib/test/test_xmllib.py
+++ b/Lib/test/test_xmllib.py
@@ -13,6 +13,8 @@
<greeting>Hello, world!</greeting>
"""
+nsdoc = "<foo xmlns='URI' attr='val'/>"
+
import warnings
warnings.filterwarnings("ignore", ".* xmllib .* obsolete.*",
DeprecationWarning, r'xmllib$')
@@ -29,6 +31,18 @@
parser.feed(c)
parser.close()
+ def test_default_namespace(self):
+ class H(xmllib.XMLParser):
+ def unknown_starttag(self, name, attr):
+ self.name, self.attr = name, attr
+ h=H()
+ h.feed(nsdoc)
+ h.close()
+ # The default namespace applies to elements...
+ self.assertEquals(h.name, "URI foo")
+ # but not to attributes
+ self.assertEquals(h.attr, {'attr':'val'})
+
def test_main():
test_support.run_unittest(XMLParserTestCase)