Skip to content

Commit 70444ac

Browse files
deeenesclaude
andcommitted
Update tests for the relations/annotations API
Replace assertions on the removed interactions/associations endpoints and the dropped direction/sign enum filters with checks against the new exports/relations/parquet endpoint and its real parameters. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 9bb872d commit 70444ac

2 files changed

Lines changed: 30 additions & 54 deletions

File tree

tests/test_inventory.py

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ def test_builds_endpoints(self):
2727

2828
assert len(endpoints) > 0
2929
assert 'exports/entities/parquet' in endpoints
30-
assert 'exports/interactions/parquet' in endpoints
31-
assert 'exports/associations/parquet' in endpoints
30+
assert 'exports/relations/parquet' in endpoints
31+
assert 'exports/annotations/parquet' in endpoints
3232

3333
def test_entity_filters(self):
3434

@@ -41,18 +41,15 @@ def test_entity_filters(self):
4141
assert 'taxonomy_ids' in ep.params
4242
assert 'entity_types' in ep.params
4343

44-
def test_interaction_filters(self):
44+
def test_relation_filters(self):
4545

4646
endpoints = _build_static_fallback()
47-
ep = endpoints['exports/interactions/parquet']
47+
ep = endpoints['exports/relations/parquet']
4848

49-
assert 'direction' in ep.params
50-
pdef = ep.params['direction']
51-
assert pdef.allowed_values == [
52-
'any',
53-
'directed',
54-
'undirected',
55-
]
49+
assert 'subject_entity_pks' in ep.params
50+
assert 'object_entity_pks' in ep.params
51+
assert 'predicates' in ep.params
52+
assert 'relation_categories' in ep.params
5653

5754

5855
class TestParseOpenapi:
@@ -72,8 +69,8 @@ def test_parse_local_spec(self):
7269

7370
assert len(endpoints) > 0
7471
assert 'exports/entities/parquet' in endpoints
75-
assert 'exports/interactions/parquet' in endpoints
76-
assert 'exports/associations/parquet' in endpoints
72+
assert 'exports/relations/parquet' in endpoints
73+
assert 'exports/annotations/parquet' in endpoints
7774

7875
def test_export_endpoints_have_filters(self):
7976

@@ -84,19 +81,12 @@ def test_export_endpoints_have_filters(self):
8481
spec = json.load(f)
8582

8683
endpoints = parse_openapi(spec)
87-
ep = endpoints['exports/interactions/parquet']
84+
ep = endpoints['exports/relations/parquet']
8885

8986
assert ep.method == 'POST'
9087
assert ep.response_format == 'parquet'
91-
assert 'entity_ids' in ep.params
92-
assert 'direction' in ep.params
93-
94-
direction = ep.params['direction']
95-
assert direction.allowed_values == [
96-
'any',
97-
'directed',
98-
'undirected',
99-
]
88+
assert 'sources' in ep.params
89+
assert 'predicates' in ep.params
10090

10191
def test_ontology_endpoints(self):
10292

@@ -131,22 +121,23 @@ def test_params_method(self):
131121
inv = Inventory(base_url='http://localhost:99999')
132122
inv.load()
133123

134-
params = inv.params('exports/interactions/parquet')
124+
params = inv.params('exports/relations/parquet')
135125

136-
assert 'entity_ids' in params
137-
assert isinstance(params['entity_ids'], ParamDef)
126+
assert 'sources' in params
127+
assert isinstance(params['sources'], ParamDef)
138128

139-
def test_allowed_values_method(self):
129+
def test_allowed_values_unconstrained_relation_filter(self):
140130

141131
inv = Inventory(base_url='http://localhost:99999')
142132
inv.load()
143133

144134
values = inv.allowed_values(
145-
'exports/interactions/parquet',
146-
'direction',
135+
'exports/relations/parquet',
136+
'sources',
147137
)
148138

149-
assert values == ['any', 'directed', 'undirected']
139+
# The static fallback does not enumerate allowed sources.
140+
assert values is None
150141

151142
def test_allowed_values_unconstrained(self):
152143

tests/test_query.py

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from omnipath_client._errors import (
99
UnknownEndpointError,
1010
UnknownParameterError,
11-
InvalidParameterValueError,
1211
)
1312
from omnipath_client._inventory import Inventory
1413

@@ -39,16 +38,19 @@ def test_valid_entity_query(self, query_builder):
3938
assert query.endpoint.path == '/exports/entities/parquet'
4039
assert query.params == {'taxonomy_ids': ['9606']}
4140

42-
def test_valid_interaction_query(self, query_builder):
41+
def test_valid_relation_query(self, query_builder):
4342

4443
query = query_builder.build(
45-
'exports/interactions/parquet',
46-
entity_ids=['Q9Y6K9'],
47-
direction='directed',
44+
'exports/relations/parquet',
45+
entity_pks=['12345'],
46+
sources=['signor'],
47+
predicates=['interacts_with'],
4848
)
4949

50-
assert query.params['entity_ids'] == ['Q9Y6K9']
51-
assert query.params['direction'] == 'directed'
50+
assert query.endpoint.path == '/exports/relations/parquet'
51+
assert query.params['entity_pks'] == ['12345']
52+
assert query.params['sources'] == ['signor']
53+
assert query.params['predicates'] == ['interacts_with']
5254

5355
def test_unknown_endpoint(self, query_builder):
5456

@@ -63,23 +65,6 @@ def test_unknown_parameter(self, query_builder):
6365
bogus_param='value',
6466
)
6567

66-
def test_invalid_enum_value(self, query_builder):
67-
68-
with pytest.raises(InvalidParameterValueError):
69-
query_builder.build(
70-
'exports/interactions/parquet',
71-
direction='sideways',
72-
)
73-
74-
def test_valid_enum_value(self, query_builder):
75-
76-
query = query_builder.build(
77-
'exports/interactions/parquet',
78-
sign='positive',
79-
)
80-
81-
assert query.params['sign'] == 'positive'
82-
8368
def test_none_values_skipped(self, query_builder):
8469

8570
query = query_builder.build(

0 commit comments

Comments
 (0)