Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_origin.py
Show First 20 Lines • Show All 573 Lines • ▼ Show 20 Lines | def test_api_origin_metadata_search(api_client, mocker, backend): | ||||
mock_config = mocker.patch("swh.web.common.archive.config") | mock_config = mocker.patch("swh.web.common.archive.config") | ||||
mock_config.get_config.return_value = {"metadata_search_backend": backend} | mock_config.get_config.return_value = {"metadata_search_backend": backend} | ||||
url = reverse( | url = reverse( | ||||
"api-1-origin-metadata-search", query_params={"fulltext": ORIGIN_METADATA_VALUE} | "api-1-origin-metadata-search", query_params={"fulltext": ORIGIN_METADATA_VALUE} | ||||
) | ) | ||||
rv = check_api_get_responses(api_client, url, status_code=200) | rv = check_api_get_responses(api_client, url, status_code=200) | ||||
rv.data = sorted(rv.data, key=lambda d: d["url"]) | |||||
expected_data = [ | expected_data = sorted( | ||||
[ | |||||
{ | { | ||||
"url": origin_url, | "url": origin_url, | ||||
"metadata": { | "metadata": { | ||||
"from_revision": master_rev, | "from_revision": ORIGIN_MASTER_REVISION[origin_url], | ||||
"tool": { | "tool": { | ||||
"name": INDEXER_TOOL["tool_name"], | "name": INDEXER_TOOL["tool_name"], | ||||
"version": INDEXER_TOOL["tool_version"], | "version": INDEXER_TOOL["tool_version"], | ||||
"configuration": INDEXER_TOOL["tool_configuration"], | "configuration": INDEXER_TOOL["tool_configuration"], | ||||
"id": INDEXER_TOOL["id"], | "id": INDEXER_TOOL["id"], | ||||
}, | }, | ||||
"mappings": [], | "mappings": [], | ||||
}, | }, | ||||
} | } | ||||
for origin_url, master_rev in ORIGIN_MASTER_REVISION.items() | for origin_url in sorted(ORIGIN_MASTER_REVISION.keys()) | ||||
] | ], | ||||
key=lambda d: d["url"], | |||||
) | |||||
for i in range(len(expected_data)): | for i in range(len(expected_data)): | ||||
expected = expected_data[i] | expected = expected_data[i] | ||||
response = rv.data[i] | response = rv.data[i] | ||||
metadata = response["metadata"].pop("metadata") | metadata = response["metadata"].pop("metadata") | ||||
assert any( | assert any( | ||||
[ORIGIN_METADATA_VALUE in json.dumps(val) for val in metadata.values()] | [ORIGIN_METADATA_VALUE in json.dumps(val) for val in metadata.values()] | ||||
) | ) | ||||
assert response == expected | assert response == expected | ||||
def test_api_origin_metadata_search_limit(api_client, mocker): | def test_api_origin_metadata_search_limit(api_client, mocker): | ||||
mock_idx_storage = mocker.patch("swh.web.common.archive.idx_storage") | mock_idx_storage = mocker.patch("swh.web.common.archive.idx_storage") | ||||
oimsft = mock_idx_storage.origin_intrinsic_metadata_search_fulltext | oimsft = mock_idx_storage.origin_intrinsic_metadata_search_fulltext | ||||
oimsft.side_effect = lambda conjunction, limit: [ | oimsft.side_effect = lambda conjunction, limit: [ | ||||
Show All 34 Lines | |||||
@given(origin()) | @given(origin()) | ||||
def test_api_origin_intrinsic_metadata(api_client, origin): | def test_api_origin_intrinsic_metadata(api_client, origin): | ||||
url = reverse( | url = reverse( | ||||
"api-origin-intrinsic-metadata", url_args={"origin_url": origin["url"]} | "api-origin-intrinsic-metadata", url_args={"origin_url": origin["url"]} | ||||
) | ) | ||||
rv = check_api_get_responses(api_client, url, status_code=200) | rv = check_api_get_responses(api_client, url, status_code=200) | ||||
expected_data = {ORIGIN_METADATA_KEY: ORIGIN_METADATA_VALUE} | assert ORIGIN_METADATA_KEY in rv.data | ||||
assert rv.data == expected_data | assert rv.data[ORIGIN_METADATA_KEY] == ORIGIN_METADATA_VALUE | ||||
def test_api_origin_metadata_search_invalid(api_client, mocker): | def test_api_origin_metadata_search_invalid(api_client, mocker): | ||||
mock_idx_storage = mocker.patch("swh.web.common.archive.idx_storage") | mock_idx_storage = mocker.patch("swh.web.common.archive.idx_storage") | ||||
url = reverse("api-1-origin-metadata-search") | url = reverse("api-1-origin-metadata-search") | ||||
check_api_get_responses(api_client, url, status_code=400) | check_api_get_responses(api_client, url, status_code=400) | ||||
mock_idx_storage.assert_not_called() | mock_idx_storage.assert_not_called() | ||||
Show All 14 Lines |