]> granicus.if.org Git - python/commitdiff
Patch #103854: raises an exception if a non-Attr node is passed to
authorAndrew M. Kuchling <amk@amk.ca>
Wed, 21 Feb 2001 01:30:26 +0000 (01:30 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Wed, 21 Feb 2001 01:30:26 +0000 (01:30 +0000)
 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.)

Lib/test/test_minidom.py
Lib/xml/dom/minidom.py

index 457480349a48eb68b3982a6d09d540666d1443c0..5cc1e692938b066631eed733e4a60e848fe46f94 100644 (file)
@@ -98,6 +98,17 @@ def testLegalChildren():
     else:
         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)
     dom.unlink()
 
index ef1a2bff229993718ad55f0993d56ff331f37893..b4ae267511fdf35a587b347150b4a0c2553f2c43 100644 (file)
@@ -378,6 +378,9 @@ class NamedNodeMap:
         self.setNamedItem(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)
         if old:
             old.unlink()