def testSeekAndTell(self):
"""Test seek/tell using the StatefulIncrementalDecoder."""
+ # Make this test faster by forcing a smaller (but large enough)
+ # chunk size. The bigger the chunker size, the slower seek() is,
+ # as it tries to replay character decoding one byte at a time.
+ CHUNK_SIZE = 256
def testSeekAndTellWithData(data, min_pos=0):
"""Tell/seek to various points within a data stream and ensure
for i in range(min_pos, len(decoded) + 1): # seek positions
for j in [1, 5, len(decoded) - i]: # read lengths
f = io.open(support.TESTFN, encoding='test_decoder')
+ f._CHUNK_SIZE = CHUNK_SIZE
self.assertEquals(f.read(i), decoded[:i])
cookie = f.tell()
self.assertEquals(f.read(j), decoded[i:i + j])
testSeekAndTellWithData(input)
# Position each test case so that it crosses a chunk boundary.
- CHUNK_SIZE = io.TextIOWrapper._CHUNK_SIZE
for input, _, _ in StatefulIncrementalDecoderTest.test_cases:
offset = CHUNK_SIZE - len(input)//2
prefix = b'.'*offset