⚒ sindri

sindri / master / tests / test_config.py

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)