Changeset View
Changeset View
Standalone View
Standalone View
swh/auth/tests/test_keycloak.py
Show All 25 Lines | assert set(well_known_result.keys()) == { | ||||
"userinfo_endpoint", | "userinfo_endpoint", | ||||
"end_session_endpoint", | "end_session_endpoint", | ||||
"jwks_uri", | "jwks_uri", | ||||
"token_introspection_endpoint", | "token_introspection_endpoint", | ||||
} | } | ||||
def test_keycloak_oidc_authorization_url(keycloak_oidc): | def test_keycloak_oidc_authorization_url(keycloak_oidc): | ||||
actual_auth_uri = keycloak_oidc.authorization_url("http://redirect-uri", foo="bar") | actual_auth_uri = keycloak_oidc.authorization_url( | ||||
"http://redirect-uri", scope="openid", state="some-state", foo="bar" | |||||
) | |||||
expected_auth_url = keycloak_oidc.well_known()["authorization_endpoint"] | expected_auth_url = keycloak_oidc.well_known()["authorization_endpoint"] | ||||
parsed_result = urlparse(actual_auth_uri) | parsed_result = urlparse(actual_auth_uri) | ||||
assert expected_auth_url.endswith(parsed_result.path) | assert expected_auth_url.endswith(parsed_result.path) | ||||
parsed_query = parse_qs(parsed_result.query) | parsed_query = parse_qs(parsed_result.query) | ||||
assert parsed_query == { | assert parsed_query == { | ||||
"client_id": [CLIENT_ID], | "client_id": [CLIENT_ID], | ||||
"response_type": ["code"], | "response_type": ["code"], | ||||
"redirect_uri": ["http://redirect-uri"], | "redirect_uri": ["http://redirect-uri"], | ||||
"foo": ["bar"], | "foo": ["bar"], | ||||
"scope": ["openid"], | |||||
"state": ["some-state"], | |||||
} | } | ||||
def test_keycloak_oidc_authorization_code_fail(keycloak_oidc): | def test_keycloak_oidc_authorization_code_fail(keycloak_oidc): | ||||
"Authorization failure raise error" | "Authorization failure raise error" | ||||
# Simulate failed authentication with Keycloak | # Simulate failed authentication with Keycloak | ||||
keycloak_oidc.set_auth_success(False) | keycloak_oidc.set_auth_success(False) | ||||
▲ Show 20 Lines • Show All 125 Lines • Show Last 20 Lines |