Page MenuHomeSoftware Heritage

D7862.diff
No OneTemporary

D7862.diff

diff --git a/swh/graphql/tests/conftest.py b/swh/graphql/tests/conftest.py
--- a/swh/graphql/tests/conftest.py
+++ b/swh/graphql/tests/conftest.py
@@ -22,6 +22,7 @@
app_server.storage = storage
# populate the in-memory storage
populate_dummy_data(storage)
+ return storage
@pytest.fixture
diff --git a/swh/graphql/tests/functional/test_visit_node.py b/swh/graphql/tests/functional/test_visit_node.py
new file mode 100644
--- /dev/null
+++ b/swh/graphql/tests/functional/test_visit_node.py
@@ -0,0 +1,69 @@
+# Copyright (C) 2022 The Software Heritage developers
+# See the AUTHORS file at the top-level directory of this distribution
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+import pytest
+
+from ..data import get_origins
+from .utils import get_query_response
+
+
+@pytest.mark.parametrize("origin", get_origins())
+def test_get_visit(client, storage, origin):
+ query_str = """
+ {
+ visit(originUrl: "%s", visitId: %s) {
+ visitId
+ date
+ type
+ latestStatus {
+ status
+ date
+ type
+ snapshot {
+ swhid
+ }
+ }
+ status {
+ nodes {
+ status
+ }
+ }
+ }
+ }
+ """
+
+ visits_and_statuses = storage.origin_visit_get_with_statuses(origin.url).results
+ for vws in visits_and_statuses:
+ visit = vws.visit
+ statuses = vws.statuses
+ data, _ = get_query_response(client, query_str % (origin.url, visit.visit))
+ assert data["visit"] == {
+ "visitId": visit.visit,
+ "type": visit.type,
+ "date": visit.date.isoformat(),
+ "latestStatus": {
+ "date": statuses[-1].date.isoformat(),
+ "type": statuses[-1].type,
+ "status": statuses[-1].status,
+ "snapshot": ({"swhid": f"swh:1:snp:{statuses[-1].snapshot.hex()}"})
+ if statuses[-1].snapshot
+ else None,
+ },
+ "status": {"nodes": [{"status": status.status} for status in statuses]},
+ }
+
+
+def test_invalid_get_visit(client):
+ query_str = """
+ {
+ visit(originUrl: "http://example.com/forge1", visitId: 3) {
+ type
+ }
+ }
+ """
+ data, errors = get_query_response(client, query_str)
+ assert data["visit"] is None
+ assert len(errors) == 1
+ assert errors[0]["message"] == "Requested object is not available"

File Metadata

Mime Type
text/plain
Expires
Wed, Dec 18, 8:02 PM (1 d, 1 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3219914

Event Timeline