[Lxml-checkins] r43426 - in lxml/trunk: . src/lxml src/lxml/tests
scoder at codespeak.net
scoder at codespeak.net
Wed May 16 10:17:26 CEST 2007
Author: scoder
Date: Wed May 16 10:17:25 2007
New Revision: 43426
Modified:
lxml/trunk/CHANGES.txt
lxml/trunk/src/lxml/extensions.pxi
lxml/trunk/src/lxml/tests/test_xpathevaluator.py
Log:
raise exception when passing empty prefixes or namespaces to XPath
Modified: lxml/trunk/CHANGES.txt
==============================================================================
--- lxml/trunk/CHANGES.txt (original)
+++ lxml/trunk/CHANGES.txt Wed May 16 10:17:25 2007
@@ -44,6 +44,8 @@
Bugs fixed
----------
+* passing '' as XPath namespace prefix did not raise an error
+
* passing '' as namespace prefix in nsmap could be passed through to libxml2
* Objectify couldn't handle prefixed XSD type names in ``xsi:type``
Modified: lxml/trunk/src/lxml/extensions.pxi
==============================================================================
--- lxml/trunk/src/lxml/extensions.pxi (original)
+++ lxml/trunk/src/lxml/extensions.pxi Wed May 16 10:17:25 2007
@@ -69,10 +69,10 @@
if namespaces:
ns = []
for prefix, ns_uri in namespaces:
- if prefix is None:
+ if prefix is None or not prefix:
raise TypeError, \
"empty namespace prefix is not supported in XPath"
- if ns_uri is None:
+ if ns_uri is None or not ns_uri:
raise TypeError, \
"setting default namespace is not supported in XPath"
prefix_utf = self._to_utf(prefix)
Modified: lxml/trunk/src/lxml/tests/test_xpathevaluator.py
==============================================================================
--- lxml/trunk/src/lxml/tests/test_xpathevaluator.py (original)
+++ lxml/trunk/src/lxml/tests/test_xpathevaluator.py Wed May 16 10:17:25 2007
@@ -112,6 +112,13 @@
TypeError,
root.xpath, '//b', {None: 'uri:a'})
+ def test_xpath_ns_empty(self):
+ tree = self.parse('<a xmlns="uri:a"><b></b></a>')
+ root = tree.getroot()
+ self.assertRaises(
+ TypeError,
+ root.xpath, '//b', {'': 'uri:a'})
+
def test_xpath_error(self):
tree = self.parse('<a/>')
self.assertRaises(etree.XPathEvalError, tree.xpath, '\\fad')
More information about the lxml-checkins
mailing list