def test_parse_with_parameters(tmp_path): parser = AdapterParser(max_errors=0.2, min_overlap=4, read_wildcards=False, adapter_wildcards=False, indels=False) a = parser._parse('ACGTACGT; e=0.15', 'front') assert isinstance(a, FrontAdapter) assert a.max_error_rate == 0.15 assert a.min_overlap == 4 a = parser._parse('ACGTAAAA; o=5; e=0.11', 'back') assert isinstance(a, BackAdapter) assert a.max_error_rate == 0.11 assert a.min_overlap == 5 for spec in ('thename=ACG;e=0.15 ... TGT;e=0.17', 'thename=ACG;e=0.15...TGT;e=0.17'): a = parser._parse(spec, 'back') assert isinstance(a, LinkedAdapter) assert a.front_adapter.max_error_rate == 0.15 assert a.back_adapter.max_error_rate == 0.17 with pytest.raises(ValueError) as e: parser._parse("A", "invalid-cmdline-type") assert "cmdline_type cannot be" in e.value.args[0]
def test_parse_with_adapter_sequence_as_a_path(tmp_path): parser = AdapterParser() with pytest.raises(InvalidCharacter): parser._parse("invalid.character", "back") # user forgot to write "file:" path = (tmp_path / "afile.fasta") path.write_text(">abc\nACGT\n") with pytest.raises(InvalidCharacter) as e: list(parser.parse(str(path), "back")) assert "A file exists named" in e.value.args[0]
def test_parse_with_parameters(): parser = AdapterParser( max_error_rate=0.2, min_overlap=4, read_wildcards=False, adapter_wildcards=False, indels=False) a = parser._parse('ACGTACGT; e=0.15', 'front') assert a.max_error_rate == 0.15 assert a.min_overlap == 4 a = parser._parse('ACGTAAAA; o=5; e=0.11', 'back') assert a.max_error_rate == 0.11 assert a.min_overlap == 5 for spec in ('thename=ACG;e=0.15 ... TGT;e=0.17', 'thename=ACG;e=0.15...TGT;e=0.17'): a = parser._parse(spec, 'back') assert isinstance(a, LinkedAdapter) assert a.front_adapter.max_error_rate == 0.15 assert a.back_adapter.max_error_rate == 0.17