kanidm/pykanidm/tests/test_radius_config.py
2023-07-24 00:09:43 -07:00

61 lines
1.6 KiB
Python

""" tests the config file things """
from pathlib import Path
import sys
import toml
import pytest
from kanidm.types import KanidmClientConfig
from kanidm.utils import load_config
EXAMPLE_CONFIG_FILE = "../examples/config"
def test_load_config_file() -> None:
"""tests that the file loads"""
if not Path(EXAMPLE_CONFIG_FILE).expanduser().resolve().exists():
print("Can't find client config file", file=sys.stderr)
pytest.skip()
config = load_config(EXAMPLE_CONFIG_FILE)
kanidm_config = KanidmClientConfig.model_validate(config)
assert kanidm_config.uri == "https://idm.example.com/"
print(f"{kanidm_config.uri=}")
print(kanidm_config)
def test_radius_groups() -> None:
"""testing loading a config file with radius groups defined"""
config_toml = """
radius_groups = [
{ spn = "hello world", "vlan" = 1234 },
]
"""
config_parsed = toml.loads(config_toml)
print(config_parsed)
kanidm_config = KanidmClientConfig.model_validate(config_parsed)
for group in kanidm_config.radius_groups:
print(group.spn)
assert group.spn == "hello world"
def test_radius_clients() -> None:
"""testing loading a config file with radius groups defined"""
config_toml = """
radius_clients = [ { name = "hello world", ipaddr = "10.0.0.5", secret = "cr4bj0oz" },
]
"""
config_parsed = toml.loads(config_toml)
print(config_parsed)
kanidm_config = KanidmClientConfig.model_validate(config_parsed)
client = kanidm_config.radius_clients[0]
print(client.name)
assert client.name == "hello world"
assert client.ipaddr == "10.0.0.5"
assert client.secret == "cr4bj0oz"