Fix issue1753: TextIOWrapper.write writes utf BOM for every string.

Patch by Erick Tryzelaar, with slight modifications by me.
This commit is contained in:
Alexandre Vassalotti 2008-01-07 18:30:48 +00:00
parent 52d168a995
commit a38f73b1bb
2 changed files with 26 additions and 4 deletions

View file

@ -765,6 +765,24 @@ class TextIOWrapperTest(unittest.TestCase):
f.readline()
f.tell()
def testEncodedWrites(self):
data = "1234567890"
tests = ("utf-16",
"utf-16-le",
"utf-16-be",
"utf-32",
"utf-32-le",
"utf-32-be")
for encoding in tests:
buf = io.BytesIO()
f = io.TextIOWrapper(buf, encoding=encoding)
# Check if the BOM is written only once (see issue1753).
f.write(data)
f.write(data)
f.seek(0)
self.assertEquals(f.read(), data * 2)
self.assertEquals(buf.getvalue(), (data * 2).encode(encoding))
def timingTest(self):
timer = time.time
enc = "utf8"