Skip to content

Commit 8b92cf3

Browse files
committed
[DOP-29772] Small Keycloak fixture fixes
1 parent 4aa4ee8 commit 8b92cf3

File tree

1 file changed

+28
-15
lines changed

1 file changed

+28
-15
lines changed

tests/test_server/fixtures/keycloak.py

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,18 @@ def mock_keycloak_well_known(server_app_settings, respx_mock):
9090
server_url = keycloak_settings.server_url
9191
realm_name = keycloak_settings.realm_name
9292

93-
respx_mock.get(f"{server_url}/realms/{realm_name}/.well-known/openid-configuration").respond(
93+
realm_url = f"{server_url}/realms/{realm_name}"
94+
well_known_url = f"{realm_url}/.well-known/openid-configuration"
95+
openid_url = f"{realm_url}/protocol/openid-connect"
96+
respx_mock.get(well_known_url).respond(
9497
status_code=200,
9598
json={
96-
"authorization_endpoint": f"{server_url}/realms/{realm_name}/protocol/openid-connect/auth",
97-
"token_endpoint": f"{server_url}/realms/{realm_name}/protocol/openid-connect/token",
98-
"userinfo_endpoint": f"{server_url}/realms/{realm_name}/protocol/openid-connect/userinfo",
99-
"end_session_endpoint": f"{server_url}/realms/{realm_name}/protocol/openid-connect/logout",
100-
"jwks_uri": f"{server_url}/realms/{realm_name}/protocol/openid-connect/certs",
101-
"issuer": f"{server_url}/realms/{realm_name}",
99+
"issuer": realm_url,
100+
"authorization_endpoint": f"{openid_url}/auth",
101+
"token_endpoint": f"{openid_url}/token",
102+
"userinfo_endpoint": f"{openid_url}/userinfo",
103+
"end_session_endpoint": f"{openid_url}/logout",
104+
"jwks_uri": f"{openid_url}/certs",
102105
},
103106
content_type="application/json",
104107
)
@@ -111,13 +114,15 @@ def mock_keycloak_realm(server_app_settings, rsa_keys, respx_mock):
111114
realm_name = keycloak_settings.realm_name
112115
public_pem_str = get_public_key_pem(rsa_keys["public_key"])
113116

114-
respx_mock.get(f"{server_url}/realms/{realm_name}").respond(
117+
realm_url = f"{server_url}/realms/{realm_name}"
118+
openid_url = f"{realm_url}/protocol/openid-connect"
119+
respx_mock.get(realm_url).respond(
115120
status_code=200,
116121
json={
117122
"realm": realm_name,
118123
"public_key": public_pem_str,
119-
"token-service": f"{server_url}/realms/{realm_name}/protocol/openid-connect/token",
120-
"account-service": f"{server_url}/realms/{realm_name}/account",
124+
"token-service": f"{openid_url}/token",
125+
"account-service": f"{realm_url}/account",
121126
},
122127
content_type="application/json",
123128
)
@@ -149,7 +154,9 @@ def mock_keycloak_token_refresh(user, server_app_settings, rsa_keys, respx_mock)
149154
)
150155
new_refresh_token = "mock_new_refresh_token"
151156

152-
respx_mock.post(f"{server_url}/realms/{realm_name}/protocol/openid-connect/token").respond(
157+
realm_url = f"{server_url}/realms/{realm_name}"
158+
openid_url = f"{realm_url}/protocol/openid-connect"
159+
respx_mock.post(f"{openid_url}/token").respond(
153160
status_code=200,
154161
json={
155162
"access_token": new_access_token,
@@ -162,22 +169,28 @@ def mock_keycloak_token_refresh(user, server_app_settings, rsa_keys, respx_mock)
162169

163170

164171
@pytest.fixture
165-
def mock_keycloak_logout(user, server_app_settings, rsa_keys, respx_mock):
172+
def mock_keycloak_logout(server_app_settings, respx_mock):
166173
keycloak_settings = KeycloakSettings.model_validate(server_app_settings.auth.keycloak)
167174
server_url = keycloak_settings.server_url
168175
realm_name = keycloak_settings.realm_name
169-
respx_mock.post(f"{server_url}/realms/{realm_name}/protocol/openid-connect/logout").respond(
176+
177+
realm_url = f"{server_url}/realms/{realm_name}"
178+
openid_url = f"{realm_url}/protocol/openid-connect"
179+
respx_mock.post(f"{openid_url}/logout").respond(
170180
status_code=204,
171181
content_type="application/json",
172182
)
173183

174184

175185
@pytest.fixture
176-
def mock_keycloak_logout_bad_request(user, server_app_settings, rsa_keys, respx_mock):
186+
def mock_keycloak_logout_bad_request(server_app_settings, respx_mock):
177187
keycloak_settings = KeycloakSettings.model_validate(server_app_settings.auth.keycloak)
178188
server_url = keycloak_settings.server_url
179189
realm_name = keycloak_settings.realm_name
180-
respx_mock.post(f"{server_url}/realms/{realm_name}/protocol/openid-connect/logout").respond(
190+
191+
realm_url = f"{server_url}/realms/{realm_name}"
192+
openid_url = f"{realm_url}/protocol/openid-connect"
193+
respx_mock.post(f"{openid_url}/logout").respond(
181194
status_code=400,
182195
content_type="application/json",
183196
)

0 commit comments

Comments
 (0)