]> granicus.if.org Git - python/commitdiff
Fix xml.dom.minidom so it works again after the dict views introduction.
authorBrett Cannon <bcannon@gmail.com>
Wed, 21 Feb 2007 22:05:37 +0000 (22:05 +0000)
committerBrett Cannon <bcannon@gmail.com>
Wed, 21 Feb 2007 22:05:37 +0000 (22:05 +0000)
There are some methods in minidom that return dict.keys() directly.  There were
left alone since the tests passed without touching them, but it might be
prudent to just wrap them in a 'list' call to be safe for people expecting a
list.

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

diff --git a/BROKEN b/BROKEN
index 6ed9304bb9843e8a6a10071d4039a2fb1aac212a..7515740db77b67fba7cbd64db4f91852ca29197d 100644 (file)
--- a/BROKEN
+++ b/BROKEN
@@ -1,2 +1,2 @@
     test_bsddb test_bsddb3 test_compile test_dumbdbm
-    test_importhooks test_iter test_iterlen test_minidom
+    test_importhooks test_iter test_iterlen
index d0a99a7fb9f11a52f9cfab5b2d2f359eb94f7dfa..6c4dd948ec9bdb182c138e626949e5cda14161dd 100644 (file)
@@ -565,10 +565,8 @@ def _setupCloneElement(deep):
 def _testCloneElementCopiesAttributes(e1, e2, test):
     attrs1 = e1.attributes
     attrs2 = e2.attributes
-    keys1 = attrs1.keys()
-    keys2 = attrs2.keys()
-    keys1.sort()
-    keys2.sort()
+    keys1 = sorted(attrs1.keys())
+    keys2 = sorted(attrs2.keys())
     confirm(keys1 == keys2, "clone of element has same attribute keys")
     for i in range(len(keys1)):
         a1 = attrs1.item(i)
@@ -1351,8 +1349,7 @@ def testPickledDocument():
 
 # --- MAIN PROGRAM
 
-names = globals().keys()
-names.sort()
+names = sorted(globals().keys())
 
 failed = []
 
index bfdcc82c025bc6ddd965abb67492a9857d2b92f8..3529bd33ef080fa36419f8bf6bc75bcaa0cbe6c3 100644 (file)
@@ -256,7 +256,7 @@ class Node(xml.dom.Node):
 
     def _call_user_data_handler(self, operation, src, dst):
         if hasattr(self, "_user_data"):
-            for key, (data, handler) in self._user_data.items():
+            for key, (data, handler) in list(self._user_data.items()):
                 if handler is not None:
                     handler.handle(operation, key, data, src, dst)
 
@@ -480,7 +480,7 @@ class NamedNodeMap(object):
 
     def item(self, index):
         try:
-            return self[self._attrs.keys()[index]]
+            return self[list(self._attrs.keys())[index]]
         except IndexError:
             return None
 
@@ -672,7 +672,7 @@ class Element(Node):
         return self.tagName
 
     def unlink(self):
-        for attr in self._attrs.values():
+        for attr in list(self._attrs.values()):
             attr.unlink()
         self._attrs = None
         self._attrsNS = None
@@ -805,8 +805,7 @@ class Element(Node):
         writer.write(indent+"<" + self.tagName)
 
         attrs = self._get_attributes()
-        a_names = attrs.keys()
-        a_names.sort()
+        a_names = sorted(attrs.keys())
 
         for a_name in a_names:
             writer.write(" %s=\"" % a_name)