]> granicus.if.org Git - python/commitdiff
In test_io, StatefulIncrementalDecoderTest was not part of the test suite.
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 3 May 2008 12:21:13 +0000 (12:21 +0000)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 3 May 2008 12:21:13 +0000 (12:21 +0000)
And of course, the test failed:
a bytearray was used without reason in io.TextIOWrapper.tell().

The difference is that iterating over bytes (i.e. str in python2.6) returns 1-char bytes,
whereas bytearrays yield integers.
This code should still work with python3.0

Lib/io.py
Lib/test/test_io.py

index 213b0fc760793b12d392d2ad321649a2dbcd8318..ec594487a95cd7b2e9e74f2ce9cea62fa8bb4d11 100644 (file)
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -1528,8 +1528,7 @@ class TextIOWrapper(TextIOBase):
             # nearest "safe start point" before the current location
             # (a point where the decoder has nothing buffered, so seek()
             # can safely start from there and advance to this location).
-            next_byte = bytearray(1)
-            for next_byte[0] in next_input:
+            for next_byte in next_input:
                 bytes_fed += 1
                 chars_decoded += len(decoder.decode(next_byte))
                 dec_buffer, dec_flags = decoder.getstate()
index 7110259dfffbc30def302885a2b84638b2f0d551..e193834e01093b479ed2f4c86b389b9595128733 100644 (file)
@@ -560,9 +560,9 @@ class StatefulIncrementalDecoder(codecs.IncrementalDecoder):
 
     def process_word(self):
         output = ''
-        if self.buffer[0] == 'i':
+        if self.buffer[0] == ord('i'):
             self.i = min(99, int(self.buffer[1:] or 0)) # set input length
-        elif self.buffer[0] == 'o':
+        elif self.buffer[0] == ord('o'):
             self.o = min(99, int(self.buffer[1:] or 0)) # set output length
         else:
             output = self.buffer.decode('ascii')
@@ -1160,10 +1160,10 @@ class MiscIOTest(unittest.TestCase):
 
 def test_main():
     test_support.run_unittest(IOTest, BytesIOTest, StringIOTest,
-                              BufferedReaderTest,
-                              BufferedWriterTest, BufferedRWPairTest,
-                              BufferedRandomTest, TextIOWrapperTest,
-                              MiscIOTest)
+                              BufferedReaderTest, BufferedWriterTest,
+                              BufferedRWPairTest, BufferedRandomTest,
+                              StatefulIncrementalDecoderTest,
+                              TextIOWrapperTest, MiscIOTest)
 
 if __name__ == "__main__":
     unittest.main()