|
1 | | -import pytest |
2 | 1 | from dictdatabase import io_bytes |
| 2 | +import pytest |
3 | 3 |
|
4 | 4 |
|
5 | 5 |
|
6 | | -def test_write_bytes(use_test_dir, name_of_test): |
| 6 | +def test_write_bytes(use_test_dir, name_of_test, use_compression): |
| 7 | + # No partial writing to compressed file allowed |
| 8 | + if use_compression: |
| 9 | + with pytest.raises(RuntimeError): |
| 10 | + io_bytes.write(name_of_test, b"test", start=5) |
| 11 | + return |
7 | 12 | # Write shorter content at index |
8 | 13 | io_bytes.write(name_of_test, b"0123456789") |
9 | | - io_bytes.write(name_of_test, b"abc", 2) |
| 14 | + io_bytes.write(name_of_test, b"abc", start=2) |
10 | 15 | assert io_bytes.read(name_of_test) == b"01abc" |
11 | 16 | # Overwrite with shorter content |
12 | 17 | io_bytes.write(name_of_test, b"xy") |
13 | 18 | assert io_bytes.read(name_of_test) == b"xy" |
14 | 19 | # Overwrite with longer content |
15 | 20 | io_bytes.write(name_of_test, b"0123456789") |
16 | | - io_bytes.write(name_of_test, b"abcdef", 8) |
| 21 | + io_bytes.write(name_of_test, b"abcdef", start=8) |
17 | 22 | assert io_bytes.read(name_of_test) == b"01234567abcdef" |
18 | 23 | # Write at index out of range |
19 | 24 | io_bytes.write(name_of_test, b"01") |
20 | | - io_bytes.write(name_of_test, b"ab", 4) |
| 25 | + io_bytes.write(name_of_test, b"ab", start=4) |
21 | 26 | assert io_bytes.read(name_of_test) == b'01\x00\x00ab' |
22 | 27 |
|
23 | 28 |
|
24 | 29 |
|
25 | 30 | def test_read_bytes(use_test_dir, name_of_test, use_compression): |
26 | 31 | io_bytes.write(name_of_test, b"0123456789") |
27 | 32 | # In range |
28 | | - assert io_bytes.read(name_of_test, 2, 5) == b"234" |
29 | | - # Complete range |
30 | | - assert io_bytes.read(name_of_test, 0, 10) == b"0123456789" |
31 | | - assert io_bytes.read(name_of_test, 0, None) == b"0123456789" |
| 33 | + assert io_bytes.read(name_of_test, start=2, end=5) == b"234" |
| 34 | + # Normal ranges |
| 35 | + assert io_bytes.read(name_of_test, start=0, end=10) == b"0123456789" |
| 36 | + assert io_bytes.read(name_of_test, start=2) == b"23456789" |
| 37 | + assert io_bytes.read(name_of_test, end=2) == b"01" |
32 | 38 | assert io_bytes.read(name_of_test) == b"0123456789" |
33 | 39 | # End out of range |
34 | | - assert io_bytes.read(name_of_test, 9, 20) == b"9" |
| 40 | + assert io_bytes.read(name_of_test, start=9, end=20) == b"9" |
35 | 41 | # Completely out of range |
36 | | - assert io_bytes.read(name_of_test, 25, 30) == b"" |
| 42 | + assert io_bytes.read(name_of_test, start=25, end=30) == b"" |
37 | 43 | # Start negative |
38 | 44 | if use_compression: |
39 | | - assert io_bytes.read(name_of_test, -5, 3) == b"" |
| 45 | + assert io_bytes.read(name_of_test, start=-5, end=3) == b"" |
40 | 46 | else: |
41 | 47 | with pytest.raises(OSError): |
42 | | - io_bytes.read(name_of_test, -5, 3) |
| 48 | + io_bytes.read(name_of_test, start=-5, end=3) |
0 commit comments