Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8393617
test_templates.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
test_templates.py
View Options
# Copyright (C) 2021 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
copy
import
deepcopy
import
random
from
pkg_resources
import
get_distribution
import
pytest
from
swh.web.auth.utils
import
ADMIN_LIST_DEPOSIT_PERMISSION
from
swh.web.common.utils
import
reverse
from
swh.web.config
import
SWH_WEB_SERVER_NAME
,
SWH_WEB_STAGING_SERVER_NAMES
,
get_config
from
swh.web.tests.django_asserts
import
assert_contains
,
assert_not_contains
from
swh.web.tests.utils
import
check_http_get_response
,
create_django_permission
swh_web_version
=
get_distribution
(
"swh.web"
)
.
version
def
test_layout_without_ribbon
(
client
):
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
,
server_name
=
SWH_WEB_SERVER_NAME
)
assert_not_contains
(
resp
,
"swh-corner-ribbon"
)
def
test_layout_with_staging_ribbon
(
client
):
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
,
server_name
=
random
.
choice
(
SWH_WEB_STAGING_SERVER_NAMES
),
)
assert_contains
(
resp
,
"swh-corner-ribbon"
)
assert_contains
(
resp
,
f
"Staging<br/>v{swh_web_version}"
)
def
test_layout_with_development_ribbon
(
client
):
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
,
server_name
=
"localhost"
,
)
assert_contains
(
resp
,
"swh-corner-ribbon"
)
assert_contains
(
resp
,
f
"Development<br/>v{swh_web_version.split('+')[0]}"
)
def
test_layout_with_oidc_auth_enabled
(
client
):
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
)
assert_contains
(
resp
,
reverse
(
"oidc-login"
))
def
test_layout_without_oidc_auth_enabled
(
client
,
mocker
):
config
=
deepcopy
(
get_config
())
config
[
"keycloak"
][
"server_url"
]
=
""
mock_get_config
=
mocker
.
patch
(
"swh.web.common.utils.get_config"
)
mock_get_config
.
return_value
=
config
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
)
assert_contains
(
resp
,
reverse
(
"login"
))
def
test_layout_swh_web_version_number_display
(
client
):
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
)
assert_contains
(
resp
,
f
"swh-web v{swh_web_version}"
)
@pytest.mark.django_db
def
test_layout_no_deposit_admin_for_anonymous_user
(
client
):
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
)
assert_not_contains
(
resp
,
"swh-deposit-admin-link"
)
@pytest.mark.django_db
def
test_layout_deposit_admin_for_staff_user
(
client
,
staff_user
):
client
.
force_login
(
staff_user
)
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
)
assert_contains
(
resp
,
"swh-deposit-admin-link"
)
@pytest.mark.django_db
def
test_layout_deposit_admin_for_user_with_permission
(
client
,
regular_user
):
regular_user
.
user_permissions
.
add
(
create_django_permission
(
ADMIN_LIST_DEPOSIT_PERMISSION
)
)
client
.
force_login
(
regular_user
)
url
=
reverse
(
"swh-web-homepage"
)
resp
=
check_http_get_response
(
client
,
url
,
status_code
=
200
)
assert_contains
(
resp
,
"swh-deposit-admin-link"
)
File Metadata
Details
Attached
Mime Type
text/x-python
Expires
Wed, Jun 4, 7:15 PM (6 d, 5 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3326493
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment