Changeset View
Changeset View
Standalone View
Standalone View
swh/graphql/tests/functional/test_swhid_resolve.py
Show All 13 Lines | from ..data import ( | ||||
get_snapshots, | get_snapshots, | ||||
) | ) | ||||
def test_invalid_swhid(client): | def test_invalid_swhid(client): | ||||
query_str = """ | query_str = """ | ||||
query resolve($swhid: SWHID!) { | query resolve($swhid: SWHID!) { | ||||
resolveSWHID(swhid: $swhid) { | resolveSWHID(swhid: $swhid) { | ||||
targetType | target { | ||||
type | |||||
} | |||||
} | } | ||||
} | } | ||||
""" | """ | ||||
errors = utils.get_error_response(client, query_str, swhid="swh:1:dir:invalid") | errors = utils.get_error_response(client, query_str, swhid="swh:1:dir:invalid") | ||||
# API will throw an error in case of an invalid SWHID | # API will throw an error in case of an invalid SWHID | ||||
assert len(errors) == 1 | assert len(errors) == 1 | ||||
assert "Input error: Invalid SWHID" in errors[0]["message"] | assert "Input error: Invalid SWHID" in errors[0]["message"] | ||||
@pytest.mark.parametrize( | @pytest.mark.parametrize( | ||||
"swhid", | "swhid", | ||||
[ | [ | ||||
"swh:1:rel:0949d7a8c96347dba09be8d79085b8207f345412", | "swh:1:rel:0949d7a8c96347dba09be8d79085b8207f345412", | ||||
"swh:1:rev:0949d7a8c96347dba09be8d79085b8207f345412", | "swh:1:rev:0949d7a8c96347dba09be8d79085b8207f345412", | ||||
"swh:1:dir:0949d7a8c96347dba09be8d79085b8207f345412", | "swh:1:dir:0949d7a8c96347dba09be8d79085b8207f345412", | ||||
"swh:1:cnt:0949d7a8c96347dba09be8d79085b8207f345412", | "swh:1:cnt:0949d7a8c96347dba09be8d79085b8207f345412", | ||||
"swh:1:snp:0949d7a8c96347dba09be8d79085b8207f345412", | "swh:1:snp:0949d7a8c96347dba09be8d79085b8207f345412", | ||||
], | ], | ||||
) | ) | ||||
def test_missing_swhid(client, swhid): | def test_missing_swhid(client, swhid): | ||||
query_str = """ | query_str = """ | ||||
query resolve($swhid: SWHID!) { | query resolve($swhid: SWHID!) { | ||||
resolveSWHID(swhid: $swhid) { | resolveSWHID(swhid: $swhid) { | ||||
targetType | target { | ||||
type | |||||
} | |||||
} | } | ||||
} | } | ||||
""" | """ | ||||
data, _ = utils.get_query_response(client, query_str, swhid=swhid) | data, _ = utils.get_query_response(client, query_str, swhid=swhid) | ||||
# API will return an empty list in case of a valid, non existing SWHID | # API will return an empty list in case of a valid, non existing SWHID | ||||
assert data == {"resolveSWHID": []} | assert data == {"resolveSWHID": []} | ||||
@pytest.mark.parametrize("snapshot", get_snapshots()) | @pytest.mark.parametrize("snapshot", get_snapshots()) | ||||
def test_snapshot_swhid_resolve(client, snapshot): | def test_snapshot_swhid_resolve(client, snapshot): | ||||
query_str = """ | query_str = """ | ||||
query resolve($swhid: SWHID!) { | query resolve($swhid: SWHID!) { | ||||
resolveSWHID(swhid: $swhid) { | resolveSWHID(swhid: $swhid) { | ||||
targetType | |||||
target { | target { | ||||
type | |||||
node { | |||||
__typename | __typename | ||||
... on Snapshot { | ... on Snapshot { | ||||
swhid | swhid | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
""" | """ | ||||
data, _ = utils.get_query_response(client, query_str, swhid=str(snapshot.swhid())) | data, _ = utils.get_query_response(client, query_str, swhid=str(snapshot.swhid())) | ||||
assert data == { | assert data == { | ||||
"resolveSWHID": [ | "resolveSWHID": [ | ||||
{ | { | ||||
"target": { | "target": { | ||||
"type": "snapshot", | |||||
"node": { | |||||
"__typename": "Snapshot", | "__typename": "Snapshot", | ||||
"swhid": str(snapshot.swhid()), | "swhid": str(snapshot.swhid()), | ||||
}, | }, | ||||
"targetType": "snapshot", | }, | ||||
} | } | ||||
] | ] | ||||
} | } | ||||
@pytest.mark.parametrize("revision", get_revisions()) | @pytest.mark.parametrize("revision", get_revisions()) | ||||
def test_revision_swhid_resolve(client, revision): | def test_revision_swhid_resolve(client, revision): | ||||
query_str = """ | query_str = """ | ||||
query resolve($swhid: SWHID!) { | query resolve($swhid: SWHID!) { | ||||
resolveSWHID(swhid: $swhid) { | resolveSWHID(swhid: $swhid) { | ||||
targetType | |||||
target { | target { | ||||
type | |||||
node { | |||||
__typename | __typename | ||||
... on Revision { | ... on Revision { | ||||
swhid | swhid | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
""" | """ | ||||
data, _ = utils.get_query_response(client, query_str, swhid=str(revision.swhid())) | data, _ = utils.get_query_response(client, query_str, swhid=str(revision.swhid())) | ||||
assert data == { | assert data == { | ||||
"resolveSWHID": [ | "resolveSWHID": [ | ||||
{ | { | ||||
"target": { | "target": { | ||||
"type": "revision", | |||||
"node": { | |||||
"__typename": "Revision", | "__typename": "Revision", | ||||
"swhid": str(revision.swhid()), | "swhid": str(revision.swhid()), | ||||
}, | }, | ||||
"targetType": "revision", | } | ||||
} | } | ||||
] | ] | ||||
} | } | ||||
@pytest.mark.parametrize("release", get_releases()) | @pytest.mark.parametrize("release", get_releases()) | ||||
def test_release_swhid_resolve(client, release): | def test_release_swhid_resolve(client, release): | ||||
query_str = """ | query_str = """ | ||||
query resolve($swhid: SWHID!) { | query resolve($swhid: SWHID!) { | ||||
resolveSWHID(swhid: $swhid) { | resolveSWHID(swhid: $swhid) { | ||||
targetType | |||||
target { | target { | ||||
type | |||||
node { | |||||
__typename | __typename | ||||
... on Release { | ... on Release { | ||||
swhid | swhid | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
""" | """ | ||||
data, _ = utils.get_query_response(client, query_str, swhid=str(release.swhid())) | data, _ = utils.get_query_response(client, query_str, swhid=str(release.swhid())) | ||||
assert data == { | assert data == { | ||||
"resolveSWHID": [ | "resolveSWHID": [ | ||||
{ | { | ||||
"target": { | "target": { | ||||
"type": "release", | |||||
"node": { | |||||
"__typename": "Release", | "__typename": "Release", | ||||
"swhid": str(release.swhid()), | "swhid": str(release.swhid()), | ||||
}, | }, | ||||
"targetType": "release", | } | ||||
} | } | ||||
] | ] | ||||
} | } | ||||
@pytest.mark.parametrize("directory", get_directories()) | @pytest.mark.parametrize("directory", get_directories()) | ||||
def test_directory_swhid_resolve(client, directory): | def test_directory_swhid_resolve(client, directory): | ||||
query_str = """ | query_str = """ | ||||
query resolve($swhid: SWHID!) { | query resolve($swhid: SWHID!) { | ||||
resolveSWHID(swhid: $swhid) { | resolveSWHID(swhid: $swhid) { | ||||
targetType | |||||
target { | target { | ||||
type | |||||
node { | |||||
__typename | __typename | ||||
... on Directory { | ... on Directory { | ||||
swhid | swhid | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
""" | """ | ||||
data, _ = utils.get_query_response(client, query_str, swhid=str(directory.swhid())) | data, _ = utils.get_query_response(client, query_str, swhid=str(directory.swhid())) | ||||
assert data == { | assert data == { | ||||
"resolveSWHID": [ | "resolveSWHID": [ | ||||
{ | { | ||||
"target": { | "target": { | ||||
"type": "directory", | |||||
"node": { | |||||
"__typename": "Directory", | "__typename": "Directory", | ||||
"swhid": str(directory.swhid()), | "swhid": str(directory.swhid()), | ||||
}, | }, | ||||
"targetType": "directory", | } | ||||
} | } | ||||
] | ] | ||||
} | } | ||||
@pytest.mark.parametrize("content", get_contents()) | @pytest.mark.parametrize("content", get_contents()) | ||||
def test_content_swhid_resolve(client, content): | def test_content_swhid_resolve(client, content): | ||||
query_str = """ | query_str = """ | ||||
query resolve($swhid: SWHID!) { | query resolve($swhid: SWHID!) { | ||||
resolveSWHID(swhid: $swhid) { | resolveSWHID(swhid: $swhid) { | ||||
targetType | |||||
target { | target { | ||||
type | |||||
node { | |||||
__typename | __typename | ||||
... on Content { | ... on Content { | ||||
swhid | swhid | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
""" | """ | ||||
data, _ = utils.get_query_response(client, query_str, swhid=str(content.swhid())) | data, _ = utils.get_query_response(client, query_str, swhid=str(content.swhid())) | ||||
assert data == { | assert data == { | ||||
"resolveSWHID": [ | "resolveSWHID": [ | ||||
{ | { | ||||
"target": { | "target": { | ||||
"type": "content", | |||||
"node": { | |||||
"__typename": "Content", | "__typename": "Content", | ||||
"swhid": str(content.swhid()), | "swhid": str(content.swhid()), | ||||
}, | }, | ||||
"targetType": "content", | } | ||||
} | } | ||||
] | ] | ||||
} | } |