diff options
author | R David Murray <rdmurray@bitdance.com> | 2014-04-20 04:46:05 (GMT) |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2014-04-20 04:46:05 (GMT) |
commit | 9077d24d7f85e09e53def11b2beeaf40749e2464 (patch) | |
tree | e9ecb49bfa01f919f9e1f7d0d2a517aba4bed6c4 | |
parent | 09ae544ea3a6e33418ec8ab0100fc8288eef6d13 (diff) | |
download | cpython-9077d24d7f85e09e53def11b2beeaf40749e2464.zip cpython-9077d24d7f85e09e53def11b2beeaf40749e2464.tar.gz cpython-9077d24d7f85e09e53def11b2beeaf40749e2464.tar.bz2 |
#12220: improve minidom error when URI contains spaces.
Fix by 'amathew', test by Marek Stepniowski.
-rw-r--r-- | Lib/test/test_minidom.py | 4 | ||||
-rw-r--r-- | Lib/xml/dom/expatbuilder.py | 4 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 11 insertions, 1 deletions
diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index a1516c2..5ab4bfe 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -1518,6 +1518,10 @@ class MinidomTest(unittest.TestCase): doc2 = parseString(doc.toxml()) self.confirm(doc2.namespaceURI == xml.dom.EMPTY_NAMESPACE) + def testExceptionOnSpacesInXMLNSValue(self): + with self.assertRaisesRegex(ValueError, 'Unsupported syntax'): + parseString('<element xmlns:abc="http:abc.com/de f g/hi/j k"><abc:foo /></element>') + def testDocRemoveChild(self): doc = parse(tstfile) title_tag = doc.documentElement.getElementsByTagName("TITLE")[0] diff --git a/Lib/xml/dom/expatbuilder.py b/Lib/xml/dom/expatbuilder.py index 81e2df7..8976144 100644 --- a/Lib/xml/dom/expatbuilder.py +++ b/Lib/xml/dom/expatbuilder.py @@ -121,10 +121,12 @@ def _parse_ns_name(builder, name): qname = "%s:%s" % (prefix, localname) qname = intern(qname, qname) localname = intern(localname, localname) - else: + elif len(parts) == 2: uri, localname = parts prefix = EMPTY_PREFIX qname = localname = intern(localname, localname) + else: + raise ValueError("Unsupported syntax: spaces in URIs not supported: %r" % name) return intern(uri, uri), localname, prefix, qname @@ -1255,6 +1255,7 @@ Joel Stanley Anthony Starks Oliver Steele Greg Stein +Marek Stepniowski Baruch Sterin Chris Stern Alex Stewart @@ -39,6 +39,9 @@ Core and Builtins Library ------- +- Issue #12220: mindom now raises a custom ValueError indicating it doesn't + support spaces in URIs instead of letting a 'split' ValueError bubble up. + - Issue #21239: patch.stopall() didn't work deterministically when the same name was patched more than once. |