Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9347889
test_identifiers.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
test_identifiers.py
View Options
# 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
Details
Attached
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
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment