]> granicus.if.org Git - python/commitdiff
Preserve the invariant tostring(elem) == b''.join(tostringlist(elem)) and add a test...
authorEli Bendersky <eliben@gmail.com>
Tue, 17 Jul 2012 02:45:11 +0000 (05:45 +0300)
committerEli Bendersky <eliben@gmail.com>
Tue, 17 Jul 2012 02:45:11 +0000 (05:45 +0300)
Lib/test/test_xml_etree.py
Lib/xml/etree/ElementTree.py

index d90f9780c529b97524ffbd7731f0331a6c7603a0..da1ad0968686edcc9f11c65ff763ccd23f140924 100644 (file)
@@ -2286,6 +2286,15 @@ class IOTest(unittest.TestCase):
                 '''<?xml version='1.0' encoding='utf-16'?>\n'''
                 '''<site />'''.encode("utf-16"))
 
+    def test_tostringlist_invariant(self):
+        root = ET.fromstring('<tag>foo</tag>')
+        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):
index 10bf84992ed656d630600dc4a6a22c8f42a166be..3981659dd93ae940ff6af63366bc7b0f71ff5203 100644 (file)
@@ -1190,9 +1190,15 @@ def tostringlist(element, encoding=None, method=None):
         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