コード例 #1
0
def test_extra_field():
    samplesheet = samplesheet_csv_to_samplegroup(
        FILESDIR / Path("extra_fields.csv"))
    assert samplesheet[0].additional_properties["extra_field1"] == "xf1"
    assert samplesheet[0].additional_properties["extra_field2"] == "xf2"
    assert samplesheet[1].additional_properties["extra_field1"] == "xfI"
    assert samplesheet[1].additional_properties["extra_field2"] is None
コード例 #2
0
def test_samplesheet_to_old_style_json():
    output = samplesheet_to_json(COMPLETE_CSV,
                                 old_style_json=True,
                                 file_presence_check=False)
    correct_output = output_conversions.samplegroup_to_biowdl_old_json(
        input_conversions.samplesheet_csv_to_samplegroup(COMPLETE_CSV))
    assert output == correct_output
コード例 #3
0
def test_main(correct_md5sum_samplesheet, capsys):
    sys.argv = [
        "biowdl-input-converter", "--check-file-md5sums",
        str(correct_md5sum_samplesheet)
    ]
    biowdl_input_converter.main()
    stdout = capsys.readouterr().out
    correct_output = output_conversions.samplegroup_to_biowdl_new_json(
        input_conversions.samplesheet_csv_to_samplegroup(
            correct_md5sum_samplesheet)) + '\n'
    assert stdout == correct_output
コード例 #4
0
def test_main_output_file(correct_md5sum_samplesheet):
    output_file = Path(tempfile.mkstemp()[1])
    sys.argv = [
        "biowdl-input-converter", "--check-file-md5sums", "-o",
        str(output_file),
        str(correct_md5sum_samplesheet)
    ]
    biowdl_input_converter.main()
    output_contents = output_file.read_text()
    correct_output = output_conversions.samplegroup_to_biowdl_new_json(
        input_conversions.samplesheet_csv_to_samplegroup(
            correct_md5sum_samplesheet)) + '\n'
    assert output_contents == correct_output
    os.remove(str(output_file))
コード例 #5
0
def test_no_optional_fields():
    samplesheet = samplesheet_csv_to_samplegroup(
        FILESDIR / Path("no_optional_fields.csv"))
    assert samplesheet[0].id == "s1"
    assert samplesheet[0].libraries[0].id == "lib1"
    assert samplesheet[0].libraries[0].readgroups[0].id == "rg1"
    assert samplesheet[0].libraries[0].readgroups[0].R1 == "r1.fq"
    assert samplesheet[0].libraries[0].readgroups[0].R1_md5 is None
    assert samplesheet[0].libraries[0].readgroups[0].R2 is None
    assert samplesheet[0].libraries[0].readgroups[0].R2_md5 is None
    assert samplesheet[0].libraries[0].readgroups[0].additional_properties == {}  # noqa: E501

    assert samplesheet[1].id == "s2"
    assert samplesheet[1].libraries[0].id == "lib1"
    assert samplesheet[1].libraries[0].readgroups[0].id == "rg1"
    assert samplesheet[1].libraries[0].readgroups[0].R1 == "r1.fq"
    assert samplesheet[1].libraries[0].readgroups[0].R1_md5 is None
    assert samplesheet[1].libraries[0].readgroups[0].R2 is None
    assert samplesheet[1].libraries[0].readgroups[0].R2_md5 is None
    assert samplesheet[1].libraries[0].readgroups[0].additional_properties == {}  # noqa: E501
コード例 #6
0
def test_conflicting_properties():
    with pytest.raises(ValueError) as error:
        samplesheet_csv_to_samplegroup(
            FILESDIR / Path("conflicting_properties.csv")
        )
    error.match("Conflicting fields in column 'extra_field1' for sample 's1'")
コード例 #7
0
def test_mixed_empty_and_filled_additional_properties():
    samplesheet = samplesheet_csv_to_samplegroup(
        FILESDIR / Path("mixed_empty_filled_addprops.csv"))
    assert len(samplesheet.samples) == 1
    assert samplesheet[0].additional_properties["extra_field2"] == "xf2"
コード例 #8
0
def test_main_missing_field():
    with pytest.raises(KeyError) as e:
        samplesheet_csv_to_samplegroup(
            FILESDIR / Path("missing_field.csv"))
    assert e.match("sample")
コード例 #9
0
def test_main_tab_without_readgroup():
    with (FILESDIR / Path("without_readgroup.yml")).open() as f:
        result = f.read()
    samplegroup = samplesheet_csv_to_samplegroup(
        FILESDIR / Path("without_readgroup.tsv"))
    assert samplegroup_to_biowdl_old_yaml(samplegroup) == result
コード例 #10
0
def test_main_semicolon_without_md5():
    with (FILESDIR / Path("without_md5.yml")).open() as f:
        result = f.read()
    samplegroup = samplesheet_csv_to_samplegroup(
        FILESDIR / Path("without_md5.csv"))
    assert samplegroup_to_biowdl_old_yaml(samplegroup) == result
コード例 #11
0
def test_main_comma_complete():
    with (FILESDIR / Path("complete.yml")).open() as f:
        result = f.read()
    samplegroup = samplesheet_csv_to_samplegroup(
        FILESDIR / Path("complete.csv"))
    assert samplegroup_to_biowdl_old_yaml(samplegroup) == result
コード例 #12
0
def test_duplicate_readgroup():
    with pytest.raises(ValueError) as error:
        samplesheet_csv_to_samplegroup(
            FILESDIR / Path("duplicate_readgroup.csv"))
    assert error.match("Duplicate readgroup id s2-lib1-rg1")
コード例 #13
0
def test_samplesheet_to_json_no_checks():
    output = samplesheet_to_json(COMPLETE_CSV, file_presence_check=False)
    correct_output = output_conversions.samplegroup_to_biowdl_new_json(
        input_conversions.samplesheet_csv_to_samplegroup(COMPLETE_CSV))
    assert output == correct_output