Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/test_utils.py
# Copyright (C) 2015-2021 The Software Heritage developers | # Copyright (C) 2015-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 random | import random | ||||
from hypothesis import given | from hypothesis import given | ||||
from swh.model.hashutil import DEFAULT_ALGORITHMS | from swh.model.hashutil import DEFAULT_ALGORITHMS | ||||
from swh.web.api import utils | from swh.web.api import utils | ||||
from swh.web.common.origin_visits import get_origin_visits | from swh.web.common.origin_visits import get_origin_visits | ||||
from swh.web.common.utils import resolve_branch_alias, reverse | 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 = [ | url_map = [ | ||||
{ | { | ||||
"rule": "/other/<slug>", | "rule": "/other/<slug>", | ||||
"methods": set(["GET", "POST", "HEAD"]), | "methods": set(["GET", "POST", "HEAD"]), | ||||
"endpoint": "foo", | "endpoint": "foo", | ||||
}, | }, | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | |||||
def test_enrich_release_empty(): | def test_enrich_release_empty(): | ||||
actual_release = utils.enrich_release({}) | actual_release = utils.enrich_release({}) | ||||
assert actual_release == {} | assert actual_release == {} | ||||
@given(release()) | |||||
def test_enrich_release_content_target(api_request_factory, archive_data, release): | def test_enrich_release_content_target(api_request_factory, archive_data, release): | ||||
release_data = archive_data.release_get(release) | release_data = archive_data.release_get(release) | ||||
release_data["target_type"] = "content" | release_data["target_type"] = "content" | ||||
url = reverse("api-1-release", url_args={"sha1_git": release}) | url = reverse("api-1-release", url_args={"sha1_git": release}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
actual_release = utils.enrich_release(release_data, request) | actual_release = utils.enrich_release(release_data, request) | ||||
release_data["target_url"] = reverse( | release_data["target_url"] = reverse( | ||||
"api-1-content", | "api-1-content", | ||||
url_args={"q": f'sha1_git:{release_data["target"]}'}, | url_args={"q": f'sha1_git:{release_data["target"]}'}, | ||||
request=request, | request=request, | ||||
) | ) | ||||
assert actual_release == release_data | assert actual_release == release_data | ||||
@given(release()) | |||||
def test_enrich_release_directory_target(api_request_factory, archive_data, release): | def test_enrich_release_directory_target(api_request_factory, archive_data, release): | ||||
release_data = archive_data.release_get(release) | release_data = archive_data.release_get(release) | ||||
release_data["target_type"] = "directory" | release_data["target_type"] = "directory" | ||||
url = reverse("api-1-release", url_args={"sha1_git": release}) | url = reverse("api-1-release", url_args={"sha1_git": release}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
actual_release = utils.enrich_release(release_data, request) | actual_release = utils.enrich_release(release_data, request) | ||||
release_data["target_url"] = reverse( | release_data["target_url"] = reverse( | ||||
"api-1-directory", | "api-1-directory", | ||||
url_args={"sha1_git": release_data["target"]}, | url_args={"sha1_git": release_data["target"]}, | ||||
request=request, | request=request, | ||||
) | ) | ||||
assert actual_release == release_data | assert actual_release == release_data | ||||
@given(release()) | |||||
def test_enrich_release_revision_target(api_request_factory, archive_data, release): | def test_enrich_release_revision_target(api_request_factory, archive_data, release): | ||||
release_data = archive_data.release_get(release) | release_data = archive_data.release_get(release) | ||||
release_data["target_type"] = "revision" | release_data["target_type"] = "revision" | ||||
url = reverse("api-1-release", url_args={"sha1_git": release}) | url = reverse("api-1-release", url_args={"sha1_git": release}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
actual_release = utils.enrich_release(release_data, request) | actual_release = utils.enrich_release(release_data, request) | ||||
release_data["target_url"] = reverse( | release_data["target_url"] = reverse( | ||||
"api-1-revision", url_args={"sha1_git": release_data["target"]}, request=request | "api-1-revision", url_args={"sha1_git": release_data["target"]}, request=request | ||||
) | ) | ||||
assert actual_release == release_data | assert actual_release == release_data | ||||
@given(release()) | |||||
def test_enrich_release_release_target(api_request_factory, archive_data, release): | def test_enrich_release_release_target(api_request_factory, archive_data, release): | ||||
release_data = archive_data.release_get(release) | release_data = archive_data.release_get(release) | ||||
release_data["target_type"] = "release" | release_data["target_type"] = "release" | ||||
url = reverse("api-1-release", url_args={"sha1_git": release}) | url = reverse("api-1-release", url_args={"sha1_git": release}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
▲ Show 20 Lines • Show All 443 Lines • Show Last 20 Lines |