def test_param_must_have_key_and_type(saved_cwd): Pipeline( "test", make_cfg("stages: [trim_bbmap]\n" "params:\n" " someparam:\n" " key: A\n" " type: int\n" " default: 1")) with pytest.raises(YmpConfigError): Pipeline( "test", make_cfg("stages: [trim_bbmap]\n" "params:\n" " someparam:\n" " type: int\n" " default: 1")) with pytest.raises(YmpConfigError): Pipeline( "test", make_cfg("stages: [trim_bbmap]\n" "params:\n" " someparam:\n" " key: A\n" " default: 1"))
def test_pipeline_can_provide(saved_cwd): pipe = Pipeline("test_pipe", make_cfg("stages:\n" " - trim_bbmap\n" " - ref_phiX")) assert pipe.can_provide(set(("/{sample}.R1.fq.gz", ))) == { "/{sample}.R1.fq.gz": ".trim_bbmap" }
def test_pipeline_path_with_param(saved_cwd): stack = mock() stack.name = "stack.test_pipe" stack.stage_name = "test_pipe" pipe = Pipeline("test_pipe", make_cfg("stages:\n" " - trim_bbmapQ10\n" " - ref_phiX")) assert pipe.get_path(stack) == "stack.trim_bbmapQ10.ref_phiX" assert pipe.get_path(stack, "/{sample}.R1.fq.gz") == "stack.trim_bbmapQ10" assert pipe.get_path( stack, "/{sample}.fasta.gz") == "stack.trim_bbmapQ10.ref_phiX"
def test_parameter_must_be_mapping(saved_cwd): with pytest.raises(YmpConfigError): Pipeline("test", make_cfg("stages: [trim_bbmap]\n" "params:\n" " someparam:")) Pipeline( "test", make_cfg("stages: [trim_bbmap]\n" "params:\n" " someparam:\n" " key: A\n" " type: int\n" " default: 1"))
def test_pipeline_stage_maybe_dict(saved_cwd): Pipeline( "test", make_cfg("stages:\n" " - trim_bbmap\n" " - trim_bbmap:\n" " - trim_bbmap\n" " - trim_bbmap:\n"))
def test_stage_with_curly(saved_cwd): pipe = Pipeline( "test", make_cfg("params:\n" " tool:\n" " key: _\n" " type: choice\n" " default: bbmap\n" " value: [bbmap, sickle]\n" "stages:\n" " - trim_{tool}")) assert pipe.params
def test_pipeline_must_have_stages(saved_cwd): with pytest.raises(YmpConfigError): Pipeline("test", make_cfg("hide: False"))
def test_params_must_be_mapping(saved_cwd): with pytest.raises(YmpConfigError): Pipeline("test", make_cfg("stages: [trim_bbmap]\n" "params: wrong")) with pytest.raises(YmpConfigError): Pipeline("test", make_cfg("stages: [trim_bbmap]\n" "params: [wrong]")) Pipeline("test", make_cfg("stages: [trim_bbmap]\n" "params:"))
def test_stage_not_parametrizable(saved_cwd): pipe = Pipeline("test", make_cfg("stages:\n" " - ref_phiX\n")) assert pipe.params == []
def test_param_from_stage(saved_cwd): pipe = Pipeline("test", make_cfg("stages: [trim_bbmap]")) assert pipe.params
def test_pipeline_stage_name_must_not_be_empty(saved_cwd): with pytest.raises(YmpConfigError): Pipeline("test", make_cfg("stages:\n" " -"))