From b419a43c851336aeb57407c72c0a37271fbb2ebc Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Mon, 25 Apr 2022 08:25:06 +0300 Subject: Advance seek_position on error Advance the seek position, once we have yielded up an error to causing an infinite loop in certain conditions, where the `parse_errors` function ends up resuming the gile in the same position once it experiences an error. --- quality_control/parsing.py | 1 + tests/qc/test_error_collection.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/quality_control/parsing.py b/quality_control/parsing.py index e9bd5f7..eb4c989 100644 --- a/quality_control/parsing.py +++ b/quality_control/parsing.py @@ -120,6 +120,7 @@ def parse_errors(filepath: str, filetype: FileType, strains: list, "error": __error_type(err), "message": err.args } + seek_pos = seek_pos + len(line) return ( error for error in __errors(filepath, filetype, strains, seek_pos) diff --git a/tests/qc/test_error_collection.py b/tests/qc/test_error_collection.py index f1bd8b9..3a26d9c 100644 --- a/tests/qc/test_error_collection.py +++ b/tests/qc/test_error_collection.py @@ -28,7 +28,6 @@ def test_parse_errors(filepath, filetype, strains, seek_pos): assert "error" in error and isinstance(error["error"], str) assert "message" in error - @pytest.mark.parametrize( "sample,num,expected", ((range(0,25), 5, [0, 1, 2, 3, 4]), -- cgit v1.2.3