Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/auth/test_views.py
Show First 20 Lines • Show All 281 Lines • ▼ Show 20 Lines | |||||
@pytest.mark.django_db | @pytest.mark.django_db | ||||
def test_oidc_profile_view(client, keycloak_oidc): | def test_oidc_profile_view(client, keycloak_oidc): | ||||
""" | """ | ||||
Authenticated users should be able to request the profile page | Authenticated users should be able to request the profile page | ||||
and link to Keycloak account UI should be present. | and link to Keycloak account UI should be present. | ||||
""" | """ | ||||
url = reverse("oidc-profile") | url = reverse("oidc-profile") | ||||
kc_config = get_config()["keycloak"] | kc_config = get_config()["keycloak"] | ||||
user_permissions = ["perm1", "perm2"] | client_permissions = ["perm1", "perm2"] | ||||
keycloak_oidc.user_permissions = user_permissions | keycloak_oidc.client_permissions = client_permissions | ||||
client.login(code="", code_verifier="", redirect_uri="") | client.login(code="", code_verifier="", redirect_uri="") | ||||
resp = check_html_get_response( | resp = check_html_get_response( | ||||
client, url, status_code=200, template_used="auth/profile.html" | client, url, status_code=200, template_used="auth/profile.html" | ||||
) | ) | ||||
user = resp.wsgi_request.user | user = resp.wsgi_request.user | ||||
kc_account_url = ( | kc_account_url = ( | ||||
f"{kc_config['server_url']}realms/{kc_config['realm_name']}/account/" | f"{kc_config['server_url']}realms/{kc_config['realm_name']}/account/" | ||||
) | ) | ||||
assert_contains(resp, kc_account_url) | assert_contains(resp, kc_account_url) | ||||
assert_contains(resp, user.username) | assert_contains(resp, user.username) | ||||
assert_contains(resp, user.first_name) | assert_contains(resp, user.first_name) | ||||
assert_contains(resp, user.last_name) | assert_contains(resp, user.last_name) | ||||
assert_contains(resp, user.email) | assert_contains(resp, user.email) | ||||
for perm in user_permissions: | for perm in client_permissions: | ||||
assert_contains(resp, perm) | assert_contains(resp, perm) |