Skip to content

Commit 13737ca

Browse files
test: improve sibling exception test.
1 parent ba2947d commit 13737ca

1 file changed

Lines changed: 20 additions & 9 deletions

File tree

tests/test_queries/test_relations.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def test_is_ancestor_false(relations, dummy_relations):
6666
assert relations.is_ancestor('H', 'B') is False
6767
assert relations.is_ancestor('K1', 'K2') is False
6868

69-
assert dummy_relations.is_ancestor('child', 'root') is False
69+
assert dummy_relations.is_ancestor('', '') is False
7070

7171

7272
def test_is_ancestor_self(relations):
@@ -90,9 +90,6 @@ def test_is_ancestor_exception(relations, monkeypatch):
9090
relations.is_ancestor('A', 'D')
9191

9292

93-
# TODO: Add tests to verify an exception is raised when one of the inputs is None or empty.
94-
95-
9693
# ---- Function: is_descendant()
9794
def test_is_descendant_true(relations):
9895
assert relations.is_descendant('D', 'A') is True
@@ -144,18 +141,32 @@ def test_is_sibling_no_shared_parent(relations):
144141
assert relations.is_sibling('K', 'L') is False
145142

146143

147-
def test_is_sibling_exception(relations, monkeypatch):
144+
def test_is_sibling_handles_runtime_error_gracefully(relations, monkeypatch):
145+
instances = []
146+
148147
class DummyTerm:
149-
def superclasses(self, distance=1, with_self=False):
148+
def __init__(self):
149+
instances.append(self)
150+
151+
def superclasses(self, _distance=1, _with_self=False):
150152
raise RuntimeError('fail')
151153

152154
monkeypatch.setattr(
153155
relations._OntologyRelations__navigator,
154156
'get_term',
155-
lambda x: DummyTerm(),
157+
lambda _x: DummyTerm(),
156158
)
157-
with pytest.raises(RuntimeError):
158-
relations.is_sibling('A', 'B')
159+
160+
result = relations.is_sibling('B', 'A')
161+
162+
# Verify result fallback
163+
assert result is False or result is None
164+
165+
# Verify get_term was called twice
166+
assert len(instances) == 2
167+
168+
# Verify both are instances of DummyTerm
169+
assert all(isinstance(obj, DummyTerm) for obj in instances)
159170

160171

161172
# ---- Function: get_common_ancestors()

0 commit comments

Comments
 (0)