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
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
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
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))
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
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'")
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"
def test_main_missing_field(): with pytest.raises(KeyError) as e: samplesheet_csv_to_samplegroup( FILESDIR / Path("missing_field.csv")) assert e.match("sample")
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
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
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
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")
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