ariadne/tests/test_keycloak_profile.py

60 lines
1.8 KiB
Python
Raw Normal View History

from __future__ import annotations
from ariadne.services import keycloak_profile
def test_profile_sync_removes_required_actions(monkeypatch) -> None:
calls = []
def fake_update(user_id: str, payload: dict[str, str]) -> None:
calls.append((user_id, payload))
user = {
"id": "user-1",
"username": "alice",
"enabled": True,
"email": "alice@example.com",
"emailVerified": True,
"firstName": "",
"lastName": "Atlas",
"requiredActions": ["UPDATE_PROFILE", "VERIFY_EMAIL"],
}
monkeypatch.setattr(keycloak_profile.keycloak_admin, "ready", lambda: True)
monkeypatch.setattr(keycloak_profile.keycloak_admin, "iter_users", lambda page_size=200, brief=False: [user])
monkeypatch.setattr(keycloak_profile.keycloak_admin, "update_user_safe", fake_update)
summary = keycloak_profile.run_profile_sync()
assert summary.updated == 1
assert calls
assert calls[0][0] == "user-1"
assert calls[0][1]["requiredActions"] == []
def test_profile_sync_skips_incomplete(monkeypatch) -> None:
calls = []
def fake_update(user_id: str, payload: dict[str, str]) -> None:
calls.append((user_id, payload))
user = {
"id": "user-2",
"username": "bob",
"enabled": True,
"email": "bob@example.com",
"emailVerified": True,
"firstName": "Bob",
"lastName": "",
"requiredActions": ["UPDATE_PROFILE"],
}
monkeypatch.setattr(keycloak_profile.keycloak_admin, "ready", lambda: True)
monkeypatch.setattr(keycloak_profile.keycloak_admin, "iter_users", lambda page_size=200, brief=False: [user])
monkeypatch.setattr(keycloak_profile.keycloak_admin, "update_user_safe", fake_update)
summary = keycloak_profile.run_profile_sync()
assert summary.updated == 0
assert not calls