def test_write(self): import sys base = TReaderWriter() filter = streamio.BufferingInputStream( streamio.BufferingOutputStream(base, 4), 4) def f(): filter.write("123456789") for chunk in base.chunks: assert len(chunk[1]) >= 4 s = filter.read(sys.maxint) assert base.buf == "123456789" base.chunks = [] filter.write("abc") assert not base.chunks s = filter.read(sys.maxint) assert base.buf == "123456789abc" base.chunks = [] filter.write("012") assert not base.chunks filter.seek(4, 0) assert base.buf == "123456789abc012" assert filter.read(3) == "567" filter.write('x') filter.flush() assert base.buf == "1234567x9abc012" self.interpret(f, [])
def f(): base = TWriter() filter = streamio.BufferingOutputStream(base, 4) filter.seek(3, 0) filter.write("y" * 2) filter.close() assert base.buf == "\0" * 3 + "y" * 2
def f(): base = TWriter() filter = streamio.BufferingOutputStream(base, 4) filter.write('12345678') filter.truncate(4) filter.write('y') filter.close() assert base.buf == '1234' + '\0' * 4 + 'y'
def test_write_seek(self): base = TWriter() filter = streamio.BufferingOutputStream(base, 4) def f(): filter.write("x"*6) filter.seek(3, 0) filter.write("y"*2) filter.close() assert base.buf == "x"*3 + "y"*2 + "x"*1 self.interpret(f, [])
def test_write_seek_beyond_end(self): "Linux behaviour. May be different on other platforms." base = TReaderWriter() filter = streamio.BufferingInputStream( streamio.BufferingOutputStream(base, 4), 4) def f(): filter.seek(3, 0) filter.write("y"*2) filter.close() assert base.buf == "\0"*3 + "y"*2 self.interpret(f, [])
def f(): base = TWriter() filter = streamio.BufferingOutputStream(base, 4) filter.write("123") assert not base.chunks assert filter.tell() == 3 filter.write("456") filter.write("789ABCDEF") filter.write("0123") assert filter.tell() == 19 filter.close() assert base.buf == "123456789ABCDEF0123" for chunk in base.chunks[:-1]: assert len(chunk[1]) >= 4