diff --git a/swh/deposit/api/private/deposit_read.py b/swh/deposit/api/private/deposit_read.py --- a/swh/deposit/api/private/deposit_read.py +++ b/swh/deposit/api/private/deposit_read.py @@ -165,8 +165,12 @@ if raw_metadata: metadata_tree = ElementTree.fromstring(raw_metadata) author_date, commit_date = self._parse_dates(deposit, metadata_tree) + release_notes_elements = metadata_tree.findall( + "codemeta:releaseNotes", namespaces=NAMESPACES + ) else: author_date = commit_date = None + release_notes_elements = [] if deposit.parent and deposit.parent.swhid: parent_swhid = deposit.parent.swhid @@ -177,9 +181,6 @@ else: parents = [] - release_notes_elements = metadata_tree.findall( - "codemeta:releaseNotes", namespaces=NAMESPACES - ) release_notes: Optional[str] if release_notes_elements: release_notes = "\n\n".join( diff --git a/swh/deposit/tests/api/test_deposit_private_read_metadata.py b/swh/deposit/tests/api/test_deposit_private_read_metadata.py --- a/swh/deposit/tests/api/test_deposit_private_read_metadata.py +++ b/swh/deposit/tests/api/test_deposit_private_read_metadata.py @@ -35,6 +35,53 @@ return deposit +def test_read_missing_metadata( + authenticated_client, deposit_collection, partial_deposit, atom_dataset +): + """Private metadata read api to existing deposit should return metadata + + """ + deposit = partial_deposit + deposit.external_id = "some-external-id" + deposit.origin_url = f"https://hal-test.archives-ouvertes.fr/{deposit.external_id}" + deposit.save() + + for url in private_get_raw_url_endpoints(deposit_collection, deposit): + response = authenticated_client.get(url) + assert response.status_code == status.HTTP_200_OK + assert response["content-type"] == "application/json" + actual_data = response.json() + assert actual_data == { + "origin": { + "type": "deposit", + "url": "https://hal-test.archives-ouvertes.fr/some-external-id", + }, + "raw_metadata": None, + "provider": { + "metadata": {}, + "provider_name": "", + "provider_type": "deposit_client", + "provider_url": "https://hal-test.archives-ouvertes.fr/", + }, + "tool": { + "configuration": {"sword_version": "2"}, + "name": "swh-deposit", + "version": __version__, + }, + "deposit": { + "author": SWH_PERSON, + "committer": SWH_PERSON, + "committer_date": None, + "author_date": None, + "client": "test", + "id": deposit.id, + "collection": "test", + "revision_parents": [], + "release_notes": None, + }, + } + + def test_read_metadata( authenticated_client, deposit_collection, partial_deposit, atom_dataset ):