diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index d90f9780c52..da1ad096868 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -2286,6 +2286,15 @@ def test_write_to_user_binary_writer_with_bom(self): '''\n''' ''''''.encode("utf-16")) + def test_tostringlist_invariant(self): + root = ET.fromstring('foo') + self.assertEqual( + ET.tostring(root, 'unicode'), + ''.join(ET.tostringlist(root, 'unicode'))) + self.assertEqual( + ET.tostring(root, 'utf-16'), + b''.join(ET.tostringlist(root, 'utf-16'))) + class ParseErrorTest(unittest.TestCase): def test_subclass(self): diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py index 10bf84992ed..3981659dd93 100644 --- a/Lib/xml/etree/ElementTree.py +++ b/Lib/xml/etree/ElementTree.py @@ -1190,9 +1190,15 @@ class DataStream(io.BufferedIOBase): def writable(self): return True + def seekable(self): + return True + def write(self, b): data.append(b) + def tell(self): + return len(data) + ElementTree(element).write(DataStream(), encoding, method=method) return data