Fix split_file when overlap = 0, add test (#3599)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
pull/3756/head^2
k-boikov 2023-05-21 04:20:03 +03:00 committed by GitHub
parent 57ea7b5216
commit bcc32cc441
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 6 deletions

View File

@ -131,7 +131,7 @@ def split_file(
while start < content_length:
end = start + max_length
if end + overlap < content_length:
chunk = content[start : end + overlap - 1]
chunk = content[start : end + max(overlap - 1, 0)]
else:
chunk = content[start:content_length]

View File

@ -151,12 +151,41 @@ def test_log_operation_with_checksum(config: Config):
assert f"log_test: path/to/test #ABCDEF\n" in content
@pytest.mark.parametrize(
"max_length, overlap, content, expected",
[
(
4,
1,
"abcdefghij",
["abcd", "defg", "ghij"],
),
(
4,
0,
"abcdefghijkl",
["abcd", "efgh", "ijkl"],
),
(
4,
0,
"abcdefghijklm",
["abcd", "efgh", "ijkl", "m"],
),
(
4,
0,
"abcdefghijk",
["abcd", "efgh", "ijk"],
),
],
)
# Test splitting a file into chunks
def test_split_file():
content = "abcdefghij"
chunks = list(file_ops.split_file(content, max_length=4, overlap=1))
expected = ["abcd", "defg", "ghij"]
assert chunks == expected
def test_split_file(max_length, overlap, content, expected):
assert (
list(file_ops.split_file(content, max_length=max_length, overlap=overlap))
== expected
)
def test_read_file(test_file_with_content_path: Path, file_content):