summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_minidom.py21
-rw-r--r--Lib/xml/dom/minidom.py3
2 files changed, 22 insertions, 2 deletions
diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py
index e91cdba..ad5be2f 100644
--- a/Lib/test/test_minidom.py
+++ b/Lib/test/test_minidom.py
@@ -2,6 +2,8 @@
import copy
import pickle
+import io
+import contextlib
from test.support import findfile
import unittest
@@ -1560,5 +1562,24 @@ class MinidomTest(unittest.TestCase):
pi = doc.createProcessingInstruction("y", "z")
pi.nodeValue = "crash"
+ def test_minidom_attribute_order(self):
+ xml_str = '<?xml version="1.0" ?><curriculum status="public" company="example"/>'
+ doc = parseString(xml_str)
+ output = io.StringIO()
+ doc.writexml(output)
+ self.assertEqual(output.getvalue(), xml_str)
+
+ def test_toxml_with_attributes_ordered(self):
+ xml_str = '<?xml version="1.0" ?><curriculum status="public" company="example"/>'
+ doc = parseString(xml_str)
+ self.assertEqual(doc.toxml(), xml_str)
+
+ def test_toprettyxml_with_attributes_ordered(self):
+ xml_str = '<?xml version="1.0" ?><curriculum status="public" company="example"/>'
+ doc = parseString(xml_str)
+ self.assertEqual(doc.toprettyxml(),
+ '<?xml version="1.0" ?>\n'
+ '<curriculum status="public" company="example"/>\n')
+
if __name__ == "__main__":
unittest.main()
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py
index e44e04a..469c517 100644
--- a/Lib/xml/dom/minidom.py
+++ b/Lib/xml/dom/minidom.py
@@ -854,9 +854,8 @@ class Element(Node):
writer.write(indent+"<" + self.tagName)
attrs = self._get_attributes()
- a_names = sorted(attrs.keys())
- for a_name in a_names:
+ for a_name in attrs.keys():
writer.write(" %s=\"" % a_name)
_write_data(writer, attrs[a_name].value)
writer.write("\"")