Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_metadata.py
# Copyright (C) 2021 The Software Heritage developers | # Copyright (C) 2021 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU Affero General Public License version 3, or any later version | # License: GNU Affero General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import attr | import attr | ||||
from hypothesis import given, strategies | from hypothesis import given, strategies | ||||
from hypothesis.strategies._internal.core import sampled_from | |||||
import pytest | import pytest | ||||
from swh.model.hypothesis_strategies import raw_extrinsic_metadata | from swh.model.hypothesis_strategies import ( | ||||
raw_extrinsic_metadata as raw_extrinsic_metadata_orig, | |||||
) | |||||
from swh.model.hypothesis_strategies import sha1_git | |||||
from swh.model.identifiers import ExtendedObjectType, ExtendedSWHID, ObjectType | |||||
from swh.web.common.utils import reverse | from swh.web.common.utils import reverse | ||||
from swh.web.tests.api.views.utils import scroll_results | from swh.web.tests.api.views.utils import scroll_results | ||||
from swh.web.tests.utils import check_api_get_responses, check_http_get_response | from swh.web.tests.utils import check_api_get_responses, check_http_get_response | ||||
# public Web API endpoint for raw extrinsic metadata does not support | |||||
# extended SWHIDs so we ensure only core ones will be used in test inputs. | |||||
@strategies.composite | |||||
def raw_extrinsic_metadata(draw): | |||||
remd = draw(raw_extrinsic_metadata_orig()) | |||||
remd = attr.evolve( | |||||
remd, | |||||
target=ExtendedSWHID( | |||||
object_type=ExtendedObjectType(draw(sampled_from(ObjectType)).value), | |||||
object_id=draw(sha1_git()), | |||||
), | |||||
) | |||||
return attr.evolve(remd, id=remd.compute_hash()) | |||||
@given(raw_extrinsic_metadata()) | @given(raw_extrinsic_metadata()) | ||||
def test_api_raw_extrinsic_metadata(api_client, subtest, metadata): | def test_api_raw_extrinsic_metadata(api_client, subtest, metadata): | ||||
# ensure archive_data fixture will be reset between each hypothesis | # ensure archive_data fixture will be reset between each hypothesis | ||||
# example test run | # example test run | ||||
@subtest | @subtest | ||||
def test_inner(archive_data): | def test_inner(archive_data): | ||||
archive_data.metadata_authority_add([metadata.authority]) | archive_data.metadata_authority_add([metadata.authority]) | ||||
archive_data.metadata_fetcher_add([metadata.fetcher]) | archive_data.metadata_fetcher_add([metadata.fetcher]) | ||||
▲ Show 20 Lines • Show All 165 Lines • Show Last 20 Lines |