Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/deposit/tests/test_deposit.py
Show First 20 Lines • Show All 223 Lines • ▼ Show 20 Lines | def test_deposit_loading_ok(swh_storage, deposit_client, requests_mock_datadir): | ||||
) | ) | ||||
# Check origin metadata | # Check origin metadata | ||||
orig_meta = loader.storage.raw_extrinsic_metadata_get( | orig_meta = loader.storage.raw_extrinsic_metadata_get( | ||||
Origin(url).swhid(), authority | Origin(url).swhid(), authority | ||||
) | ) | ||||
assert orig_meta.next_page_token is None | assert orig_meta.next_page_token is None | ||||
raw_meta = loader.client.metadata_get(deposit_id) | raw_meta = loader.client.metadata_get(deposit_id) | ||||
metadata_raw: str = raw_meta["metadata_raw"] | raw_metadata: str = raw_meta["raw_metadata"] | ||||
# 2 raw metadata xml + 1 json dict | # 2 raw metadata xml + 1 json dict | ||||
assert len(orig_meta.results) == 2 | assert len(orig_meta.results) == 2 | ||||
orig_meta0 = orig_meta.results[0] | orig_meta0 = orig_meta.results[0] | ||||
assert orig_meta0.authority == authority | assert orig_meta0.authority == authority | ||||
assert orig_meta0.fetcher == fetcher | assert orig_meta0.fetcher == fetcher | ||||
# Check directory metadata | # Check directory metadata | ||||
assert release.target_type == ModelObjectType.DIRECTORY | assert release.target_type == ModelObjectType.DIRECTORY | ||||
directory_swhid = CoreSWHID( | directory_swhid = CoreSWHID( | ||||
object_type=ObjectType.DIRECTORY, object_id=release.target | object_type=ObjectType.DIRECTORY, object_id=release.target | ||||
) | ) | ||||
actual_dir_meta = loader.storage.raw_extrinsic_metadata_get( | actual_dir_meta = loader.storage.raw_extrinsic_metadata_get( | ||||
directory_swhid, authority | directory_swhid, authority | ||||
) | ) | ||||
assert actual_dir_meta.next_page_token is None | assert actual_dir_meta.next_page_token is None | ||||
assert len(actual_dir_meta.results) == 1 | assert len(actual_dir_meta.results) == 1 | ||||
dir_meta = actual_dir_meta.results[0] | dir_meta = actual_dir_meta.results[0] | ||||
assert dir_meta.authority == authority | assert dir_meta.authority == authority | ||||
assert dir_meta.fetcher == fetcher | assert dir_meta.fetcher == fetcher | ||||
assert dir_meta.metadata.decode() == metadata_raw | assert dir_meta.metadata.decode() == raw_metadata | ||||
# Retrieve the information for deposit status update query to the deposit | # Retrieve the information for deposit status update query to the deposit | ||||
urls = [ | urls = [ | ||||
m | m | ||||
for m in requests_mock_datadir.request_history | for m in requests_mock_datadir.request_history | ||||
if m.url == f"{DEPOSIT_URL}/{deposit_id}/update/" | if m.url == f"{DEPOSIT_URL}/{deposit_id}/update/" | ||||
] | ] | ||||
▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | authority = MetadataAuthority( | ||||
url="https://hal-test.archives-ouvertes.fr/", | url="https://hal-test.archives-ouvertes.fr/", | ||||
) | ) | ||||
# Check the origin metadata swh side | # Check the origin metadata swh side | ||||
origin_extrinsic_metadata = loader.storage.raw_extrinsic_metadata_get( | origin_extrinsic_metadata = loader.storage.raw_extrinsic_metadata_get( | ||||
Origin(url).swhid(), authority | Origin(url).swhid(), authority | ||||
) | ) | ||||
assert origin_extrinsic_metadata.next_page_token is None | assert origin_extrinsic_metadata.next_page_token is None | ||||
metadata_raw: str = raw_meta["metadata_raw"] | raw_metadata: str = raw_meta["raw_metadata"] | ||||
# 1 raw metadata xml + 1 json dict | # 1 raw metadata xml + 1 json dict | ||||
assert len(origin_extrinsic_metadata.results) == 2 | assert len(origin_extrinsic_metadata.results) == 2 | ||||
origin_swhid = Origin(url).swhid() | origin_swhid = Origin(url).swhid() | ||||
expected_metadata = [] | expected_metadata = [] | ||||
origin_meta = origin_extrinsic_metadata.results[0] | origin_meta = origin_extrinsic_metadata.results[0] | ||||
expected_metadata.append( | expected_metadata.append( | ||||
RawExtrinsicMetadata( | RawExtrinsicMetadata( | ||||
target=origin_swhid, | target=origin_swhid, | ||||
discovery_date=origin_meta.discovery_date, | discovery_date=origin_meta.discovery_date, | ||||
metadata=metadata_raw.encode(), | metadata=raw_metadata.encode(), | ||||
format="sword-v2-atom-codemeta-v2", | format="sword-v2-atom-codemeta-v2", | ||||
authority=authority, | authority=authority, | ||||
fetcher=fetcher, | fetcher=fetcher, | ||||
) | ) | ||||
) | ) | ||||
origin_metadata = { | origin_metadata = { | ||||
"metadata": [metadata_raw], | "metadata": [raw_metadata], | ||||
"provider": provider, | "provider": provider, | ||||
"tool": tool, | "tool": tool, | ||||
} | } | ||||
expected_metadata.append( | expected_metadata.append( | ||||
RawExtrinsicMetadata( | RawExtrinsicMetadata( | ||||
target=origin_swhid, | target=origin_swhid, | ||||
discovery_date=origin_extrinsic_metadata.results[-1].discovery_date, | discovery_date=origin_extrinsic_metadata.results[-1].discovery_date, | ||||
metadata=json.dumps(origin_metadata).encode(), | metadata=json.dumps(origin_metadata).encode(), | ||||
Show All 38 Lines | expected_directory_metadata.append( | ||||
RawExtrinsicMetadata.from_dict( | RawExtrinsicMetadata.from_dict( | ||||
{ | { | ||||
**{ | **{ | ||||
k: v | k: v | ||||
for (k, v) in dir_metadata_template.to_dict().items() | for (k, v) in dir_metadata_template.to_dict().items() | ||||
if k != "id" | if k != "id" | ||||
}, | }, | ||||
"discovery_date": dir_metadata.discovery_date, | "discovery_date": dir_metadata.discovery_date, | ||||
"metadata": metadata_raw.encode(), | "metadata": raw_metadata.encode(), | ||||
} | } | ||||
) | ) | ||||
) | ) | ||||
assert sorted(actual_directory_metadata.results) == sorted( | assert sorted(actual_directory_metadata.results) == sorted( | ||||
expected_directory_metadata | expected_directory_metadata | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 106 Lines • Show Last 20 Lines |