def test_entry_parsing_only_include_features():
    """genbank entry parsing only include features"""
    parsed = parse_genbank(SINGLE_ENTRY, include=["features"])
    assert isinstance(parsed, dict)

    assert not "locus" in parsed
    assert not "division" in parsed
    assert not "orientation" in parsed
    assert not "strandedness" in parsed
    assert not "nucleic_acid" in parsed
    assert not "date" in parsed
    assert not "definition" in parsed
    assert not "accession" in parsed
    assert not "version" in parsed
    assert not "gi" in parsed
    assert not "source" in parsed
    assert not "organism" in parsed
    assert not "taxonomy" in parsed

    assert "features" in parsed
    assert 3 == len(parsed["features"])
    assert "source" == parsed["features"][0][0]
    assert "gene" == parsed["features"][1][0]
    assert "CDS" == parsed["features"][2][0]

    assert not "sequence" in parsed
def test_entry_parsing_only_include_source():
    """genbank entry parsing only include source"""
    parsed = parse_genbank(SINGLE_ENTRY, include=["source"])
    assert isinstance(parsed, dict)

    assert not "locus" in parsed
    assert not "division" in parsed
    assert not "orientation" in parsed
    assert not "strandedness" in parsed
    assert not "nucleic_acid" in parsed
    assert not "date" in parsed
    assert not "definition" in parsed
    assert not "accession" in parsed
    assert not "version" in parsed
    assert not "gi" in parsed

    assert "source" in parsed
    assert "Pan troglodytes (chimpanzee)" == parsed["source"]

    assert "organism" in parsed
    assert "Pan troglodytes" == parsed["organism"]

    assert "taxonomy" in parsed
    # assert '' == parsed['taxonomy']

    assert not "features" in parsed
    assert not "sequence" in parsed
def test_entry_parsing_only_include_version():
    """genbank entry parsing only include version"""
    parsed = parse_genbank(SINGLE_ENTRY, include=["version"])
    assert isinstance(parsed, dict)

    assert not "locus" in parsed
    assert not "division" in parsed
    assert not "orientation" in parsed
    assert not "strandedness" in parsed
    assert not "nucleic_acid" in parsed
    assert not "date" in parsed
    assert not "definition" in parsed

    assert "accession" in parsed
    assert "NM_001071821" == parsed["accession"]

    assert "version" in parsed
    assert "1" == parsed["version"]

    assert "gi" in parsed
    assert "115392118" == parsed["gi"]

    assert not "source" in parsed
    assert not "organism" in parsed
    assert not "taxonomy" in parsed
    assert not "features" in parsed
    assert not "sequence" in parsed
def test_entry_parsing_only_include_locus():
    """genbank entry parsing only include locus"""
    parsed = parse_genbank(SINGLE_ENTRY, include=["locus"])
    assert isinstance(parsed, dict)

    assert "locus" in parsed
    assert "NM_001071821" == parsed["locus"]

    assert "division" in parsed
    assert "PRI" == parsed["division"]

    assert "orientation" in parsed
    assert "linear" == parsed["orientation"]

    assert "strandedness" in parsed
    assert "" == parsed["strandedness"]

    assert "nucleic_acid" in parsed
    assert "mRNA" == parsed["nucleic_acid"]

    assert "date" in parsed
    assert "09-OCT-2006" == parsed["date"]

    assert not "definition" in parsed
    assert not "accession" in parsed
    assert not "version" in parsed
    assert not "gi" in parsed
    assert not "source" in parsed
    assert not "organism" in parsed
    assert not "taxonomy" in parsed
    assert not "features" in parsed
    assert not "sequence" in parsed
def test_entry_parsing():
    """genbank entry parsing"""
    parsed = parse_genbank(SINGLE_ENTRY)
    assert isinstance(parsed, dict)

    assert "locus" in parsed
    assert "NM_001071821" == parsed["locus"]

    assert "division" in parsed
    assert "PRI" == parsed["division"]

    assert "orientation" in parsed
    assert "linear" == parsed["orientation"]

    assert "strandedness" in parsed
    assert "" == parsed["strandedness"]

    assert "nucleic_acid" in parsed
    assert "mRNA" == parsed["nucleic_acid"]

    assert "date" in parsed
    assert "09-OCT-2006" == parsed["date"]

    assert "definition" in parsed
    assert "Pan troglodytes somatic cytochrome c (CYCS), mRNA." == parsed["definition"]

    assert "accession" in parsed
    assert "NM_001071821" == parsed["accession"]

    assert "version" in parsed
    assert "1" == parsed["version"]

    assert "gi" in parsed
    assert "115392118" == parsed["gi"]

    assert "source" in parsed
    assert "Pan troglodytes (chimpanzee)" == parsed["source"]

    assert "organism" in parsed
    assert "Pan troglodytes" == parsed["organism"]

    assert "taxonomy" in parsed
    # assert '' == parsed['taxonomy']

    assert "features" in parsed
    assert "source" == parsed["features"][0][0]
    assert "gene" == parsed["features"][1][0]
    assert "CDS" == parsed["features"][2][0]

    assert "sequence" in parsed
    assert 318 == len(parsed["sequence"])
def test_entry_parsing_only_include_definition():
    """genbank entry parsing only include definition"""
    parsed = parse_genbank(SINGLE_ENTRY, include=["definition"])
    assert isinstance(parsed, dict)

    assert not "locus" in parsed
    assert not "division" in parsed
    assert not "orientation" in parsed
    assert not "strandedness" in parsed
    assert not "nucleic_acid" in parsed
    assert not "date" in parsed

    assert "definition" in parsed
    assert "Pan troglodytes somatic cytochrome c (CYCS), mRNA." == parsed["definition"]

    assert not "accession" in parsed
    assert not "version" in parsed
    assert not "gi" in parsed
    assert not "source" in parsed
    assert not "organism" in parsed
    assert not "taxonomy" in parsed
    assert not "features" in parsed
    assert not "sequence" in parsed