def test_buffered_input_stream_detach_non_seekable(): # detach() to a non-seekable file (io::InputStream in C++) f = pa.BufferedInputStream( pa.BufferedInputStream(pa.BufferReader(b"123456789"), buffer_size=4), buffer_size=4) assert f.read(2) == b"12" raw = f.detach() assert f.closed assert not raw.closed assert not raw.seekable() assert raw.read(4) == b"5678" with pytest.raises(EnvironmentError): raw.seek(2)
def test_buffered_input_stream(): raw = pa.BufferReader(b"123456789") f = pa.BufferedInputStream(raw, buffer_size=4) assert f.read(2) == b"12" assert raw.tell() == 4 f.close() assert f.closed assert raw.closed
def test_buffered_input_stream_detach_seekable(): # detach() to a seekable file (io::RandomAccessFile in C++) f = pa.BufferedInputStream(pa.BufferReader(b"123456789"), buffer_size=4) assert f.read(2) == b"12" raw = f.detach() assert f.closed assert not raw.closed assert raw.seekable() assert raw.read(4) == b"5678" raw.seek(2) assert raw.read(4) == b"3456"