Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/browse/views/test_origin.py
Show First 20 Lines • Show All 389 Lines • ▼ Show 20 Lines | _origin_directory_view_test_helper( | ||||
releases, | releases, | ||||
root_dir_sha1, | root_dir_sha1, | ||||
subdir_content, | subdir_content, | ||||
path=subdir_path, | path=subdir_path, | ||||
snapshot_id=visit["snapshot"], | snapshot_id=visit["snapshot"], | ||||
) | ) | ||||
def test_origin_releases(client, archive_data, origin): | |||||
origin_visits = archive_data.origin_visit_get(origin["url"]) | |||||
visit = origin_visits[-1] | |||||
snapshot = archive_data.snapshot_get(visit["snapshot"]) | |||||
snapshot_sizes = archive_data.snapshot_count_branches(snapshot["id"]) | |||||
snapshot_content = process_snapshot_branches(snapshot) | |||||
_origin_releases_test_helper(client, origin, snapshot_content, snapshot_sizes) | |||||
_origin_releases_test_helper( | |||||
client, origin, snapshot_content, snapshot_sizes, snapshot_id=visit["snapshot"] | |||||
) | |||||
@given( | @given( | ||||
new_origin(), new_snapshot(min_size=4, max_size=4), visit_dates(), | new_origin(), new_snapshot(min_size=4, max_size=4), visit_dates(), | ||||
) | ) | ||||
def test_origin_snapshot_null_branch( | def test_origin_snapshot_null_branch( | ||||
client, archive_data, revisions_list, new_origin, new_snapshot, visit_dates, | client, archive_data, revisions_list, new_origin, new_snapshot, visit_dates, | ||||
): | ): | ||||
revisions = revisions_list(size=4) | revisions = revisions_list(size=4) | ||||
snp_dict = new_snapshot.to_dict() | snp_dict = new_snapshot.to_dict() | ||||
▲ Show 20 Lines • Show All 390 Lines • ▼ Show 20 Lines | assert_contains( | ||||
resp, "The path of a content must be given as query parameter.", status_code=400 | resp, "The path of a content must be given as query parameter.", status_code=400 | ||||
) | ) | ||||
def test_origin_views_no_url_query_parameter(client): | def test_origin_views_no_url_query_parameter(client): | ||||
for browse_context in ( | for browse_context in ( | ||||
"content", | "content", | ||||
"directory", | "directory", | ||||
"releases", | |||||
"visits", | "visits", | ||||
): | ): | ||||
url = reverse(f"browse-origin-{browse_context}") | url = reverse(f"browse-origin-{browse_context}") | ||||
resp = check_html_get_response( | resp = check_html_get_response( | ||||
client, url, status_code=400, template_used="error.html" | client, url, status_code=400, template_used="error.html" | ||||
) | ) | ||||
assert_contains( | assert_contains( | ||||
resp, "An origin URL must be provided as query parameter.", status_code=400, | resp, "An origin URL must be provided as query parameter.", status_code=400, | ||||
) | ) | ||||
@given(new_origin()) | @given(new_origin()) | ||||
@pytest.mark.parametrize("browse_context", ["log", "branches"]) | @pytest.mark.parametrize("browse_context", ["log", "branches", "releases"]) | ||||
def test_origin_view_redirects(client, browse_context, new_origin): | def test_origin_view_redirects(client, browse_context, new_origin): | ||||
query_params = {"origin_url": new_origin.url} | query_params = {"origin_url": new_origin.url} | ||||
url = reverse(f"browse-origin-{browse_context}", query_params=query_params) | url = reverse(f"browse-origin-{browse_context}", query_params=query_params) | ||||
resp = check_html_get_response(client, url, status_code=301) | resp = check_html_get_response(client, url, status_code=301) | ||||
assert resp["location"] == reverse( | assert resp["location"] == reverse( | ||||
f"browse-snapshot-{browse_context}", query_params=query_params | f"browse-snapshot-{browse_context}", query_params=query_params | ||||
) | ) | ||||
@given(new_origin()) | @given(new_origin()) | ||||
@pytest.mark.parametrize("browse_context", ["log", "branches"]) | @pytest.mark.parametrize("browse_context", ["log", "branches", "releases"]) | ||||
def test_origin_view_legacy_redirects(client, browse_context, new_origin): | def test_origin_view_legacy_redirects(client, browse_context, new_origin): | ||||
params = {"origin_url": new_origin.url, "timestamp": "2021-01-23T22:24:10Z"} | params = {"origin_url": new_origin.url, "timestamp": "2021-01-23T22:24:10Z"} | ||||
url = reverse( | url = reverse( | ||||
f"browse-origin-{browse_context}-legacy", url_args=params, query_params=params | f"browse-origin-{browse_context}-legacy", url_args=params, query_params=params | ||||
) | ) | ||||
resp = check_html_get_response(client, url, status_code=301) | resp = check_html_get_response(client, url, status_code=301) | ||||
assert resp["location"] == reverse( | assert resp["location"] == reverse( | ||||
▲ Show 20 Lines • Show All 280 Lines • ▼ Show 20 Lines | ): | ||||
assert_contains(resp, "swh-take-new-snapshot") | assert_contains(resp, "swh-take-new-snapshot") | ||||
_check_origin_link(resp, origin_info["url"]) | _check_origin_link(resp, origin_info["url"]) | ||||
assert_not_contains(resp, "swh-metadata-popover") | assert_not_contains(resp, "swh-metadata-popover") | ||||
def _origin_releases_test_helper( | |||||
client, origin_info, origin_snapshot, snapshot_sizes, snapshot_id=None | |||||
): | |||||
query_params = {"origin_url": origin_info["url"], "snapshot": snapshot_id} | |||||
url = reverse("browse-origin-releases", query_params=query_params) | |||||
resp = check_html_get_response( | |||||
client, url, status_code=200, template_used="browse/releases.html" | |||||
) | |||||
origin_releases = origin_snapshot[1] | |||||
origin_branches_url = reverse("browse-origin-branches", query_params=query_params) | |||||
assert_contains(resp, f'href="{escape(origin_branches_url)}"') | |||||
assert_contains(resp, f"Branches ({snapshot_sizes['revision']})") | |||||
origin_releases_url = reverse("browse-origin-releases", query_params=query_params) | |||||
nb_releases = len(origin_releases) | |||||
if nb_releases > 0: | |||||
assert_contains(resp, f'href="{escape(origin_releases_url)}"') | |||||
assert_contains(resp, f"Releases ({snapshot_sizes['release']}") | |||||
assert_contains(resp, '<tr class="swh-release-entry', count=nb_releases) | |||||
assert_contains(resp, 'title="The release', count=nb_releases) | |||||
for release in origin_releases: | |||||
browse_release_url = reverse( | |||||
"browse-release", | |||||
url_args={"sha1_git": release["id"]}, | |||||
query_params=query_params, | |||||
) | |||||
browse_revision_url = reverse( | |||||
"browse-revision", | |||||
url_args={"sha1_git": release["target"]}, | |||||
query_params=query_params, | |||||
) | |||||
assert_contains(resp, '<a href="%s">' % escape(browse_release_url)) | |||||
assert_contains(resp, '<a href="%s">' % escape(browse_revision_url)) | |||||
_check_origin_link(resp, origin_info["url"]) | |||||
def _check_origin_link(resp, origin_url): | def _check_origin_link(resp, 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}"') | ||||
def test_browse_pull_request_branch( | def test_browse_pull_request_branch( | ||||
Show All 18 Lines |