MCPcopy Create free account
hub / github.com/Materials-Consortia/optimade-python-tools / inner

Function inner

tests/server/query_params/conftest.py:16–51  ·  view source on GitHub ↗
(
        request: str,
        expected_included_types: list | set,
        expected_included_resources: list | set,
        expected_relationship_types: list | set | None = None,
        server: str = "regular",
    )

Source from the content-addressed store, hash-verified

14 """Fixture to check "good" `include` response"""
15
16 def inner(
17 request: str,
18 expected_included_types: list | set,
19 expected_included_resources: list | set,
20 expected_relationship_types: list | set | None = None,
21 server: str = "regular",
22 ):
23 response = get_good_response(request, server)
24
25 response_data = (
26 response["data"]
27 if isinstance(response["data"], list)
28 else [response["data"]]
29 )
30
31 included_resource_types = list({_["type"] for _ in response["included"]})
32 assert sorted(expected_included_types) == sorted(included_resource_types), (
33 f"Expected relationship types: {expected_included_types}. "
34 f"Does not match relationship types in response's included field: {included_resource_types}",
35 )
36
37 if expected_relationship_types is None:
38 expected_relationship_types = expected_included_types
39 relationship_types = set()
40 for entry in response_data:
41 relationship_types.update(set(entry.get("relationships", {}).keys()))
42 assert sorted(expected_relationship_types) == sorted(relationship_types), (
43 f"Expected relationship types: {expected_relationship_types}. "
44 f"Does not match relationship types found in response data: {relationship_types}",
45 )
46
47 included_resources = [_["id"] for _ in response["included"]]
48 assert len(included_resources) == len(expected_included_resources), response[
49 "included"
50 ]
51 assert sorted(set(included_resources)) == sorted(expected_included_resources)
52
53 return inner
54

Callers

nothing calls this directly

Calls 4

get_good_responseFunction · 0.85
updateMethod · 0.80
get_required_fieldsMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected