Skip to content

Commit

Permalink
add tests for 1.2 and 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
sierra-moxon committed May 13, 2024
1 parent 7843455 commit 7631465
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 9 deletions.
11 changes: 7 additions & 4 deletions ontobio/io/entitywriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ def write_entity(self, entity):
10. Properties <-- entity.properties
"""
print(entity.get('taxon'))

if self.version == "2.0":
vals = [
Expand All @@ -147,21 +148,23 @@ def write_entity(self, entity):
entity.get('full_name'), # DB_Object_Name
entity.get('synonyms'), # DB_Object_Synonyms
entity.get('type'), # DB_Object_Type
normalize_taxon(entity["NCBITaxon"]["id"]), # DB_Object_Taxon
normalize_taxon(entity.get("taxon").get("id")), # DB_Object_Taxon
"", # Encoded_by
entity.get('parents'), # Parent_Protein
"", # Protein_Containing_Complex_Members
entity.get('xrefs'), # DB_Xrefs
entity.get('properties') # Gene_Product_Properties
]
else:
prefix, local_id = self._split_prefix(entity)
vals = [
entity.get('id').split(":")[0], # DB
entity.get('label').split(":")[1], # DB_Object_ID
prefix, # DB
local_id, # DB_Object_ID
entity.get('label'), # DB_Object_Symbol
entity.get('full_name'), # DB_Object_Symbol
entity.get('synonyms'), # DB_Object_Name
entity.get('type'), # DB_Object_Synonyms
normalize_taxon(entity["NCBITaxon"]["id"]), # DB_Object_Type
normalize_taxon(entity.get("taxon").get("id")), # taxon
entity.get('parents'), # Parent_Object_ID
entity.get('xrefs'), # DB_Xref(s)
entity.get('properties') # Properties
Expand Down
53 changes: 48 additions & 5 deletions tests/test_gpiwriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
from ontobio.io import entitywriter, gafgpibridge


def test_header_newline():
def test_gpi_2_0_writer():
gpi_obj = {
'id': "MGI:MGI:1918911",
'label': "0610005C13Rik", # db_object_symbol,
'full_name': "RIKEN cDNA 0610005C13 gene", # db_object_name,
'synonyms': [],
'type': ["SO:0000000"], # db_object_type,
'taxon': "NCBITaxon:10090",
'taxon': {"id": "NCBITaxon:10090"},
'encoded_by': "", # encoded_by
'parents': "",
'protein_containing_complex_members': "", # protein_containing_complex_members
Expand All @@ -22,13 +22,56 @@ def test_header_newline():
entity = gafgpibridge.Entity(gpi_obj)

out = io.StringIO()
gpiwriter = entitywriter.GpiWriter(file=out)
gpiwriter.write_entity(entity)
gpiwriter20 = entitywriter.GpiWriter(file=out, version="2.0")
gpiwriter20.write_entity(entity)
outlines = out.getvalue().split("\n")

expected_lines = [
"!gpi-version: 2.0",
"MGI:1918911\t0610005C13Rik\tRIKEN cDNA 0610005C13 gene\t\tSO:0000000\tNCBITaxon:10090\t\t\t\t\t",
"MGI:MGI:1918911\t0610005C13Rik\tRIKEN cDNA 0610005C13 gene\t\tSO:0000000\ttaxon:10090\t\t\t\t\t",
""
]
assert expected_lines == outlines

out = io.StringIO()
gpiwriter12 = entitywriter.GpiWriter(file=out, version="1.2")
gpiwriter12.write_entity(entity)
outlines = out.getvalue().split("\n")

expected_lines = [
"!gpi-version: 1.2",
"MGI\tMGI:1918911\t0610005C13Rik\tRIKEN cDNA 0610005C13 gene\t\tSO:0000000\ttaxon:10090\t\t\t\t\t",
""
]
assert expected_lines == outlines


def test_gpi_1_2_writer():
gpi_obj = {
'id': "MGI:MGI:1918911",
'label': "0610005C13Rik", # db_object_symbol,
'full_name': "RIKEN cDNA 0610005C13 gene", # db_object_name,
'synonyms': [],
'type': ["SO:0000000"], # db_object_type,
'taxon': {"id": "NCBITaxon:10090"},
'encoded_by': "", # encoded_by
'parents': "",
'protein_containing_complex_members': "", # protein_containing_complex_members
'xrefs': "",
'properties': ""

}

entity = gafgpibridge.Entity(gpi_obj)

out = io.StringIO()
gpiwriter20 = entitywriter.GpiWriter(file=out, version="1.2")
gpiwriter20.write_entity(entity)
outlines = out.getvalue().split("\n")

expected_lines = [
"!gpi-version: 1.2",
"MGI\tMGI:1918911\t0610005C13Rik\tRIKEN cDNA 0610005C13 gene\t\tSO:0000000\ttaxon:10090\t\t\t",
""
]
assert expected_lines == outlines

0 comments on commit 7631465

Please sign in to comment.