Skip to content

Commit 7495e08

Browse files
committed
Fix a TypeError when trying to filter by parts of an IRI
1 parent 8c9508d commit 7495e08

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

fairgraph/queries.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,8 @@ def is_valid(val):
489489
val = UUID(val)
490490
except ValueError:
491491
pass
492+
if isinstance(val, str) and IRI in property.types:
493+
return True
492494
return isinstance(val, (IRI, UUID, *property.types)) or (
493495
isinstance(val, KGProxy) and not set(val.classes).isdisjoint(property.types)
494496
)

test/test_openminds_publication.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
import datetime
2+
23
import pytest
4+
from openminds import IRI
35
import fairgraph.openminds.core as omcore
46
import fairgraph.openminds.publications as ompub
57
from fairgraph.kgproxy import KGProxy
68
from fairgraph.caching import object_cache
9+
from fairgraph.utility import as_list
10+
11+
from test.utils import kg_client, skip_if_no_connection
712

813

914
def test_get_journal():
@@ -75,3 +80,12 @@ def test_get_journal_no_issue():
7580

7681
expected = "AL Hodgkin & AF Huxley (1952). A quantitative description of membrane current and its application to conduction and excitation in nerve. The Journal of Physiology, 117: 500–44."
7782
assert article.get_citation_string(client=None) == expected
83+
84+
85+
@skip_if_no_connection
86+
def test_filter_on_iri(kg_client):
87+
# test that filtering by IRI accepts string values, even though the value itself is an IRI object
88+
tutorial_notebooks = as_list(ompub.LearningResource.list(kg_client, size=20, iri="ipynb"))
89+
assert len(tutorial_notebooks) > 10
90+
assert all(isinstance(nb.iri, IRI) for nb in tutorial_notebooks)
91+
assert all("ipynb" in str(nb.iri) for nb in tutorial_notebooks)

0 commit comments

Comments
 (0)