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 | |||||