mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-23 12:37:00 +01:00
* Testing #1998 - validated response is JSON-parseable * disable network tests in pytest * fixing a type-handling thing in a test
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
import json
|
|
import logging
|
|
|
|
from kanidm import KanidmClient
|
|
|
|
import pytest
|
|
|
|
@pytest.fixture(scope="function")
|
|
async def client() -> KanidmClient:
|
|
"""sets up a client with a basic thing"""
|
|
return KanidmClient(config_file="../examples/config_localhost")
|
|
|
|
@pytest.mark.network
|
|
@pytest.mark.asyncio
|
|
async def test_idm_oauth2_rs_list(client: KanidmClient) -> None:
|
|
"""tests getting the list of oauth2 resource servers"""
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
print(f"config: {client.config}")
|
|
|
|
username = "admin"
|
|
# change this to be your admin password.
|
|
password = "Ek7A0fShLsCTXgK2xDqC9TNUgPYQdVFB6RMGKXLyNtGL5cER"
|
|
|
|
auth_resp = await client.authenticate_password(username, password, update_internal_auth_token=True)
|
|
assert auth_resp.state.success is not None
|
|
|
|
resp = await client.idm_oauth2_rs_list()
|
|
print("content:")
|
|
print(json.dumps(resp.data, indent=4))
|
|
assert resp.status_code == 200
|
|
|
|
if resp.data is not None:
|
|
for oauth_rs in resp.data:
|
|
oauth2_rs_sup_scope_map = oauth_rs.get("attrs", {}).get("oauth2_rs_sup_scope_map", {})
|
|
for mapping in oauth2_rs_sup_scope_map:
|
|
print(f"oauth2_rs_sup_scope_map: {mapping}")
|
|
user, scopes = mapping.split(":")
|
|
scopes = scopes.replace("{", "[").replace("}", "]")
|
|
scopes = json.loads(scopes)
|
|
print(f"{user=} {scopes=}")
|
|
|
|
|