]> granicus.if.org Git - python/commitdiff
#1433694: minidom's .normalize() failed to set .nextSibling for last element.
authorAndrew M. Kuchling <amk@amk.ca>
Sat, 23 Feb 2008 17:21:44 +0000 (17:21 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Sat, 23 Feb 2008 17:21:44 +0000 (17:21 +0000)
Fix by Malte Helmert

Lib/test/test_minidom.py
Lib/xml/dom/minidom.py
Misc/ACKS
Misc/NEWS

index a6d309f7d9abc98852344abd42a9a0a98a83b8b7..4ace1ebea9fc07c92cc1aba001a954f4948179c8 100644 (file)
@@ -806,6 +806,14 @@ def testNormalize():
             "testNormalize -- single empty node removed")
     doc.unlink()
 
+def testBug1433694():
+    doc = parseString("<o><i/>t</o>")
+    node = doc.documentElement
+    node.childNodes[1].nodeValue = ""
+    node.normalize()
+    confirm(node.childNodes[-1].nextSibling == None,
+            "Final child's .nextSibling should be None")
+
 def testSiblings():
     doc = parseString("<doc><?pi?>text?<elm/></doc>")
     root = doc.documentElement
index 3a35781622f0ea8571118535635afa8d27bb9ecb..b94a4c71bc2123408fc8c7aecac3fa3b8ede27ef 100644 (file)
@@ -203,6 +203,8 @@ class Node(xml.dom.Node):
                 L.append(child)
                 if child.nodeType == Node.ELEMENT_NODE:
                     child.normalize()
+        if L:
+            L[-1].nextSibling = None
         self.childNodes[:] = L
 
     def cloneNode(self, deep):
index 8cb117f189e37080cf65e9d3307128d1eb082597..c3a0942d292463c583a7ebd935c6b4f1013d29f9 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -266,6 +266,7 @@ Shane Hathaway
 Rycharde Hawkes
 Jochen Hayek
 Thomas Heller
+Malte Helmert
 Lance Finn Helsten
 Jonathan Hendry
 James Henstridge
index aec1f2ff424551e04e1df147ad03fa07d60ed7b6..4d40719e63af965a9b7a1bc939b08c029a88c09a 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,10 @@ Core and builtins
 Library
 -------
 
+- Bug #1433694: minidom's .normalize() failed to set .nextSibling for
+  last child element.
+
+
 Extension Modules
 -----------------