95 lines
3.8 KiB
Python
95 lines
3.8 KiB
Python
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"
|