Example #1
0
def test_slice():
    data = b"\x00\x0c\xe3\x83\x9c\xe3\x83\xbc\xe3\x83\xab\xe3\x83\x88"
    stream = ByteStream(data)
    assert stream.tell() == 0

    assert stream[0] == data[0]
    assert stream[5] == data[5]
    assert stream[5:] == data[5:]
    assert stream[:5] == data[:5]
    assert stream[3:5] == data[3:5]
    assert stream[-5] == data[-5]
    assert stream[-5:] == data[-5:]
Example #2
0
def test_seek_set():
    data = b"\x00\x0c\xe3\x83\x9c\xe3\x83\xbc\xe3\x83\xab\xe3\x83\x88"
    stream = ByteStream(data)
    assert stream.tell() == 0

    assert stream.seek(0) == 0
    assert stream.tell() == 0

    assert stream.seek(6) == 6
    assert stream.tell() == 6

    assert stream.seek(len(data)) == len(data)
    assert stream.tell() == len(data)

    assert stream.seek(len(data) + 42) == len(data)
    assert stream.tell() == len(data)
Example #3
0
def test_seek_cur():
    data = b"\x00\x0c\xe3\x83\x9c\xe3\x83\xbc\xe3\x83\xab\xe3\x83\x88"
    stream = ByteStream(data)
    assert stream.tell() == 0

    assert stream.seek(0, os.SEEK_CUR) == 0
    assert stream.tell() == 0

    assert stream.seek(3, os.SEEK_CUR) == 3
    assert stream.tell() == 3

    assert stream.seek(3, os.SEEK_CUR) == 6
    assert stream.tell() == 6

    assert stream.seek(128) == len(data)
    assert stream.tell() == len(data)
Example #4
0
def test_seek_end():
    data = b"\x00\x0c\xe3\x83\x9c\xe3\x83\xbc\xe3\x83\xab\xe3\x83\x88"
    stream = ByteStream(data)
    assert stream.tell() == 0

    assert stream.seek(0, os.SEEK_END) == len(data)
    assert stream.tell() == len(data)

    assert stream.seek(42, os.SEEK_END) == len(data)
    assert stream.tell() == len(data)

    assert stream.seek(-5, os.SEEK_END) == len(data) - 5
    assert stream.tell() == len(data) - 5
Example #5
0
def test_read_all():
    data = b"\x00\x0c\xe3\x83\x9c\xe3\x83\xbc\xe3\x83\xab\xe3\x83\x88"
    stream = ByteStream(data)
    assert stream.tell() == 0

    assert stream.readall() == data
    assert stream.tell() == len(data)

    assert stream.seek(6) == 6
    assert stream.readall() == data[6:]
    assert stream.tell() == len(data)
Example #6
0
def test_len():
    data = b"\x00\x0c\xe3\x83\x9c\xe3\x83\xbc\xe3\x83\xab\xe3\x83\x88"
    stream = ByteStream(data)
    assert stream.tell() == 0

    # read 1 byte
    assert stream.seek(0) == 0
    assert len(stream) == len(data)
    expected_length = len(data)
    for i in range(len(data)):
        read = stream.read(1)
        expected_length -= len(read)
        assert len(stream) == expected_length

    # read 3 byte
    assert stream.seek(0) == 0
    assert len(stream) == len(data)
    expected_length = len(data)
    for i in range(0, len(data), 3):
        read = stream.read(3)
        expected_length -= len(read)
        assert len(stream) == expected_length
Example #7
0
def test_read():
    data = b"\x00\x0c\xe3\x83\x9c\xe3\x83\xbc\xe3\x83\xab\xe3\x83\x88"
    stream = ByteStream(data)
    assert stream.tell() == 0

    assert stream.read() == data
    assert stream.tell() == len(data)

    # read 0 bytes
    assert stream.seek(0) == 0
    assert stream.read(0) == ""
    assert stream.tell() == 0

    # read 1 byte
    assert stream.seek(0) == 0
    for i in range(len(data)):
        assert stream.read(1) == data[i:i+1]
        assert stream.tell() == i + 1

    # read 3 bytes
    assert stream.seek(0) == 0
    for i in range(0, len(data), 3):
        assert stream.read(3) == data[i:i+3]
        assert stream.tell() == min(i + 3, len(data))