Skip to content

Commit 89501d1

Browse files
authored
Handle missing CURIE validation rows gracefully (#51)
1 parent e26381b commit 89501d1

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

pandasaurus/curie_validator.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,14 @@ def construct_term_list(seed_list) -> List[Term]:
142142
term_obsoletion = CurieValidator.find_obsolete_terms(seed_list)
143143
term_list: List[Term] = list()
144144
for seed in seed_list:
145+
validation_entry = term_validation.get(seed, {"label": None, "valid": False})
146+
obsoletion_entry = term_obsoletion.get(seed, {})
145147
term = Term(
146-
term_validation.get(seed).get("label"),
148+
validation_entry.get("label"),
147149
seed,
148-
term_validation.get(seed).get("valid"),
149-
term_obsoletion.get(seed).get("new_term_label") if seed in term_obsoletion else None,
150-
term_obsoletion.get(seed).get("new_term") if seed in term_obsoletion else None,
150+
bool(validation_entry.get("valid")),
151+
obsoletion_entry.get("new_term_label"),
152+
obsoletion_entry.get("new_term"),
151153
)
152154
term_list.append(term)
153155
return term_list

test/data/curie_validator_data.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,20 @@ def get_expected_construct_term_list():
7070
Term("naive B cell", "CL:0000788", True),
7171
Term("gamma-delta T cell", "CL:0000798", True),
7272
]
73+
74+
75+
def get_construct_term_list_missing_validation_data():
76+
return ["CL:0000084", "CL:9999999"]
77+
78+
79+
def get_construct_term_list_missing_validation_result():
80+
return [
81+
{"label": "T cell", "term": "CL:0000084"},
82+
]
83+
84+
85+
def get_expected_construct_term_list_missing_validation():
86+
return [
87+
Term("T cell", "CL:0000084", True),
88+
Term(None, "CL:9999999", False),
89+
]

test/test_curie_validator.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
from test.data.curie_validator_data import (
22
get_construct_term_list_data,
3+
get_construct_term_list_missing_validation_data,
4+
get_construct_term_list_missing_validation_result,
35
get_construct_term_list_result,
46
get_expected_construct_term_list,
7+
get_expected_construct_term_list_missing_validation,
58
get_expected_find_obsolete_terms,
69
get_expected_validate_curie_list,
710
get_find_obsolete_terms_data,
@@ -139,3 +142,18 @@ def test_construct_term_list(mocker):
139142
)
140143

141144
assert CurieValidator.construct_term_list(get_construct_term_list_data()) == get_expected_construct_term_list()
145+
146+
147+
def test_construct_term_list_handles_missing_validation(mocker):
148+
mocker.patch(
149+
"pandasaurus.curie_validator.run_sparql_query",
150+
side_effect=[
151+
iter(get_construct_term_list_missing_validation_result()),
152+
iter([]),
153+
],
154+
)
155+
156+
assert (
157+
CurieValidator.construct_term_list(get_construct_term_list_missing_validation_data())
158+
== get_expected_construct_term_list_missing_validation()
159+
)

0 commit comments

Comments
 (0)