From: Amaury Forgeot d'Arc Date: Sat, 3 May 2008 12:21:13 +0000 (+0000) Subject: In test_io, StatefulIncrementalDecoderTest was not part of the test suite. X-Git-Tag: v2.6a3~49 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7684f852972901b2e55be898f316095c3acf51bc;p=python In test_io, StatefulIncrementalDecoderTest was not part of the test suite. 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 --- diff --git a/Lib/io.py b/Lib/io.py index 213b0fc760..ec594487a9 100644 --- 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() diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index 7110259dff..e193834e01 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -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()