Skip to content

Commit f50d786

Browse files
authored
Merge pull request #183 from biolink/fix_descendents
fixes tests associated with get_descendents
2 parents 080b48c + 7a9a46c commit f50d786

3 files changed

Lines changed: 59 additions & 4 deletions

File tree

bmt/toolkit.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1061,7 +1061,13 @@ def get_element(self, name: str) -> Optional[Element]:
10611061
element = self.get_element(name.replace("_", " "))
10621062
if element is None:
10631063
for e, el in self.view.all_elements().items():
1064-
if el.name.lower() == name.lower():
1064+
el_normalized = el.name.lower().replace(' ', '').replace('_', '')
1065+
name_normalized = name.lower().replace(' ', '').replace('_', '')
1066+
parsed_normalized = parsed_name.lower().replace(' ', '').replace('_', '')
1067+
if (el.name.lower() == name.lower() or
1068+
el.name.lower() == parsed_name.lower() or
1069+
el_normalized == name_normalized or
1070+
el_normalized == parsed_normalized):
10651071
element = el
10661072

10671073
if isinstance(element, ClassDefinition) and element.class_uri is None:

poetry.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/unit/test_toolkit.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,3 +1258,52 @@ def test_get_all_types(toolkit):
12581258
def test_get_all_multivalued_slots(toolkit):
12591259
assert "synonym" in toolkit.get_all_multivalued_slots()
12601260
assert "id" not in toolkit.get_all_multivalued_slots()
1261+
1262+
1263+
def test_get_descendants_with_biolink_prefix(toolkit):
1264+
assert 'noncoding RNA product' in toolkit.get_descendants("noncoding RNA product")
1265+
assert 'microRNA' in toolkit.get_descendants("noncoding RNA product")
1266+
assert 'siRNA' in toolkit.get_descendants("noncoding RNA product")
1267+
1268+
assert 'noncoding RNA product' in toolkit.get_descendants("biolink:NoncodingRNAProduct")
1269+
assert 'microRNA' in toolkit.get_descendants("biolink:NoncodingRNAProduct")
1270+
assert 'siRNA' in toolkit.get_descendants("biolink:NoncodingRNAProduct")
1271+
1272+
assert 'microRNA' in toolkit.get_descendants("biolink:MicroRNA")
1273+
assert 'siRNA' in toolkit.get_descendants("biolink:SiRNA")
1274+
1275+
1276+
def test_get_element_with_biolink_prefix_edge_cases(toolkit):
1277+
elem = toolkit.get_element("biolink:NoncodingRNAProduct")
1278+
assert elem is not None
1279+
assert elem.name == "noncoding RNA product"
1280+
1281+
elem = toolkit.get_element("biolink:MicroRNA")
1282+
assert elem is not None
1283+
assert elem.name == "microRNA"
1284+
1285+
elem = toolkit.get_element("biolink:SiRNA")
1286+
assert elem is not None
1287+
assert elem.name == "siRNA"
1288+
1289+
elem = toolkit.get_element("biolink:gene_fusion_with")
1290+
assert elem is not None
1291+
assert elem.name == "gene_fusion_with"
1292+
1293+
elem = toolkit.get_element("biolink:genetic_neighborhood_of")
1294+
assert elem is not None
1295+
assert elem.name == "genetic_neighborhood_of"
1296+
1297+
1298+
def test_get_parent_with_biolink_prefix(toolkit):
1299+
parent = toolkit.get_parent('microRNA')
1300+
assert parent == 'noncoding RNA product'
1301+
1302+
parent_curie = toolkit.get_parent('microRNA', formatted=True)
1303+
assert parent_curie == 'biolink:NoncodingRNAProduct'
1304+
1305+
parent_from_curie = toolkit.get_parent('biolink:microRNA')
1306+
assert parent_from_curie == 'noncoding RNA product'
1307+
1308+
parent_from_curie_formatted = toolkit.get_parent('biolink:microRNA', formatted=True)
1309+
assert parent_from_curie_formatted == 'biolink:NoncodingRNAProduct'

0 commit comments

Comments
 (0)