@@ -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