Changeset View
Changeset View
Standalone View
Standalone View
swh/graphql/tests/functional/test_origin_connection.py
# Copyright (C) 2022 The Software Heritage developers | # Copyright (C) 2022 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from ..data import get_origins | from ..data import get_origins | ||||
from .utils import get_query_response | from .utils import get_query_response | ||||
def test_get(client, storage): | def get_origins_from_api(client, first: int, **args) -> tuple: | ||||
args["first"] = first | |||||
params = ",".join([f"{key}: {val}" for (key, val) in args.items()]) | |||||
query_str = """ | query_str = """ | ||||
{ | { | ||||
origins(first: 10) { | origins(%s) { | ||||
nodes { | nodes { | ||||
url | url | ||||
} | } | ||||
pageInfo { | |||||
hasNextPage | |||||
endCursor | |||||
} | |||||
} | } | ||||
} | } | ||||
""" | """ % ( | ||||
data, _ = get_query_response(client, query_str) | params, | ||||
) | |||||
return get_query_response(client, query_str) | |||||
def test_get(client, storage): | |||||
data, _ = get_origins_from_api(client, 10) | |||||
assert len(data["origins"]["nodes"]) == len(get_origins()) | assert len(data["origins"]["nodes"]) == len(get_origins()) | ||||
douardda: maybe? | |||||
def test_get_filter_by_pattern(client): | def test_get_filter_by_pattern(client): | ||||
query_str = """ | data, _ = get_origins_from_api(client, 10, urlPattern='"somewhere.org/den"') | ||||
Done Inline Actionsit seems wrong to pass GraphQL syntax as params, but ok vlorentz: it seems wrong to pass GraphQL syntax as `params`, but ok | |||||
{ | |||||
origins(first: 10, urlPattern: "somewhere.org/den") { | |||||
nodes { | |||||
url | |||||
} | |||||
} | |||||
} | |||||
""" | |||||
data, _ = get_query_response(client, query_str) | |||||
assert len(data["origins"]["nodes"]) == 1 | assert len(data["origins"]["nodes"]) == 1 | ||||
def test_get_filter_by_non_existing_pattern(client): | def test_get_filter_by_non_existing_pattern(client): | ||||
query_str = """ | data, _ = get_origins_from_api(client, 10, urlPattern='"somewhere.org/den/test/"') | ||||
{ | |||||
origins(first: 10, urlPattern: "somewhere.org/den/test/") { | |||||
nodes { | |||||
url | |||||
} | |||||
} | |||||
} | |||||
""" | |||||
data, _ = get_query_response(client, query_str) | |||||
assert len(data["origins"]["nodes"]) == 0 | assert len(data["origins"]["nodes"]) == 0 | ||||
def test_basic_pagination(client): | def test_basic_pagination(client): | ||||
query_str = f""" | data, _ = get_origins_from_api(client, first=len(get_origins())) | ||||
{{ | |||||
origins(first: {len(get_origins())}) {{ | |||||
nodes {{ | |||||
id | |||||
}} | |||||
pageInfo {{ | |||||
hasNextPage | |||||
endCursor | |||||
}} | |||||
}} | |||||
}} | |||||
""" | |||||
data, _ = get_query_response(client, query_str) | |||||
assert len(data["origins"]["nodes"]) == len(get_origins()) | assert len(data["origins"]["nodes"]) == len(get_origins()) | ||||
assert data["origins"]["pageInfo"] == {"hasNextPage": False, "endCursor": None} | assert data["origins"]["pageInfo"] == {"hasNextPage": False, "endCursor": None} |
maybe?