diff options
Diffstat (limited to 'tests/qc/test_header.py')
-rw-r--r-- | tests/qc/test_header.py | 45 |
1 files changed, 7 insertions, 38 deletions
diff --git a/tests/qc/test_header.py b/tests/qc/test_header.py index f860a71..2557e85 100644 --- a/tests/qc/test_header.py +++ b/tests/qc/test_header.py @@ -3,42 +3,13 @@ import pytest from hypothesis import given from hypothesis import strategies as st -from quality_control.headers import valid_header from quality_control.errors import InvalidValue, DuplicateHeading -from quality_control.errors import DuplicateHeader, InvalidHeaderValue from quality_control.headers import ( invalid_header, invalid_headings, duplicate_headings) -@given(headers=st.lists(st.text(max_size=10))) -def test_valid_header_errors_with_invalid_headers(headers): - "Verify that the check for header validity works" - with pytest.raises(InvalidHeaderValue): - valid_header(("BXD1", "BXD2", "BXD3"), headers) - -@pytest.mark.parametrize( - "strains,headers", [ - (("BXD1", "BXD2", "BXD3"), ("ProbeSet", "BXD3", "BXD1")), - (("AStrain", "AnotherStrain", "YetAnotherStrain"), - ("Individual", "AStrain", "AnotherStrain", "YetAnotherStrain"))]) -def test_valid_header_strains_passes_with_valid_headers(strains, headers): - "Verify that the check for header validity works" - assert valid_header(strains, headers) - -@pytest.mark.parametrize( - "strains,headers", [ - (("BXD1", "BXD2", "BXD3"), ("ProbeSet", "BXD3", "BXD1", "BXD1")), - (("AStrain", "AnotherStrain", "YetAnotherStrain"), - ("Individual", "AStrain", "AnotherStrain", "YetAnotherStrain", - "AStrain"))]) -def test_valid_header_fails_with_duplicate_headers(strains, headers): - """Check that parsing fails if any header is duplicated""" - with pytest.raises(DuplicateHeader): - valid_header(strains, headers) - -## ============================================================ - @given(headers=st.lists(st.text(max_size=10), max_size=1)) def test_invalid_header_with_list_of_one_value(headers): + """Test `invalid_header` with invalid header row""" assert invalid_header(0, headers) == InvalidValue( 0, 0, "<TAB>".join(headers), "The header MUST contain at least 2 columns") @@ -51,13 +22,12 @@ def test_invalid_headings_with_invalid_inputs(headings): for col, heading in enumerate(headings, start=2)) @pytest.mark.parametrize( - "strains,headers", [ - (("BXD1", "BXD2", "BXD3"), ("ProbeSet", "BXD3", "BXD1")), - (("AStrain", "AnotherStrain", "YetAnotherStrain"), - ("Individual", "AStrain", "AnotherStrain", "YetAnotherStrain"))]) -def test_invalid_header_with_valid_headers(strains, headers): + "headers", [ + (("ProbeSet", "BXD3", "BXD1")), + (("Individual", "AStrain", "AnotherStrain", "YetAnotherStrain"))]) +def test_invalid_header_with_valid_headers(headers): "Verify that the check for header validity works" - assert invalid_header(0, headers) == None + assert invalid_header(0, headers) is None @pytest.mark.parametrize( "strains,headings", [ @@ -76,7 +46,7 @@ def test_invalid_headings_with_valid_headings(strains, headings): def test_duplicate_headers_with_repeated_column_headings(headers, repeated): """Check that parsing fails if any header is duplicated""" assert duplicate_headings(0, headers) == tuple( - DuplicateHeading(0, head, cols, ( + DuplicateHeading(0, cols, head, ( f"Heading '{head}', is repeated in columns " f"{','.join(str(i) for i in cols)}")) for head, cols in repeated.items()) @@ -88,4 +58,3 @@ def test_duplicate_headers_with_repeated_column_headings(headers, repeated): def test_duplicate_headers_with_unique_column_headings(headers): """Check that parsing fails if any header is duplicated""" assert duplicate_headings(0, headers) == tuple() - |