59 lines
2.3 KiB
Python
59 lines
2.3 KiB
Python
from tests.unit.services.keycloak_admin_helpers import *
|
|
|
|
|
|
def test_create_user_parses_location(monkeypatch) -> None:
|
|
dummy_settings = types.SimpleNamespace(
|
|
keycloak_admin_url="http://kc",
|
|
keycloak_admin_realm="atlas",
|
|
keycloak_admin_client_id="client",
|
|
keycloak_admin_client_secret="secret",
|
|
keycloak_realm="atlas",
|
|
)
|
|
monkeypatch.setattr("ariadne.services.keycloak_admin.settings", dummy_settings)
|
|
client = KeycloakAdminClient()
|
|
client._token = "token"
|
|
client._expires_at = 9999999999
|
|
|
|
dummy = DummyClient([DummyResponse({}, headers={"Location": "http://kc/admin/realms/atlas/users/abc"})])
|
|
monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy)
|
|
|
|
assert client.create_user({"username": "alice"}) == "abc"
|
|
|
|
def test_create_user_missing_location(monkeypatch) -> None:
|
|
dummy_settings = types.SimpleNamespace(
|
|
keycloak_admin_url="http://kc",
|
|
keycloak_admin_realm="atlas",
|
|
keycloak_admin_client_id="client",
|
|
keycloak_admin_client_secret="secret",
|
|
keycloak_realm="atlas",
|
|
)
|
|
monkeypatch.setattr("ariadne.services.keycloak_admin.settings", dummy_settings)
|
|
client = KeycloakAdminClient()
|
|
client._token = "token"
|
|
client._expires_at = 9999999999
|
|
|
|
dummy = DummyClient([DummyResponse({}, headers={})])
|
|
monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy)
|
|
|
|
with pytest.raises(RuntimeError):
|
|
client.create_user({"username": "alice"})
|
|
|
|
def test_reset_password_raises_on_error(monkeypatch) -> None:
|
|
dummy_settings = types.SimpleNamespace(
|
|
keycloak_admin_url="http://kc",
|
|
keycloak_admin_realm="atlas",
|
|
keycloak_admin_client_id="client",
|
|
keycloak_admin_client_secret="secret",
|
|
keycloak_realm="atlas",
|
|
)
|
|
monkeypatch.setattr("ariadne.services.keycloak_admin.settings", dummy_settings)
|
|
client = KeycloakAdminClient()
|
|
client._token = "token"
|
|
client._expires_at = 9999999999
|
|
|
|
dummy = DummyClient([DummyResponse({}, status_code=400)])
|
|
monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy)
|
|
|
|
with pytest.raises(httpx.HTTPStatusError):
|
|
client.reset_password("user", "pw", temporary=True)
|