diff --git a/swh/web/tests/api/test_utils.py b/swh/web/tests/api/test_utils.py --- a/swh/web/tests/api/test_utils.py +++ b/swh/web/tests/api/test_utils.py @@ -11,7 +11,7 @@ from swh.web.api import utils from swh.web.common.origin_visits import get_origin_visits from swh.web.common.utils import resolve_branch_alias, reverse -from swh.web.tests.strategies import release, revision, snapshot +from swh.web.tests.strategies import revision, snapshot url_map = [ { @@ -100,7 +100,6 @@ assert actual_release == {} -@given(release()) def test_enrich_release_content_target(api_request_factory, archive_data, release): release_data = archive_data.release_get(release) @@ -120,7 +119,6 @@ assert actual_release == release_data -@given(release()) def test_enrich_release_directory_target(api_request_factory, archive_data, release): release_data = archive_data.release_get(release) @@ -140,7 +138,6 @@ assert actual_release == release_data -@given(release()) def test_enrich_release_revision_target(api_request_factory, archive_data, release): release_data = archive_data.release_get(release) @@ -158,7 +155,6 @@ assert actual_release == release_data -@given(release()) def test_enrich_release_release_target(api_request_factory, archive_data, release): release_data = archive_data.release_get(release) diff --git a/swh/web/tests/api/views/test_identifiers.py b/swh/web/tests/api/views/test_identifiers.py --- a/swh/web/tests/api/views/test_identifiers.py +++ b/swh/web/tests/api/views/test_identifiers.py @@ -10,7 +10,6 @@ from swh.web.common.utils import reverse from swh.web.tests.data import random_sha1 from swh.web.tests.strategies import ( - release, revision, snapshot, unknown_content, @@ -22,7 +21,7 @@ from swh.web.tests.utils import check_api_get_responses, check_api_post_responses -@given(release(), revision(), snapshot()) +@given(revision(), snapshot()) def test_swhid_resolve_success( api_client, client, content, directory, origin, release, revision, snapshot ): @@ -113,7 +112,7 @@ check_api_get_responses(api_client, url, status_code=400) -@given(release(), revision(), snapshot()) +@given(revision(), snapshot()) def test_api_known_swhid_all_present( api_client, content, directory, release, revision, snapshot ): diff --git a/swh/web/tests/api/views/test_release.py b/swh/web/tests/api/views/test_release.py --- a/swh/web/tests/api/views/test_release.py +++ b/swh/web/tests/api/views/test_release.py @@ -5,8 +5,6 @@ from datetime import datetime -from hypothesis import given - from swh.model.hashutil import hash_to_bytes, hash_to_hex from swh.model.model import ( ObjectType, @@ -17,11 +15,9 @@ ) from swh.web.common.utils import reverse from swh.web.tests.data import random_sha1 -from swh.web.tests.strategies import release from swh.web.tests.utils import check_api_get_responses, check_http_get_response -@given(release()) def test_api_release(api_client, archive_data, release): url = reverse("api-1-release", url_args={"sha1_git": release}) @@ -39,7 +35,6 @@ assert rv.data == expected_release -@given(release()) def test_api_release_target_type_not_a_revision( api_client, archive_data, content, directory, release ): @@ -107,7 +102,6 @@ } -@given(release()) def test_api_release_uppercase(api_client, release): url = reverse( "api-1-release-uppercase-checksum", url_args={"sha1_git": release.upper()} diff --git a/swh/web/tests/browse/views/test_identifiers.py b/swh/web/tests/browse/views/test_identifiers.py --- a/swh/web/tests/browse/views/test_identifiers.py +++ b/swh/web/tests/browse/views/test_identifiers.py @@ -13,7 +13,7 @@ from swh.web.common.identifiers import gen_swhid from swh.web.common.utils import reverse from swh.web.tests.django_asserts import assert_contains -from swh.web.tests.strategies import release, revision, snapshot +from swh.web.tests.strategies import revision, snapshot from swh.web.tests.utils import check_html_get_response @@ -76,7 +76,6 @@ assert resp["location"] == revision_browse_url -@given(release()) def test_release_id_browse(client, release): swhid = gen_swhid(ObjectType.RELEASE, release) @@ -132,7 +131,6 @@ assert resp["location"] == release_browse_url -@given(release()) def test_bad_id_browse(client, release): swhid = f"swh:1:foo:{release}" url = reverse("browse-swhid", url_args={"swhid": swhid}) @@ -165,7 +163,6 @@ assert resp["location"] == content_browse_url -@given(release()) def test_origin_id_not_resolvable(client, release): swhid = "swh:1:ori:8068d0075010b590762c6cb5682ed53cb3c13deb" url = reverse("browse-swhid", url_args={"swhid": swhid}) diff --git a/swh/web/tests/browse/views/test_origin.py b/swh/web/tests/browse/views/test_origin.py --- a/swh/web/tests/browse/views/test_origin.py +++ b/swh/web/tests/browse/views/test_origin.py @@ -33,9 +33,13 @@ ) from swh.web.tests.data import get_content, random_sha1 from swh.web.tests.django_asserts import assert_contains, assert_not_contains -from swh.web.tests.strategies import new_origin, new_snapshot -from swh.web.tests.strategies import release as existing_release -from swh.web.tests.strategies import revisions, unknown_revision, visit_dates +from swh.web.tests.strategies import ( + new_origin, + new_snapshot, + revisions, + unknown_revision, + visit_dates, +) from swh.web.tests.utils import check_html_get_response @@ -1229,10 +1233,10 @@ @given( - new_origin(), visit_dates(), revisions(min_size=10, max_size=10), existing_release() + new_origin(), visit_dates(), revisions(min_size=10, max_size=10), ) def test_origin_branches_pagination_with_alias( - client, archive_data, mocker, new_origin, visit_dates, revisions, existing_release + client, archive_data, mocker, release, new_origin, visit_dates, revisions, ): """ When a snapshot contains a branch or a release alias, pagination links @@ -1246,14 +1250,14 @@ "target_type": "revision", "target": hash_to_bytes(revisions[i]), } - release = "".join(random.choices(string.ascii_lowercase, k=8)) + release_name = "".join(random.choices(string.ascii_lowercase, k=8)) snp_dict["branches"][b"RELEASE_ALIAS"] = { "target_type": "alias", - "target": release.encode(), + "target": release_name.encode(), } - snp_dict["branches"][release.encode()] = { + snp_dict["branches"][release_name.encode()] = { "target_type": "release", - "target": hash_to_bytes(existing_release), + "target": hash_to_bytes(release), } archive_data.origin_add([new_origin]) archive_data.snapshot_add([Snapshot.from_dict(snp_dict)]) diff --git a/swh/web/tests/browse/views/test_release.py b/swh/web/tests/browse/views/test_release.py --- a/swh/web/tests/browse/views/test_release.py +++ b/swh/web/tests/browse/views/test_release.py @@ -13,11 +13,10 @@ from swh.web.common.identifiers import gen_swhid from swh.web.common.utils import format_utc_iso_date, reverse from swh.web.tests.django_asserts import assert_contains -from swh.web.tests.strategies import release, unknown_release +from swh.web.tests.strategies import unknown_release from swh.web.tests.utils import check_html_get_response -@given(release()) def test_release_browse(client, archive_data, release): _release_browse_checks(client, release, archive_data) @@ -57,7 +56,6 @@ assert_contains(resp, err_msg, status_code=404) -@given(release()) def test_release_uppercase(client, release): url = reverse( "browse-release-uppercase-checksum", url_args={"sha1_git": release.upper()} diff --git a/swh/web/tests/common/test_archive.py b/swh/web/tests/common/test_archive.py --- a/swh/web/tests/common/test_archive.py +++ b/swh/web/tests/common/test_archive.py @@ -35,8 +35,6 @@ new_origin, new_revision, non_ancestor_revisions, - release, - releases, revision, revision_with_submodules, revisions, @@ -251,7 +249,6 @@ assert e.match("Only sha1_git is supported.") -@given(releases()) def test_lookup_release_multiple(archive_data, releases): actual_releases = list(archive.lookup_release_multiple(releases)) @@ -288,7 +285,6 @@ assert actual_result == directory_entry -@given(release()) def test_lookup_release(archive_data, release): actual_release = archive.lookup_release(release) @@ -821,7 +817,7 @@ ) -@given(release(), revision(), snapshot()) +@given(revision(), snapshot()) def test_lookup_known_objects( archive_data, content, directory, release, revision, snapshot ): diff --git a/swh/web/tests/common/test_identifiers.py b/swh/web/tests/common/test_identifiers.py --- a/swh/web/tests/common/test_identifiers.py +++ b/swh/web/tests/common/test_identifiers.py @@ -25,7 +25,7 @@ from swh.web.common.typing import SWHObjectInfo from swh.web.common.utils import reverse from swh.web.tests.data import random_sha1 -from swh.web.tests.strategies import release, revision, snapshot +from swh.web.tests.strategies import revision, snapshot def test_gen_swhid(content): @@ -63,7 +63,7 @@ assert e.match("Invalid swh object type") -@given(release(), revision(), snapshot()) +@given(revision(), snapshot()) def test_resolve_swhid_legacy(content, directory, release, revision, snapshot): for obj_type, obj_id in ( (ObjectType.CONTENT, content["sha1_git"]), @@ -100,7 +100,7 @@ resolve_swhid(f"swh:1:ori:{random_sha1()}") -@given(release(), revision(), snapshot()) +@given(revision(), snapshot()) def test_get_swhid(content, directory, release, revision, snapshot): for obj_type, obj_id in ( (ObjectType.CONTENT, content["sha1_git"]), @@ -119,7 +119,7 @@ get_swhid("foo") -@given(release(), revision(), snapshot()) +@given(revision(), snapshot()) def test_group_swhids(content, directory, release, revision, snapshot): swhids = [] expected = {} diff --git a/swh/web/tests/conftest.py b/swh/web/tests/conftest.py --- a/swh/web/tests/conftest.py +++ b/swh/web/tests/conftest.py @@ -386,6 +386,22 @@ return Directory(entries=()).id.hex() +@pytest.fixture(scope="function") +def release(tests_data): + """Fixture returning a random release ingested into the test archive. + """ + return random.choice(_known_swh_objects(tests_data, "releases")) + + +@pytest.fixture(scope="function") +def releases(tests_data): + """Fixture returning random releases ingested into the test archive. + """ + return random.choices( + _known_swh_objects(tests_data, "releases"), k=random.randint(2, 8) + ) + + @pytest.fixture(scope="function") def origin(tests_data): """Fixturee returning a random origin ingested into the test archive. @@ -460,6 +476,14 @@ return _object_type_swhid(tests_data, ObjectType.DIRECTORY) +@pytest.fixture(scope="function") +def release_swhid(tests_data): + """Fixture returning a qualified SWHID for a random release object + ingested into the test archive. + """ + return _object_type_swhid(tests_data, ObjectType.RELEASE) + + # Fixture to manipulate data from a sample archive used in the tests @pytest.fixture(scope="function") def archive_data(tests_data): diff --git a/swh/web/tests/misc/test_badges.py b/swh/web/tests/misc/test_badges.py --- a/swh/web/tests/misc/test_badges.py +++ b/swh/web/tests/misc/test_badges.py @@ -16,7 +16,6 @@ from swh.web.tests.strategies import ( invalid_sha1, new_origin, - release, revision, snapshot, unknown_content, @@ -40,7 +39,6 @@ _test_badge_endpoints(client, "origin", origin["url"]) -@given(release()) def test_release_badge(client, release): _test_badge_endpoints(client, "release", release) @@ -112,7 +110,6 @@ _check_generated_badge(resp, "", "", error="invalid id") -@given(release()) def test_badge_endpoints_have_cors_header(client, origin, release): url = reverse( "swh-badge", url_args={"object_type": "origin", "object_id": origin["url"]} diff --git a/swh/web/tests/strategies.py b/swh/web/tests/strategies.py --- a/swh/web/tests/strategies.py +++ b/swh/web/tests/strategies.py @@ -160,22 +160,6 @@ ).map(sorted) -def release(): - """ - Hypothesis strategy returning a random release ingested - into the test archive. - """ - return _known_swh_object("releases") - - -def releases(min_size=2, max_size=8): - """ - Hypothesis strategy returning random releases ingested - into the test archive. - """ - return lists(release(), min_size=min_size, max_size=max_size) - - def unknown_release(): """ Hypothesis strategy returning a random revision not ingested @@ -412,14 +396,6 @@ return _known_swh_object("swhids") -def release_swhid(): - """ - Hypothesis strategy returning a qualified SWHID for a release object - ingested into the test archive. - """ - return swhid().filter(lambda swhid: swhid.object_type == ObjectType.RELEASE) - - def revision_swhid(): """ Hypothesis strategy returning a qualified SWHID for a revision object