Patch #103854: raises an exception if a non-Attr node is passed to
NamedNodeMap.setNamedItem(). Martin, should I sync the PyXML tree, too, or do you want to do it? (I don't know if you're wrapping the 0.6.4 release right now.)
This commit is contained in:
parent
8b94b1c74a
commit
bc8f72cccc
|
@ -98,6 +98,17 @@ def testLegalChildren():
|
||||||
else:
|
else:
|
||||||
print "dom.appendChild didn't raise HierarchyRequestErr"
|
print "dom.appendChild didn't raise HierarchyRequestErr"
|
||||||
|
|
||||||
|
nodemap = elem.attributes
|
||||||
|
try: nodemap.setNamedItem(text)
|
||||||
|
except HierarchyRequestErr: pass
|
||||||
|
else:
|
||||||
|
print "NamedNodeMap.setNamedItem didn't raise HierarchyRequestErr"
|
||||||
|
|
||||||
|
try: nodemap.setNamedItemNS(text)
|
||||||
|
except HierarchyRequestErr: pass
|
||||||
|
else:
|
||||||
|
print "NamedNodeMap.setNamedItemNS didn't raise HierarchyRequestErr"
|
||||||
|
|
||||||
elem.appendChild(text)
|
elem.appendChild(text)
|
||||||
dom.unlink()
|
dom.unlink()
|
||||||
|
|
||||||
|
|
|
@ -378,6 +378,9 @@ class NamedNodeMap:
|
||||||
self.setNamedItem(node)
|
self.setNamedItem(node)
|
||||||
|
|
||||||
def setNamedItem(self, node):
|
def setNamedItem(self, node):
|
||||||
|
if not isinstance(node, Attr):
|
||||||
|
raise HierarchyRequestErr, \
|
||||||
|
"%s cannot be child of %s" % (repr(node), repr(self))
|
||||||
old = self._attrs.get(node.name)
|
old = self._attrs.get(node.name)
|
||||||
if old:
|
if old:
|
||||||
old.unlink()
|
old.unlink()
|
||||||
|
|
Loading…
Reference in New Issue