mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-23 20:47:01 +01:00
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
import json
|
|
import logging
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from kanidm import KanidmClient
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
async def client() -> KanidmClient:
|
|
"""sets up a client with a basic thing"""
|
|
try:
|
|
client = KanidmClient(
|
|
config_file=Path(__file__).parent.parent.parent / "examples/config_localhost",
|
|
)
|
|
except FileNotFoundError as error:
|
|
raise pytest.skip(f"File not found: {error}")
|
|
return client
|
|
|
|
|
|
@pytest.mark.network
|
|
@pytest.mark.asyncio
|
|
async def test_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 = "idm_admin"
|
|
# change this to be the password.
|
|
password = os.getenv("KANIDM_PASSWORD")
|
|
if password is None:
|
|
print("No KANIDM_PASSWORD env var set for testing")
|
|
raise pytest.skip("No KANIDM_PASSWORD env var set for testing")
|
|
|
|
auth_resp = await client.authenticate_password(username, password, update_internal_auth_token=True)
|
|
if auth_resp.state is None:
|
|
raise ValueError("Failed to authenticate, check the admin password is set right")
|
|
if auth_resp.state.success is None:
|
|
raise ValueError("Failed to authenticate, check the admin password is set right")
|
|
|
|
resource_servers = await client.oauth2_rs_list()
|
|
print("content:")
|
|
|
|
if resource_servers:
|
|
for oauth_rs in resource_servers:
|
|
print(json.dumps(oauth_rs.model_dump(), indent=4, default=str))
|
|
for mapping in oauth_rs.oauth2_rs_sup_scope_map:
|
|
print(f"oauth2_rs_sup_scope_map: {mapping}")
|