mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
bpo-34160: Preserve user specified order of Element attributes (GH-10163)
This commit is contained in:
parent
18d57b4d62
commit
e3685fd5fd
4 changed files with 30 additions and 1 deletions
|
@ -5,6 +5,7 @@
|
|||
# For this purpose, the module-level "ET" symbol is temporarily
|
||||
# monkey-patched when running the "test_xml_etree_c" test suite.
|
||||
|
||||
import contextlib
|
||||
import copy
|
||||
import functools
|
||||
import html
|
||||
|
@ -1044,6 +1045,25 @@ class ElementTreeTest(unittest.TestCase):
|
|||
method='html')
|
||||
self.assertEqual(serialized, expected)
|
||||
|
||||
def test_dump_attribute_order(self):
|
||||
# See BPO 34160
|
||||
e = ET.Element('cirriculum', status='public', company='example')
|
||||
with support.captured_stdout() as stdout:
|
||||
ET.dump(e)
|
||||
self.assertEqual(stdout.getvalue(),
|
||||
'<cirriculum status="public" company="example" />\n')
|
||||
|
||||
def test_tree_write_attribute_order(self):
|
||||
# See BPO 34160
|
||||
root = ET.Element('cirriculum', status='public', company='example')
|
||||
tree = ET.ElementTree(root)
|
||||
f = io.BytesIO()
|
||||
with contextlib.redirect_stdout(f):
|
||||
tree.write(f, encoding='utf-8', xml_declaration=True)
|
||||
self.assertEqual(f.getvalue(),
|
||||
b"<?xml version='1.0' encoding='utf-8'?>\n"
|
||||
b'<cirriculum status="public" company="example" />')
|
||||
|
||||
|
||||
class XMLPullParserTest(unittest.TestCase):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue