2026-01-20 18:11:02 -03:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from ariadne import settings as settings_module
|
2026-03-31 14:07:02 -03:00
|
|
|
from ariadne.settings import Settings
|
2026-01-20 18:11:02 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_env_int_invalid(monkeypatch) -> None:
|
|
|
|
|
monkeypatch.setenv("ARIADNE_INT_TEST", "bad")
|
|
|
|
|
assert settings_module._env_int("ARIADNE_INT_TEST", 5) == 5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_env_float_invalid(monkeypatch) -> None:
|
|
|
|
|
monkeypatch.setenv("ARIADNE_FLOAT_TEST", "bad")
|
|
|
|
|
assert settings_module._env_float("ARIADNE_FLOAT_TEST", 1.5) == 1.5
|
2026-03-31 14:07:02 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_from_env_includes_metis_settings(monkeypatch) -> None:
|
2026-03-31 14:18:31 -03:00
|
|
|
monkeypatch.setenv("METIS_BASE_URL", "http://metis.maintenance.svc.cluster.local/")
|
|
|
|
|
monkeypatch.setenv("METIS_WATCH_URL", "http://metis.example/internal/sentinel/watch")
|
|
|
|
|
monkeypatch.setenv("METIS_TIMEOUT_SEC", "9.5")
|
2026-03-31 14:07:02 -03:00
|
|
|
monkeypatch.setenv("ARIADNE_SCHEDULE_METIS_SENTINEL_WATCH", "*/7 * * * *")
|
|
|
|
|
|
|
|
|
|
cfg = Settings.from_env()
|
2026-03-31 14:18:31 -03:00
|
|
|
assert cfg.metis_base_url == "http://metis.maintenance.svc.cluster.local"
|
|
|
|
|
assert cfg.metis_watch_url == "http://metis.example/internal/sentinel/watch"
|
|
|
|
|
assert cfg.metis_timeout_sec == 9.5
|
2026-03-31 14:07:02 -03:00
|
|
|
assert cfg.metis_sentinel_watch_cron == "*/7 * * * *"
|
2026-04-13 00:25:15 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_from_env_includes_jenkins_weather_settings(monkeypatch) -> None:
|
|
|
|
|
monkeypatch.setenv("JENKINS_BASE_URL", "https://ci.bstein.dev/")
|
|
|
|
|
monkeypatch.setenv("JENKINS_API_USER", "ariadne")
|
|
|
|
|
monkeypatch.setenv("JENKINS_API_TOKEN", "token")
|
|
|
|
|
monkeypatch.setenv("JENKINS_API_TIMEOUT_SEC", "8.5")
|
|
|
|
|
monkeypatch.setenv("ARIADNE_SCHEDULE_JENKINS_BUILD_WEATHER", "*/9 * * * *")
|
2026-05-19 23:16:47 -03:00
|
|
|
monkeypatch.setenv("ARIADNE_SCHEDULE_TESTING_TRIAGE", "*/11 * * * *")
|
2026-05-20 03:13:53 -03:00
|
|
|
monkeypatch.setenv("ARIADNE_TESTING_TRIAGE_MODEL_URL", "http://openclaw-ollama:11434/")
|
|
|
|
|
monkeypatch.setenv("ARIADNE_TESTING_TRIAGE_MODEL", "local-model")
|
|
|
|
|
monkeypatch.setenv("ARIADNE_TESTING_TRIAGE_MODEL_TIMEOUT_SEC", "33.5")
|
2026-04-13 00:25:15 -03:00
|
|
|
|
|
|
|
|
cfg = Settings.from_env()
|
|
|
|
|
assert cfg.jenkins_base_url == "https://ci.bstein.dev"
|
|
|
|
|
assert cfg.jenkins_api_user == "ariadne"
|
|
|
|
|
assert cfg.jenkins_api_token == "token"
|
|
|
|
|
assert cfg.jenkins_api_timeout_sec == 8.5
|
|
|
|
|
assert cfg.jenkins_build_weather_cron == "*/9 * * * *"
|
2026-05-19 23:16:47 -03:00
|
|
|
assert cfg.testing_triage_cron == "*/11 * * * *"
|
2026-05-20 03:13:53 -03:00
|
|
|
assert cfg.testing_triage_model_url == "http://openclaw-ollama:11434"
|
|
|
|
|
assert cfg.testing_triage_model == "local-model"
|
|
|
|
|
assert cfg.testing_triage_model_timeout_sec == 33.5
|
2026-05-21 02:29:20 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_from_env_includes_game_stream_settings(monkeypatch) -> None:
|
|
|
|
|
monkeypatch.setenv("GAME_MODE_NODE_NAME", "titan-24")
|
|
|
|
|
monkeypatch.setenv(
|
|
|
|
|
"GAME_MODE_DISPLACE_WORKLOADS",
|
|
|
|
|
'[{"kind":"StatefulSet","namespace":"hermes","name":"hermes-llm","restoreReplicas":2}]',
|
|
|
|
|
)
|
|
|
|
|
monkeypatch.setenv("GAME_MODE_HOOK_TOKEN", "hook")
|
|
|
|
|
monkeypatch.setenv("WOLF_OIDC_CLIENT_ID", "wolf")
|
|
|
|
|
monkeypatch.setenv("WOLF_OIDC_BASE_URL", "https://wolf.bstein.dev/")
|
|
|
|
|
monkeypatch.setenv("WOLF_OIDC_VAULT_PATH", "game-stream/wolf-oidc")
|
|
|
|
|
monkeypatch.setenv("ARIADNE_SCHEDULE_WOLF_OIDC", "*/13 * * * *")
|
|
|
|
|
|
|
|
|
|
cfg = Settings.from_env()
|
|
|
|
|
|
|
|
|
|
assert cfg.game_mode_node_name == "titan-24"
|
|
|
|
|
assert cfg.game_mode_displace_workloads[0]["namespace"] == "hermes"
|
|
|
|
|
assert cfg.game_mode_hook_token == "hook"
|
|
|
|
|
assert cfg.wolf_oidc_client_id == "wolf"
|
|
|
|
|
assert cfg.wolf_oidc_base_url == "https://wolf.bstein.dev"
|
|
|
|
|
assert cfg.wolf_oidc_vault_path == "game-stream/wolf-oidc"
|
|
|
|
|
assert cfg.wolf_oidc_cron == "*/13 * * * *"
|