Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/browse/views/test_release.py
# Copyright (C) 2018-2020 The Software Heritage developers | # Copyright (C) 2018-2020 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 django.utils.html import escape | from django.utils.html import escape | ||||
from swh.model.identifiers import DIRECTORY, RELEASE, REVISION, SNAPSHOT | |||||
from swh.web.common.identifiers import gen_swhid | from swh.web.common.identifiers import gen_swhid | ||||
from swh.web.common.utils import format_utc_iso_date, reverse | from swh.web.common.utils import format_utc_iso_date, reverse | ||||
from swh.web.tests.django_asserts import assert_contains | from swh.web.tests.django_asserts import assert_contains | ||||
from swh.web.tests.strategies import origin_with_releases, release, unknown_release | from swh.web.tests.strategies import origin_with_releases, release, unknown_release | ||||
from swh.web.tests.utils import check_html_get_response | from swh.web.tests.utils import check_html_get_response | ||||
@given(release()) | @given(release()) | ||||
▲ Show 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | assert_contains( | ||||
resp, | resp, | ||||
"<h6>%s</h6>%s" % (message_lines[0] or "None", "\n".join(message_lines[1:])), | "<h6>%s</h6>%s" % (message_lines[0] or "None", "\n".join(message_lines[1:])), | ||||
) | ) | ||||
assert_contains(resp, release_id) | assert_contains(resp, release_id) | ||||
assert_contains(resp, release_name) | assert_contains(resp, release_name) | ||||
assert_contains(resp, target_type) | assert_contains(resp, target_type) | ||||
assert_contains(resp, '<a href="%s">%s</a>' % (escape(target_url), target)) | assert_contains(resp, '<a href="%s">%s</a>' % (escape(target_url), target)) | ||||
swh_rel_id = gen_swhid("release", release_id) | swh_rel_id = gen_swhid(RELEASE, release_id) | ||||
swh_rel_id_url = reverse("browse-swhid", url_args={"swhid": swh_rel_id}) | swh_rel_id_url = reverse("browse-swhid", url_args={"swhid": swh_rel_id}) | ||||
assert_contains(resp, swh_rel_id) | assert_contains(resp, swh_rel_id) | ||||
assert_contains(resp, swh_rel_id_url) | assert_contains(resp, swh_rel_id_url) | ||||
if origin_url: | if origin_url: | ||||
browse_origin_url = reverse( | browse_origin_url = reverse( | ||||
"browse-origin", query_params={"origin_url": origin_url} | "browse-origin", query_params={"origin_url": origin_url} | ||||
) | ) | ||||
assert_contains(resp, f'href="{browse_origin_url}"') | assert_contains(resp, f'href="{browse_origin_url}"') | ||||
elif snapshot_id: | elif snapshot_id: | ||||
swh_snp_id = gen_swhid("snapshot", snapshot_id) | swh_snp_id = gen_swhid(SNAPSHOT, snapshot_id) | ||||
swh_snp_id_url = reverse("browse-swhid", url_args={"swhid": swh_snp_id}) | swh_snp_id_url = reverse("browse-swhid", url_args={"swhid": swh_snp_id}) | ||||
assert_contains(resp, f'href="{swh_snp_id_url}"') | assert_contains(resp, f'href="{swh_snp_id_url}"') | ||||
if release_data["target_type"] == "revision": | if release_data["target_type"] == "revision": | ||||
rev = archive_data.revision_get(release_data["target"]) | |||||
rev_dir = rev["directory"] | |||||
rev_metadata = {} | |||||
dir_metadata = {} | |||||
if origin_url: | if origin_url: | ||||
directory_url = reverse( | directory_url = reverse( | ||||
"browse-origin-directory", | "browse-origin-directory", | ||||
query_params={ | query_params={ | ||||
"origin_url": origin_url, | "origin_url": origin_url, | ||||
"release": release_data["name"], | "release": release_data["name"], | ||||
"snapshot": snapshot_id, | "snapshot": snapshot_id, | ||||
}, | }, | ||||
) | ) | ||||
rev_metadata["origin"] = dir_metadata["origin"] = origin_url | |||||
snapshot = archive_data.snapshot_get_latest(origin_url) | |||||
rev_metadata["visit"] = dir_metadata["visit"] = gen_swhid( | |||||
SNAPSHOT, snapshot["id"] | |||||
) | |||||
dir_metadata["anchor"] = gen_swhid(RELEASE, release_id) | |||||
elif snapshot_id: | elif snapshot_id: | ||||
directory_url = reverse( | directory_url = reverse( | ||||
"browse-snapshot-directory", | "browse-snapshot-directory", | ||||
url_args={"snapshot_id": snapshot_id}, | url_args={"snapshot_id": snapshot_id}, | ||||
query_params={"release": release_data["name"],}, | query_params={"release": release_data["name"],}, | ||||
) | ) | ||||
else: | rev_metadata["visit"] = dir_metadata["visit"] = gen_swhid( | ||||
rev = archive_data.revision_get(release_data["target"]) | SNAPSHOT, snapshot_id | ||||
directory_url = reverse( | |||||
"browse-directory", url_args={"sha1_git": rev["directory"]} | |||||
) | ) | ||||
dir_metadata["anchor"] = gen_swhid(RELEASE, release_id) | |||||
else: | |||||
directory_url = reverse("browse-directory", url_args={"sha1_git": rev_dir}) | |||||
assert_contains(resp, escape(directory_url)) | assert_contains(resp, escape(directory_url)) | ||||
swh_rev_id = gen_swhid(REVISION, rev["id"], metadata=rev_metadata) | |||||
swh_rev_id_url = reverse("browse-swhid", url_args={"swhid": swh_rev_id}) | |||||
assert_contains(resp, swh_rev_id_url) | |||||
swh_dir_id = gen_swhid(DIRECTORY, rev_dir, metadata=dir_metadata) | |||||
swh_dir_id_url = reverse("browse-swhid", url_args={"swhid": swh_dir_id}) | |||||
assert_contains(resp, swh_dir_id_url) |