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 @@ -135,7 +135,7 @@ """Read and aggregate multiple deposit information into one unified dictionary. Args: - deposit: Deposit concerned by the data aggregation. + deposit: Deposit to retrieve information from Returns: Dictionary of deposit information read by the deposit loader, with the @@ -143,26 +143,21 @@ **origin** (Dict): Information about the origin - **origin_metadata (Dict): Metadata about the origin to load + **metadata_raw** (List[str]): List of raw metadata received for the + deposit - **metadata_raw** (List[str]): List of raw metadata received for the - deposit + **metadata_dict** (Dict): Deposit aggregated metadata into one dict - **metadata_dict** (Dict): Deposit aggregated metadata into one dict + **provider** (Dict): the metadata provider information about the + deposit client - **provider** (Dict): the metadata provider information about the - deposit client - - **tool** (Dict): the deposit information + **tool** (Dict): the deposit information **deposit** (Dict): deposit information relevant to build the revision (author_date, committer_date, etc...) """ metadata, raw_metadata = self._metadata_get(deposit) - # Read information metadata - data = {"origin": {"type": "deposit", "url": deposit.origin_url,}} - author_date, commit_date = self._normalize_dates(deposit, metadata) if deposit.parent: @@ -174,8 +169,8 @@ else: parents = [] - data["origin_metadata"] = { - # metadata provider + return { + "origin": {"type": "deposit", "url": deposit.origin_url}, "provider": { "provider_name": deposit.client.last_name, "provider_url": deposit.client.provider_url, @@ -185,19 +180,17 @@ "tool": self.tool, "metadata_raw": raw_metadata, "metadata_dict": metadata, + "deposit": { + "id": deposit.id, + "client": deposit.client.username, + "collection": deposit.collection.name, + "author": SWH_PERSON, + "author_date": author_date, + "committer": SWH_PERSON, + "committer_date": commit_date, + "revision_parents": parents, + }, } - data["deposit"] = { - "id": deposit.id, - "client": deposit.client.username, - "collection": deposit.collection.name, - "author": SWH_PERSON, - "author_date": author_date, - "committer": SWH_PERSON, - "committer_date": commit_date, - "revision_parents": parents, - } - - return data def process_get( self, request, collection_name: str, deposit_id: int 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 @@ -59,26 +59,24 @@ response = authenticated_client.get(url) assert response.status_code == status.HTTP_200_OK assert response._headers["content-type"][1] == "application/json" - data = response.json() - assert data == { + actual_data = response.json() + assert actual_data == { "origin": { "type": "deposit", "url": "https://hal-test.archives-ouvertes.fr/some-external-id", }, - "origin_metadata": { - "metadata_raw": metadata_xml_atoms, - "metadata_dict": utils.merge(*metadata_xml_raws), - "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__, - }, + "metadata_raw": metadata_xml_atoms, + "metadata_dict": utils.merge(*metadata_xml_raws), + "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, @@ -133,26 +131,24 @@ assert response.status_code == status.HTTP_200_OK assert response._headers["content-type"][1] == "application/json" - data = response.json() - assert data == { + actual_data = response.json() + assert actual_data == { "origin": { "type": "deposit", "url": "https://hal-test.archives-ouvertes.fr/some-external-id", }, - "origin_metadata": { - "metadata_raw": metadata_xml_atoms, - "metadata_dict": utils.merge(*metadata_xml_raws), - "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__, - }, + "metadata_raw": metadata_xml_atoms, + "metadata_dict": utils.merge(*metadata_xml_raws), + "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, @@ -209,26 +205,24 @@ assert response.status_code == status.HTTP_200_OK assert response._headers["content-type"][1] == "application/json" - data = response.json() - assert data == { + actual_data = response.json() + assert actual_data == { "origin": { "type": "deposit", "url": "https://hal-test.archives-ouvertes.fr/hal-01243065", }, - "origin_metadata": { - "metadata_raw": metadata_xml_atoms, - "metadata_dict": utils.merge(*metadata_xml_raws), - "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__, - }, + "metadata_raw": metadata_xml_atoms, + "metadata_dict": utils.merge(*metadata_xml_raws), + "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, @@ -272,14 +266,13 @@ assert response.status_code == status.HTTP_200_OK assert response._headers["content-type"][1] == "application/json" - data = response.json() - - expected_origin = { - "type": "deposit", - "url": "https://hal-test.archives-ouvertes.fr/%s" % (deposit.external_id), - } + actual_data = response.json() - expected_origin_metadata = { + assert actual_data == { + "origin": { + "type": "deposit", + "url": "https://hal-test.archives-ouvertes.fr/external-id-partial", + }, "metadata_raw": [codemeta_entry_data], "metadata_dict": parse_xml(codemeta_entry_data), "provider": { @@ -293,35 +286,26 @@ "name": "swh-deposit", "version": __version__, }, - } - - expected_deposit_info = { - "author": SWH_PERSON, - "committer": SWH_PERSON, - "committer_date": { - "negative_utc": False, - "offset": 0, - "timestamp": {"microseconds": 0, "seconds": 1459900800}, - }, - "author_date": { - "negative_utc": False, - "offset": 0, - "timestamp": {"microseconds": 0, "seconds": 1459900800}, + "deposit": { + "author": SWH_PERSON, + "committer": SWH_PERSON, + "committer_date": { + "negative_utc": False, + "offset": 0, + "timestamp": {"microseconds": 0, "seconds": 1459900800}, + }, + "author_date": { + "negative_utc": False, + "offset": 0, + "timestamp": {"microseconds": 0, "seconds": 1459900800}, + }, + "client": deposit_collection.name, + "id": deposit.id, + "collection": deposit_collection.name, + "revision_parents": [], }, - "client": deposit_collection.name, - "id": deposit.id, - "collection": deposit_collection.name, - "revision_parents": [], } - expected_meta = { - "origin": expected_origin, - "origin_metadata": expected_origin_metadata, - "deposit": expected_deposit_info, - } - - assert data == expected_meta - def test_read_metadata_5( authenticated_client, deposit_collection, partial_deposit, atom_dataset @@ -354,14 +338,13 @@ assert response.status_code == status.HTTP_200_OK assert response._headers["content-type"][1] == "application/json" - data = response.json() + actual_data = response.json() - expected_origin = { - "type": "deposit", - "url": "https://hal-test.archives-ouvertes.fr/external-id-partial", - } - - expected_origin_metadata = { + assert actual_data == { + "origin": { + "type": "deposit", + "url": "https://hal-test.archives-ouvertes.fr/external-id-partial", + }, "metadata_raw": [codemeta_entry_data], "metadata_dict": parse_xml(codemeta_entry_data), "provider": { @@ -375,35 +358,26 @@ "name": "swh-deposit", "version": __version__, }, - } - - expected_deposit_info = { - "author": SWH_PERSON, - "committer": SWH_PERSON, - "committer_date": { - "negative_utc": False, - "offset": 120, - "timestamp": {"microseconds": 0, "seconds": 1493820527}, - }, - "author_date": { - "negative_utc": False, - "offset": 120, - "timestamp": {"microseconds": 0, "seconds": 1428332927}, + "deposit": { + "author": SWH_PERSON, + "committer": SWH_PERSON, + "committer_date": { + "negative_utc": False, + "offset": 120, + "timestamp": {"microseconds": 0, "seconds": 1493820527}, + }, + "author_date": { + "negative_utc": False, + "offset": 120, + "timestamp": {"microseconds": 0, "seconds": 1428332927}, + }, + "client": deposit_collection.name, + "id": deposit.id, + "collection": deposit_collection.name, + "revision_parents": [], }, - "client": deposit_collection.name, - "id": deposit.id, - "collection": deposit_collection.name, - "revision_parents": [], } - expected_meta = { - "origin": expected_origin, - "origin_metadata": expected_origin_metadata, - "deposit": expected_deposit_info, - } - - assert data == expected_meta - def test_access_to_nonexisting_deposit_returns_404_response( authenticated_client, deposit_collection,