Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9346496
D3142.id11192.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
D3142.id11192.diff
View Options
diff --git a/swh/loader/package/deposit/loader.py b/swh/loader/package/deposit/loader.py
--- a/swh/loader/package/deposit/loader.py
+++ b/swh/loader/package/deposit/loader.py
@@ -171,6 +171,7 @@
status="done",
revision_id=hash_to_hex(rev_id),
directory_id=hash_to_hex(dir_id),
+ snapshot_id=r["snapshot_id"],
origin_url=self.url,
)
except Exception:
@@ -246,6 +247,7 @@
status: str,
revision_id: Optional[str] = None,
directory_id: Optional[str] = None,
+ snapshot_id: Optional[str] = None,
origin_url: Optional[str] = None,
):
"""Update deposit's information including status, and persistent
@@ -258,6 +260,8 @@
payload["revision_id"] = revision_id
if directory_id:
payload["directory_id"] = directory_id
+ if snapshot_id:
+ payload["snapshot_id"] = snapshot_id
if origin_url:
payload["origin_url"] = origin_url
diff --git a/swh/loader/package/deposit/tests/test_deposit.py b/swh/loader/package/deposit/tests/test_deposit.py
--- a/swh/loader/package/deposit/tests/test_deposit.py
+++ b/swh/loader/package/deposit/tests/test_deposit.py
@@ -7,7 +7,7 @@
import pytest
-from swh.model.hashutil import hash_to_bytes
+from swh.model.hashutil import hash_to_bytes, hash_to_hex
from swh.loader.package.deposit.loader import DepositLoader
from swh.loader.package.tests.common import (
@@ -19,6 +19,9 @@
from swh.core.pytest_plugin import requests_mock_datadir_factory
+DEPOSIT_URL = "https://deposit.softwareheritage.org/1/private"
+
+
@pytest.fixture
def requests_mock_datadir(requests_mock_datadir):
"""Enhance default mock data to mock put requests as the loader does some
@@ -68,7 +71,7 @@
requests_mock_datadir_missing_one = requests_mock_datadir_factory(
- ignore_urls=["https://deposit.softwareheritage.org/1/private/666/raw/",]
+ ignore_urls=[f"{DEPOSIT_URL}/666/raw/",]
)
@@ -167,11 +170,9 @@
assert origin_visit["status"] == "full"
assert origin_visit["type"] == "deposit"
+ revision_id = "637318680351f5d78856d13264faebbd91efe9bb"
expected_branches = {
- "HEAD": {
- "target": "637318680351f5d78856d13264faebbd91efe9bb",
- "target_type": "revision",
- },
+ "HEAD": {"target": revision_id, "target_type": "revision",},
}
expected_snapshot = {
@@ -180,6 +181,9 @@
}
check_snapshot(expected_snapshot, storage=loader.storage)
+ revision = next(loader.storage.revision_get([hash_to_bytes(revision_id)]))
+ assert revision
+
# check metadata
tool = {
@@ -215,6 +219,27 @@
assert metadata0["provider_type"] == "deposit_client"
assert metadata0["tool_id"] == tool["id"]
+ # Retrieve the information for deposit status update query to the deposit
+ urls = [
+ m
+ for m in requests_mock_datadir.request_history
+ if m.url == f"{DEPOSIT_URL}/{deposit_id}/update/"
+ ]
+
+ assert len(urls) == 1
+ update_query = urls[0]
+
+ body = update_query.json()
+ expected_body = {
+ "status": "done",
+ "revision_id": revision_id,
+ "directory_id": hash_to_hex(revision["directory"]),
+ "snapshot_id": expected_snapshot_id,
+ "origin_url": url,
+ }
+
+ assert body == expected_body
+
def test_deposit_loading_ok_2(swh_config, requests_mock_datadir):
"""Field dates should be se appropriately
@@ -257,7 +282,7 @@
assert revision["date"] == raw_meta["deposit"]["author_date"]
assert revision["committer_date"] == raw_meta["deposit"]["committer_date"]
- read_api = f"https://deposit.softwareheritage.org/1/private/{deposit_id}/meta/"
+ read_api = f"{DEPOSIT_URL}/{deposit_id}/meta/"
assert revision["metadata"] == {
"extrinsic": {
@@ -327,3 +352,24 @@
"provider_url": "https://hal-test.archives-ouvertes.fr/",
"tool_id": 1,
}
+
+ # Retrieve the information for deposit status update query to the deposit
+ urls = [
+ m
+ for m in requests_mock_datadir.request_history
+ if m.url == f"{DEPOSIT_URL}/{deposit_id}/update/"
+ ]
+
+ assert len(urls) == 1
+ update_query = urls[0]
+
+ body = update_query.json()
+ expected_body = {
+ "status": "done",
+ "revision_id": revision_id,
+ "directory_id": hash_to_hex(revision["directory"]),
+ "snapshot_id": expected_snapshot_id,
+ "origin_url": url,
+ }
+
+ assert body == expected_body
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jul 3, 4:06 PM (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3215666
Attached To
D3142: deposit: Adapt loader to use the latest deposit update api
Event Timeline
Log In to Comment