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 revision, snapshot | from swh.web.tests.strategies import 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 259 Lines • ▼ Show 20 Lines | for algo in DEFAULT_ALGORITHMS: | ||||
content_data["license_url"] = reverse( | content_data["license_url"] = reverse( | ||||
"api-1-content-license", url_args={"q": query_string}, request=request | "api-1-content-license", url_args={"q": query_string}, request=request | ||||
) | ) | ||||
assert enriched_content == content_data | assert enriched_content == content_data | ||||
@given(revision()) | |||||
def test_enrich_revision_without_children_or_parent( | def test_enrich_revision_without_children_or_parent( | ||||
api_request_factory, archive_data, revision | api_request_factory, archive_data, revision | ||||
): | ): | ||||
revision_data = archive_data.revision_get(revision) | revision_data = archive_data.revision_get(revision) | ||||
del revision_data["parents"] | del revision_data["parents"] | ||||
url = reverse("api-1-revision", url_args={"sha1_git": revision}) | url = reverse("api-1-revision", url_args={"sha1_git": revision}) | ||||
Show All 13 Lines | revision_data["directory_url"] = reverse( | ||||
"api-1-directory", | "api-1-directory", | ||||
url_args={"sha1_git": revision_data["directory"]}, | url_args={"sha1_git": revision_data["directory"]}, | ||||
request=request, | request=request, | ||||
) | ) | ||||
assert actual_revision == revision_data | assert actual_revision == revision_data | ||||
@given(revision(), revision(), revision()) | |||||
def test_enrich_revision_with_children_and_parent_no_dir( | def test_enrich_revision_with_children_and_parent_no_dir( | ||||
api_request_factory, archive_data, revision, parent_revision, child_revision | api_request_factory, archive_data, revisions_list | ||||
): | ): | ||||
revision, parent_revision, child_revision = revisions_list(size=3) | |||||
revision_data = archive_data.revision_get(revision) | revision_data = archive_data.revision_get(revision) | ||||
del revision_data["directory"] | del revision_data["directory"] | ||||
revision_data["parents"] = revision_data["parents"] + (parent_revision,) | revision_data["parents"] = revision_data["parents"] + (parent_revision,) | ||||
revision_data["children"] = child_revision | revision_data["children"] = child_revision | ||||
url = reverse("api-1-revision", url_args={"sha1_git": revision}) | url = reverse("api-1-revision", url_args={"sha1_git": revision}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
Show All 21 Lines | revision_data["children_urls"] = [ | ||||
reverse( | reverse( | ||||
"api-1-revision", url_args={"sha1_git": child_revision}, request=request | "api-1-revision", url_args={"sha1_git": child_revision}, request=request | ||||
) | ) | ||||
] | ] | ||||
assert actual_revision == revision_data | assert actual_revision == revision_data | ||||
@given(revision(), revision(), revision()) | def test_enrich_revisionno_context(api_request_factory, revisions_list): | ||||
def test_enrich_revision_no_context( | revision, parent_revision, child_revision = revisions_list(size=3) | ||||
api_request_factory, revision, parent_revision, child_revision | |||||
): | |||||
revision_data = { | revision_data = { | ||||
"id": revision, | "id": revision, | ||||
"parents": [parent_revision], | "parents": [parent_revision], | ||||
"children": [child_revision], | "children": [child_revision], | ||||
} | } | ||||
url = reverse("api-1-revision", url_args={"sha1_git": revision}) | url = reverse("api-1-revision", url_args={"sha1_git": revision}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
Show All 23 Lines | revision_data["children_urls"] = [ | ||||
reverse( | reverse( | ||||
"api-1-revision", url_args={"sha1_git": child_revision}, request=request | "api-1-revision", url_args={"sha1_git": child_revision}, request=request | ||||
) | ) | ||||
] | ] | ||||
assert actual_revision == revision_data | assert actual_revision == revision_data | ||||
@given(revision(), revision(), revision()) | |||||
def test_enrich_revision_with_no_message( | def test_enrich_revision_with_no_message( | ||||
api_request_factory, archive_data, revision, parent_revision, child_revision | api_request_factory, archive_data, revisions_list | ||||
): | ): | ||||
revision, parent_revision, child_revision = revisions_list(size=3) | |||||
revision_data = archive_data.revision_get(revision) | revision_data = archive_data.revision_get(revision) | ||||
revision_data["message"] = None | revision_data["message"] = None | ||||
revision_data["parents"] = revision_data["parents"] + (parent_revision,) | revision_data["parents"] = revision_data["parents"] + (parent_revision,) | ||||
revision_data["children"] = child_revision | revision_data["children"] = child_revision | ||||
url = reverse("api-1-revision", url_args={"sha1_git": revision}) | url = reverse("api-1-revision", url_args={"sha1_git": revision}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
Show All 27 Lines | revision_data["children_urls"] = [ | ||||
reverse( | reverse( | ||||
"api-1-revision", url_args={"sha1_git": child_revision}, request=request | "api-1-revision", url_args={"sha1_git": child_revision}, request=request | ||||
) | ) | ||||
] | ] | ||||
assert actual_revision == revision_data | assert actual_revision == revision_data | ||||
@given(revision(), revision(), revision()) | |||||
def test_enrich_revision_with_invalid_message( | def test_enrich_revision_with_invalid_message( | ||||
api_request_factory, archive_data, revision, parent_revision, child_revision | api_request_factory, archive_data, revisions_list | ||||
): | ): | ||||
revision, parent_revision, child_revision = revisions_list(size=3) | |||||
revision_data = archive_data.revision_get(revision) | revision_data = archive_data.revision_get(revision) | ||||
revision_data["decoding_failures"] = ["message"] | revision_data["decoding_failures"] = ["message"] | ||||
revision_data["parents"] = revision_data["parents"] + (parent_revision,) | revision_data["parents"] = revision_data["parents"] + (parent_revision,) | ||||
revision_data["children"] = child_revision | revision_data["children"] = child_revision | ||||
url = reverse("api-1-revision", url_args={"sha1_git": revision}) | url = reverse("api-1-revision", url_args={"sha1_git": revision}) | ||||
request = api_request_factory.get(url) | request = api_request_factory.get(url) | ||||
▲ Show 20 Lines • Show All 142 Lines • Show Last 20 Lines |