Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/browse/views/test_revision.py
# Copyright (C) 2017-2020 The Software Heritage developers | # Copyright (C) 2017-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 textwrap | |||||
from django.utils.html import escape | from django.utils.html import escape | ||||
from hypothesis import given | from hypothesis import given | ||||
from swh.web.common.identifiers import get_swh_persistent_id | from swh.web.common.identifiers import get_swh_persistent_id | ||||
from swh.web.common.utils import reverse, format_utc_iso_date, parse_timestamp | from swh.web.common.utils import reverse, format_utc_iso_date, parse_timestamp | ||||
from swh.web.tests.django_asserts import assert_contains, assert_template_used | from swh.web.tests.django_asserts import assert_contains, assert_template_used | ||||
from swh.web.tests.strategies import origin, revision, unknown_revision, new_origin | from swh.web.tests.strategies import origin, revision, unknown_revision, new_origin | ||||
Show All 30 Lines | def test_revision_browse(client, archive_data, revision): | ||||
message_lines = revision_data["message"].split("\n") | message_lines = revision_data["message"].split("\n") | ||||
assert_contains(resp, format_utc_iso_date(author_date)) | assert_contains(resp, format_utc_iso_date(author_date)) | ||||
assert_contains(resp, format_utc_iso_date(committer_date)) | assert_contains(resp, format_utc_iso_date(committer_date)) | ||||
assert_contains(resp, escape(message_lines[0])) | assert_contains(resp, escape(message_lines[0])) | ||||
assert_contains(resp, escape("\n".join(message_lines[1:]))) | assert_contains(resp, escape("\n".join(message_lines[1:]))) | ||||
swh_rev_id = get_swh_persistent_id("revision", revision) | |||||
swh_rev_id_url = reverse("browse-swh-id", url_args={"swh_id": swh_rev_id}) | |||||
assert_contains( | |||||
resp, | |||||
textwrap.indent( | |||||
( | |||||
f"Browse archived revision\n" | |||||
f'<a href="{swh_rev_id_url}">\n' | |||||
f" {swh_rev_id}\n" | |||||
f"</a>" | |||||
), | |||||
" " * 4, | |||||
), | |||||
) | |||||
@given(origin()) | @given(origin()) | ||||
def test_revision_origin_browse(client, archive_data, origin): | def test_revision_origin_browse(client, archive_data, origin): | ||||
snapshot = archive_data.snapshot_get_latest(origin["url"]) | snapshot = archive_data.snapshot_get_latest(origin["url"]) | ||||
revision = archive_data.snapshot_get_head(snapshot) | revision = archive_data.snapshot_get_head(snapshot) | ||||
revision_data = archive_data.revision_get(revision) | revision_data = archive_data.revision_get(revision) | ||||
dir_id = revision_data["directory"] | dir_id = revision_data["directory"] | ||||
▲ Show 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | assert_contains( | ||||
resp, '<a class="page-link" href="%s">Newer</a>' % escape(prev_page_url) | resp, '<a class="page-link" href="%s">Newer</a>' % escape(prev_page_url) | ||||
) | ) | ||||
if len(revision_log_sorted) > 3 * per_page: | if len(revision_log_sorted) > 3 * per_page: | ||||
assert_contains( | assert_contains( | ||||
resp, '<a class="page-link" href="%s">Older</a>' % escape(next_page_url), | resp, '<a class="page-link" href="%s">Older</a>' % escape(next_page_url), | ||||
) | ) | ||||
swh_rev_id = get_swh_persistent_id("revision", revision) | |||||
swh_rev_id_url = reverse("browse-swh-id", url_args={"swh_id": swh_rev_id}) | |||||
assert_contains( | |||||
resp, | |||||
textwrap.indent( | |||||
( | |||||
f"Browse archived revisions history\n" | |||||
f'<a href="{swh_rev_id_url}">\n' | |||||
f" {swh_rev_id}\n" | |||||
f"</a>" | |||||
), | |||||
" " * 4, | |||||
), | |||||
) | |||||
@given(revision(), unknown_revision(), new_origin()) | @given(revision(), unknown_revision(), new_origin()) | ||||
def test_revision_request_errors(client, revision, unknown_revision, new_origin): | def test_revision_request_errors(client, revision, unknown_revision, new_origin): | ||||
url = reverse("browse-revision", url_args={"sha1_git": unknown_revision}) | url = reverse("browse-revision", url_args={"sha1_git": unknown_revision}) | ||||
resp = client.get(url) | resp = client.get(url) | ||||
assert resp.status_code == 404 | assert resp.status_code == 404 | ||||
assert_template_used(resp, "error.html") | assert_template_used(resp, "error.html") | ||||
assert_contains( | assert_contains( | ||||
Show All 29 Lines |