Skip to content

Commit b7967ae

Browse files
authored
Update test_xml_etree.py
test cases for custom xml declaration
1 parent dd0553f commit b7967ae

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

Lib/test/test_xml_etree.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4021,6 +4021,54 @@ def test_write_to_user_binary_writer_with_bom(self):
40214021
'''<?xml version='1.0' encoding='utf-16'?>\n'''
40224022
'''<site />'''.encode("utf-16"))
40234023

4024+
def test_custom_declaration_to_user_binary_writer_with_bom(self):
4025+
tree = ET.ElementTree(ET.XML('''<site />'''))
4026+
raw = io.BytesIO()
4027+
writer = self.dummy()
4028+
writer.write = raw.write
4029+
writer.seekable = lambda: True
4030+
writer.tell = raw.tell
4031+
tree.write(writer, encoding="utf-16", xml_declaration_definition='<?xml version="{version}" encoding="{encoding}"?>')
4032+
self.assertEqual(raw.getvalue(),
4033+
'''<?xml version="1.0" encoding="utf-16"?>\n'''
4034+
'''<site />'''.encode("utf-16"))
4035+
4036+
def test_custom_declaration2_to_user_binary_writer_with_bom(self):
4037+
tree = ET.ElementTree(ET.XML('''<site />'''))
4038+
raw = io.BytesIO()
4039+
writer = self.dummy()
4040+
writer.write = raw.write
4041+
writer.seekable = lambda: True
4042+
writer.tell = raw.tell
4043+
tree.write(writer, encoding="utf-16", xml_declaration_definition='<?xml version="1.1" encoding="{encoding}"?>')
4044+
self.assertEqual(raw.getvalue(),
4045+
'''<?xml version="1.1" encoding="utf-16"?>\n'''
4046+
'''<site />'''.encode("utf-16"))
4047+
4048+
def test_custom_declaration3_to_user_binary_writer_with_bom(self):
4049+
tree = ET.ElementTree(ET.XML('''<site />'''))
4050+
raw = io.BytesIO()
4051+
writer = self.dummy()
4052+
writer.write = raw.write
4053+
writer.seekable = lambda: True
4054+
writer.tell = raw.tell
4055+
tree.write(writer, encoding="utf-16", xml_declaration_definition='<?xml version="1.1" encoding="UTF-8"?>')
4056+
self.assertEqual(raw.getvalue(),
4057+
'''<?xml version="1.1" encoding="UTF-8"?>\n'''
4058+
'''<site />'''.encode("utf-16"))
4059+
4060+
def test_custom_declaration4_to_user_binary_writer_with_bom(self):
4061+
tree = ET.ElementTree(ET.XML('''<site />'''))
4062+
raw = io.BytesIO()
4063+
writer = self.dummy()
4064+
writer.write = raw.write
4065+
writer.seekable = lambda: True
4066+
writer.tell = raw.tell
4067+
tree.write(writer, encoding="utf-16", xml_declaration_definition='<?xml version="1.0"?>')
4068+
self.assertEqual(raw.getvalue(),
4069+
'''<?xml version="1.0"?>\n'''
4070+
'''<site />'''.encode("utf-16"))
4071+
r
40244072
def test_tostringlist_invariant(self):
40254073
root = ET.fromstring('<tag>foo</tag>')
40264074
self.assertEqual(

0 commit comments

Comments
 (0)