diff --git a/swh/graphql/resolvers/release.py b/swh/graphql/resolvers/release.py --- a/swh/graphql/resolvers/release.py +++ b/swh/graphql/resolvers/release.py @@ -15,7 +15,7 @@ """ def _get_release_by_id(self, release_id): - return (self.archive.get_releases([release_id]) or None)[0] + return self.archive.get_releases([release_id])[0] @property def target_hash(self): diff --git a/swh/graphql/resolvers/revision.py b/swh/graphql/resolvers/revision.py --- a/swh/graphql/resolvers/revision.py +++ b/swh/graphql/resolvers/revision.py @@ -22,7 +22,7 @@ """ def _get_revision_by_id(self, revision_id): - return (self.archive.get_revisions([revision_id]) or None)[0] + return self.archive.get_revisions([revision_id])[0] @property def parent_swhids(self): # for ParentRevisionConnection resolver diff --git a/swh/graphql/tests/functional/test_content.py b/swh/graphql/tests/functional/test_content.py --- a/swh/graphql/tests/functional/test_content.py +++ b/swh/graphql/tests/functional/test_content.py @@ -161,3 +161,15 @@ "length": 4, "swhid": "swh:1:cnt:86bc6b377e9d25f9d26777a4a28d08e63e7c5779", } + + +def test_get_content_with_unknown_swhid(client): + unknown_sha1 = "1" * 40 + query_str = """ + { + content(swhid: "swh:1:cnt:%s") { + swhid + } + } + """ + utils.assert_missing_object(client, query_str % unknown_sha1, "content") diff --git a/swh/graphql/tests/functional/test_directory.py b/swh/graphql/tests/functional/test_directory.py --- a/swh/graphql/tests/functional/test_directory.py +++ b/swh/graphql/tests/functional/test_directory.py @@ -72,3 +72,15 @@ assert data["release"]["target"] == { "swhid": "swh:1:dir:0505050505050505050505050505050505050505" } + + +def test_get_directory_with_unknown_swhid(client): + unknown_sha1 = "1" * 40 + query_str = """ + { + directory(swhid: "swh:1:dir:%s") { + swhid + } + } + """ + utils.assert_missing_object(client, query_str % unknown_sha1, "directory") diff --git a/swh/graphql/tests/functional/test_release_node.py b/swh/graphql/tests/functional/test_release_node.py --- a/swh/graphql/tests/functional/test_release_node.py +++ b/swh/graphql/tests/functional/test_release_node.py @@ -75,7 +75,7 @@ def test_get_release_with_invalid_swhid(client): query_str = """ { - content(swhid: "swh:1:rel:invalid") { + release(swhid: "swh:1:rel:invalid") { swhid } } @@ -163,3 +163,15 @@ }, "targetType": "revision", } + + +def test_get_release_with_unknown_swhid(client): + unknown_sha1 = "1" * 40 + query_str = """ + { + release(swhid: "swh:1:rel:%s") { + swhid + } + } + """ + utils.assert_missing_object(client, query_str % unknown_sha1, "release") diff --git a/swh/graphql/tests/functional/test_revision.py b/swh/graphql/tests/functional/test_revision.py --- a/swh/graphql/tests/functional/test_revision.py +++ b/swh/graphql/tests/functional/test_revision.py @@ -158,3 +158,15 @@ {"swhid": str(get_revisions()[1].swhid())}, ] } + + +def test_get_revision_with_unknown_swhid(client): + unknown_sha1 = "1" * 40 + query_str = """ + { + revision(swhid: "swh:1:rev:%s") { + swhid + } + } + """ + utils.assert_missing_object(client, query_str % unknown_sha1, "revision") diff --git a/swh/graphql/tests/functional/utils.py b/swh/graphql/tests/functional/utils.py --- a/swh/graphql/tests/functional/utils.py +++ b/swh/graphql/tests/functional/utils.py @@ -23,6 +23,7 @@ assert data[obj_type] is None assert len(errors) == 1 assert errors[0]["message"] == "Object error: Requested object is not available" + assert errors[0]["path"] == [obj_type] def get_error_response(client, query_str: str, error_code: int = 400) -> Dict: