sindri / master / tests / test_config.py
import textwrap
import pytest
from pathlib import Path
from sindri.config import SindriConfig, AgentProfile, QueueConfig
def test_loads_minimal_config(tmp_path):
cfg_text = textwrap.dedent("""
data_dir: /tmp/sindri-test
agents:
fast:
harness: claude
model: claude-haiku-4-5
permission: default
queues:
triage:
agent: fast
max_parallel: 2
on:
issue.opened: triage
""")
p = tmp_path / "sindri.yaml"
p.write_text(cfg_text)
cfg = SindriConfig.from_yaml(p)
assert cfg.data_dir == Path("/tmp/sindri-test")
assert "fast" in cfg.agents
assert cfg.agents["fast"].model == "claude-haiku-4-5"
assert cfg.queues["triage"].agent == "fast"
assert cfg.on["issue.opened"] == "triage"
def test_unknown_queue_in_routing_raises(tmp_path):
cfg_text = textwrap.dedent("""
data_dir: /tmp/x
agents:
fast:
harness: claude
model: claude-haiku-4-5
permission: default
queues:
triage:
agent: fast
max_parallel: 2
on:
issue.opened: nonexistent_queue
""")
p = tmp_path / "sindri.yaml"
p.write_text(cfg_text)
with pytest.raises(ValueError, match="nonexistent_queue"):
SindriConfig.from_yaml(p)