From: Brett Cannon Date: Wed, 21 Feb 2007 22:05:37 +0000 (+0000) Subject: Fix xml.dom.minidom so it works again after the dict views introduction. X-Git-Tag: v3.0a1~1207 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=861fd6fdb9592e6d58a281521dea53d47ecc6adf;p=python Fix xml.dom.minidom so it works again after the dict views introduction. 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. --- diff --git a/BROKEN b/BROKEN index 6ed9304bb9..7515740db7 100644 --- 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 diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index d0a99a7fb9..6c4dd948ec 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -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 = [] diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index bfdcc82c02..3529bd33ef 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -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)