From c3ab0a75d15beb319ba7844ea0063bb015c4f3cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Walter=20D=C3=B6rwald?= <walter@livinglogic.de>
Date: Thu, 10 May 2007 15:02:49 +0000
Subject: Use io.BytesIO instead of StringIO.StringIO in all spots where bytes
 are read and written (StringIO.StringIO doesn't work, because it promotes
 bytes to str).

---
 Lib/test/test_codecs.py | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index db63648..f8c22f8 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -1,7 +1,7 @@
 from test import test_support
 import unittest
 import codecs
-import sys, _testcapi
+import sys, _testcapi, io
 from StringIO import StringIO
 
 class Queue(object):
@@ -104,7 +104,7 @@ class ReadTest(unittest.TestCase, MixInCheckStateHandling):
 
     def test_readline(self):
         def getreader(input):
-            stream = StringIO(input.encode(self.encoding))
+            stream = io.BytesIO(input.encode(self.encoding))
             return codecs.getreader(self.encoding)(stream)
 
         def readalllines(input, keepends=True, size=None):
@@ -216,7 +216,7 @@ class ReadTest(unittest.TestCase, MixInCheckStateHandling):
             '                break\r\n',
             '                \r\n',
         ]
-        stream = StringIO("".join(s).encode(self.encoding))
+        stream = io.BytesIO("".join(s).encode(self.encoding))
         reader = codecs.getreader(self.encoding)(stream)
         for (i, line) in enumerate(reader):
             self.assertEqual(line, s[i])
@@ -254,7 +254,7 @@ class ReadTest(unittest.TestCase, MixInCheckStateHandling):
         s3 = "next line.\r\n"
 
         s = (s1+s2+s3).encode(self.encoding)
-        stream = StringIO(s)
+        stream = io.BytesIO(s)
         reader = codecs.getreader(self.encoding)(stream)
         self.assertEqual(reader.readline(), s1)
         self.assertEqual(reader.readline(), s2)
@@ -269,7 +269,7 @@ class ReadTest(unittest.TestCase, MixInCheckStateHandling):
         s5 = "againokay.\r\n"
 
         s = (s1+s2+s3+s4+s5).encode(self.encoding)
-        stream = StringIO(s)
+        stream = io.BytesIO(s)
         reader = codecs.getreader(self.encoding)(stream)
         self.assertEqual(reader.readline(), s1)
         self.assertEqual(reader.readline(), s2)
@@ -287,7 +287,7 @@ class UTF16Test(ReadTest):
     def test_only_one_bom(self):
         _,_,reader,writer = codecs.lookup(self.encoding)
         # encode some stream
-        s = StringIO()
+        s = io.BytesIO()
         f = writer(s)
         f.write("spam")
         f.write("spam")
@@ -295,16 +295,16 @@ class UTF16Test(ReadTest):
         # check whether there is exactly one BOM in it
         self.assert_(d == self.spamle or d == self.spambe)
         # try to read it back
-        s = StringIO(d)
+        s = io.BytesIO(d)
         f = reader(s)
         self.assertEquals(f.read(), "spamspam")
 
     def test_badbom(self):
-        s = StringIO(b"\xff\xff")
+        s = io.BytesIO(b"\xff\xff")
         f = codecs.getreader(self.encoding)(s)
         self.assertRaises(UnicodeError, f.read)
 
-        s = StringIO(b"\xff\xff\xff\xff")
+        s = io.BytesIO(b"\xff\xff\xff\xff")
         f = codecs.getreader(self.encoding)(s)
         self.assertRaises(UnicodeError, f.read)
 
@@ -860,7 +860,7 @@ class IDNACodecTest(unittest.TestCase):
         self.assertEquals("pyth\xf6n.org.".encode("idna"), "xn--pythn-mua.org.")
 
     def test_stream(self):
-        r = codecs.getreader("idna")(StringIO(b"abc"))
+        r = codecs.getreader("idna")(io.BytesIO(b"abc"))
         r.read(3)
         self.assertEquals(r.read(), "")
 
@@ -968,7 +968,7 @@ class StreamReaderTest(unittest.TestCase):
 
     def setUp(self):
         self.reader = codecs.getreader('utf-8')
-        self.stream = StringIO(b'\xed\x95\x9c\n\xea\xb8\x80')
+        self.stream = io.BytesIO(b'\xed\x95\x9c\n\xea\xb8\x80')
 
     def test_readlines(self):
         f = self.reader(self.stream)
@@ -977,11 +977,11 @@ class StreamReaderTest(unittest.TestCase):
 class EncodedFileTest(unittest.TestCase):
 
     def test_basic(self):
-        f = StringIO(b'\xed\x95\x9c\n\xea\xb8\x80')
+        f = io.BytesIO(b'\xed\x95\x9c\n\xea\xb8\x80')
         ef = codecs.EncodedFile(f, 'utf-16-le', 'utf-8')
         self.assertEquals(ef.read(), b'\\\xd5\n\x00\x00\xae')
 
-        f = StringIO()
+        f = io.BytesIO()
         ef = codecs.EncodedFile(f, 'utf-8', 'latin1')
         ef.write(b'\xc3\xbc')
         self.assertEquals(f.getvalue(), b'\xfc')
@@ -1254,7 +1254,7 @@ class BasicUnicodeTest(unittest.TestCase, MixInCheckStateHandling):
                 continue
             if encoding in broken_unicode_with_streams:
                 continue
-            reader = codecs.getreader(encoding)(StringIO(s.encode(encoding)))
+            reader = codecs.getreader(encoding)(io.BytesIO(s.encode(encoding)))
             for t in range(5):
                 # Test that calling seek resets the internal codec state and buffers
                 reader.seek(0, 0)
@@ -1331,12 +1331,12 @@ class CharmapTest(unittest.TestCase):
 
 class WithStmtTest(unittest.TestCase):
     def test_encodedfile(self):
-        f = StringIO(b"\xc3\xbc")
+        f = io.BytesIO(b"\xc3\xbc")
         with codecs.EncodedFile(f, "latin-1", "utf-8") as ef:
             self.assertEquals(ef.read(), b"\xfc")
 
     def test_streamreaderwriter(self):
-        f = StringIO(b"\xc3\xbc")
+        f = io.BytesIO(b"\xc3\xbc")
         info = codecs.lookup("utf-8")
         with codecs.StreamReaderWriter(f, info.streamreader,
                                        info.streamwriter, 'strict') as srw:
-- 
cgit v0.12

