from tests.unit.services.keycloak_admin_helpers import * def test_list_group_names_filters(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([{"name": "demo"}, {"name": "admin"}, {"name": "test"}])]) monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy) assert client.list_group_names(exclude={"admin"}) == ["demo", "test"] def test_get_group_id_skips_non_dict(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(["bad"])]) monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy) assert client.get_group_id("demo") is None def test_get_group_id_cached(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([{"name": "demo", "id": "gid"}])]) monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy) assert client.get_group_id("demo") == "gid" monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: (_ for _ in ()).throw(RuntimeError("no call"))) assert client.get_group_id("demo") == "gid" def test_get_group_id_invalid_payload(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({"bad": "payload"})]) monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy) assert client.get_group_id("demo") is None def test_add_user_to_group(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({})]) monkeypatch.setattr("ariadne.services.keycloak_admin.httpx.Client", lambda *args, **kwargs: dummy) client.add_user_to_group("user", "group") assert dummy.calls[0][0] == "put"