Page MenuHomeSoftware Heritage

test_identifiers.py
No OneTemporary

test_identifiers.py

# Copyright (C) 2018-2020 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information
from hypothesis import given
from swh.web.common.utils import reverse
from swh.web.tests.strategies import content, directory, revision, release, snapshot
swh_id_prefix = "swh:1:"
@given(content())
def test_content_id_browse(client, content):
cnt_sha1_git = content["sha1_git"]
swh_id = swh_id_prefix + "cnt:" + cnt_sha1_git
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
query_string = "sha1_git:" + cnt_sha1_git
content_browse_url = reverse(
"browse-content", url_args={"query_string": query_string}
)
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == content_browse_url
@given(directory())
def test_directory_id_browse(client, directory):
swh_id = swh_id_prefix + "dir:" + directory
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
directory_browse_url = reverse("browse-directory", url_args={"sha1_git": directory})
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == directory_browse_url
@given(revision())
def test_revision_id_browse(client, revision):
swh_id = swh_id_prefix + "rev:" + revision
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
revision_browse_url = reverse("browse-revision", url_args={"sha1_git": revision})
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == revision_browse_url
query_params = {"origin": "https://github.com/user/repo"}
url = reverse(
"browse-swh-id", url_args={"swh_id": swh_id}, query_params=query_params
)
revision_browse_url = reverse(
"browse-revision", url_args={"sha1_git": revision}, query_params=query_params
)
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == revision_browse_url
@given(release())
def test_release_id_browse(client, release):
swh_id = swh_id_prefix + "rel:" + release
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
release_browse_url = reverse("browse-release", url_args={"sha1_git": release})
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == release_browse_url
query_params = {"origin": "https://github.com/user/repo"}
url = reverse(
"browse-swh-id", url_args={"swh_id": swh_id}, query_params=query_params
)
release_browse_url = reverse(
"browse-release", url_args={"sha1_git": release}, query_params=query_params
)
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == release_browse_url
@given(snapshot())
def test_snapshot_id_browse(client, snapshot):
swh_id = swh_id_prefix + "snp:" + snapshot
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
snapshot_browse_url = reverse("browse-snapshot", url_args={"snapshot_id": snapshot})
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == snapshot_browse_url
query_params = {"origin": "https://github.com/user/repo"}
url = reverse(
"browse-swh-id", url_args={"swh_id": swh_id}, query_params=query_params
)
release_browse_url = reverse(
"browse-snapshot", url_args={"snapshot_id": snapshot}, query_params=query_params
)
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == release_browse_url
@given(release())
def test_bad_id_browse(client, release):
swh_id = swh_id_prefix + "foo:" + release
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
resp = client.get(url)
assert resp.status_code == 400
@given(content())
def test_content_id_optional_parts_browse(client, content):
cnt_sha1_git = content["sha1_git"]
optional_parts = ";lines=4-20;origin=https://github.com/user/repo"
swh_id = swh_id_prefix + "cnt:" + cnt_sha1_git + optional_parts
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
query_string = "sha1_git:" + cnt_sha1_git
content_browse_url = reverse(
"browse-content",
url_args={"query_string": query_string},
query_params={"origin": "https://github.com/user/repo"},
)
content_browse_url += "#L4-L20"
resp = client.get(url)
assert resp.status_code == 302
assert resp["location"] == content_browse_url
@given(release())
def test_origin_id_not_resolvable(client, release):
swh_id = "swh:1:ori:8068d0075010b590762c6cb5682ed53cb3c13deb"
url = reverse("browse-swh-id", url_args={"swh_id": swh_id})
resp = client.get(url)
assert resp.status_code == 400

File Metadata

Mime Type
text/x-python
Expires
Jul 4 2025, 6:00 PM (4 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3298432

Event Timeline