Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/browse/test_snapshot_context.py
Show All 17 Lines | |||||
from swh.web.common.identifiers import gen_swhid | from swh.web.common.identifiers import gen_swhid | ||||
from swh.web.common.origin_visits import get_origin_visit, get_origin_visits | from swh.web.common.origin_visits import get_origin_visit, get_origin_visits | ||||
from swh.web.common.typing import ( | from swh.web.common.typing import ( | ||||
SnapshotBranchInfo, | SnapshotBranchInfo, | ||||
SnapshotContext, | SnapshotContext, | ||||
SnapshotReleaseInfo, | SnapshotReleaseInfo, | ||||
) | ) | ||||
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.strategies import ( | from swh.web.tests.strategies import snapshot | ||||
origin_with_multiple_visits, | |||||
origin_with_releases, | |||||
snapshot, | |||||
) | |||||
@given(origin_with_multiple_visits()) | def test_get_origin_visit_snapshot_simple(archive_data, origin_with_multiple_visits): | ||||
def test_get_origin_visit_snapshot_simple(archive_data, origin): | visits = archive_data.origin_visit_get(origin_with_multiple_visits["url"]) | ||||
visits = archive_data.origin_visit_get(origin["url"]) | |||||
for visit in visits: | for visit in visits: | ||||
snapshot = archive_data.snapshot_get(visit["snapshot"]) | snapshot = archive_data.snapshot_get(visit["snapshot"]) | ||||
branches = [] | branches = [] | ||||
releases = [] | releases = [] | ||||
def _process_branch_data(branch, branch_data, alias=False): | def _process_branch_data(branch, branch_data, alias=False): | ||||
Show All 37 Lines | for visit in visits: | ||||
aliases[branch] = target_data | aliases[branch] = target_data | ||||
_process_branch_data(branch, target_data, alias=True) | _process_branch_data(branch, target_data, alias=True) | ||||
else: | else: | ||||
_process_branch_data(branch, branch_data) | _process_branch_data(branch, branch_data) | ||||
assert branches and releases, "Incomplete test data." | assert branches and releases, "Incomplete test data." | ||||
origin_visit_branches = get_origin_visit_snapshot( | origin_visit_branches = get_origin_visit_snapshot( | ||||
origin, visit_id=visit["visit"] | origin_with_multiple_visits, visit_id=visit["visit"] | ||||
) | ) | ||||
assert origin_visit_branches == (branches, releases, aliases) | assert origin_visit_branches == (branches, releases, aliases) | ||||
@given(snapshot()) | @given(snapshot()) | ||||
def test_get_snapshot_context_no_origin(archive_data, snapshot): | def test_get_snapshot_context_no_origin(archive_data, snapshot): | ||||
▲ Show 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | ): | ||||
assert snapshot_context == expected | assert snapshot_context == expected | ||||
_check_branch_release_revision_parameters( | _check_branch_release_revision_parameters( | ||||
archive_data, expected, browse_context, kwargs, branches, releases | archive_data, expected, browse_context, kwargs, branches, releases | ||||
) | ) | ||||
@given(origin_with_multiple_visits()) | def test_get_snapshot_context_with_origin(archive_data, origin_with_multiple_visits): | ||||
def test_get_snapshot_context_with_origin(archive_data, origin): | |||||
origin_visits = get_origin_visits(origin) | origin_visits = get_origin_visits(origin_with_multiple_visits) | ||||
timestamp = format_utc_iso_date(origin_visits[0]["date"], "%Y-%m-%dT%H:%M:%SZ") | timestamp = format_utc_iso_date(origin_visits[0]["date"], "%Y-%m-%dT%H:%M:%SZ") | ||||
visit_id = origin_visits[1]["visit"] | visit_id = origin_visits[1]["visit"] | ||||
origin_url = origin_with_multiple_visits["url"] | |||||
for browse_context, kwargs in ( | for browse_context, kwargs in ( | ||||
("content", {"origin_url": origin["url"], "path": "/some/path"}), | ("content", {"origin_url": origin_url, "path": "/some/path"}), | ||||
("directory", {"origin_url": origin["url"]}), | ("directory", {"origin_url": origin_url}), | ||||
("log", {"origin_url": origin["url"]}), | ("log", {"origin_url": origin_url}), | ||||
("directory", {"origin_url": origin["url"], "timestamp": timestamp,},), | ("directory", {"origin_url": origin_url, "timestamp": timestamp,},), | ||||
("directory", {"origin_url": origin["url"], "visit_id": visit_id,},), | ("directory", {"origin_url": origin_url, "visit_id": visit_id,},), | ||||
): | ): | ||||
visit_id = kwargs["visit_id"] if "visit_id" in kwargs else None | visit_id = kwargs["visit_id"] if "visit_id" in kwargs else None | ||||
visit_ts = kwargs["timestamp"] if "timestamp" in kwargs else None | visit_ts = kwargs["timestamp"] if "timestamp" in kwargs else None | ||||
visit_info = get_origin_visit( | visit_info = get_origin_visit( | ||||
{"url": kwargs["origin_url"]}, visit_ts=visit_ts, visit_id=visit_id | {"url": kwargs["origin_url"]}, visit_ts=visit_ts, visit_id=visit_id | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | ): | ||||
query_params["path"] = kwargs["path"] | query_params["path"] = kwargs["path"] | ||||
expected = SnapshotContext( | expected = SnapshotContext( | ||||
branch="HEAD", | branch="HEAD", | ||||
branch_alias=True, | branch_alias=True, | ||||
branches=branches, | branches=branches, | ||||
branches_url=branches_url, | branches_url=branches_url, | ||||
is_empty=is_empty, | is_empty=is_empty, | ||||
origin_info={"url": origin["url"]}, | origin_info={"url": origin_url}, | ||||
origin_visits_url=origin_visits_url, | origin_visits_url=origin_visits_url, | ||||
release=None, | release=None, | ||||
release_alias=False, | release_alias=False, | ||||
release_id=None, | release_id=None, | ||||
query_params=query_params, | query_params=query_params, | ||||
releases=releases, | releases=releases, | ||||
releases_url=releases_url, | releases_url=releases_url, | ||||
revision_id=revision_id, | revision_id=revision_id, | ||||
▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | ): | ||||
expected_revision["query_params"] = {"revision": revision["id"], **query_params} | expected_revision["query_params"] = {"revision": revision["id"], **query_params} | ||||
expected_revision["revision_info"]["revision_url"] = gen_revision_url( | expected_revision["revision_info"]["revision_url"] = gen_revision_url( | ||||
revision["id"], expected_revision | revision["id"], expected_revision | ||||
) | ) | ||||
assert snapshot_context == expected_revision | assert snapshot_context == expected_revision | ||||
@given(origin_with_releases()) | def test_get_release_large_snapshot(archive_data, origin_with_releases): | ||||
def test_get_release_large_snapshot(archive_data, origin): | snapshot = archive_data.snapshot_get_latest(origin_with_releases["url"]) | ||||
snapshot = archive_data.snapshot_get_latest(origin["url"]) | |||||
release_id = random.choice( | release_id = random.choice( | ||||
[ | [ | ||||
v["target"] | v["target"] | ||||
for v in snapshot["branches"].values() | for v in snapshot["branches"].values() | ||||
if v["target_type"] == "release" | if v["target_type"] == "release" | ||||
] | ] | ||||
) | ) | ||||
release_data = archive_data.release_get(release_id) | release_data = archive_data.release_get(release_id) | ||||
Show All 20 Lines |