"""Shared test fixtures for flakestorm tests.""" import sys import tempfile from pathlib import Path import pytest # Add src to path for imports sys.path.insert(0, str(Path(__file__).parent.parent / "src")) @pytest.fixture def temp_dir(): """Create a temporary directory.""" with tempfile.TemporaryDirectory() as tmpdir: yield Path(tmpdir) @pytest.fixture def sample_config_yaml(): """Sample valid config YAML.""" return """ agent: endpoint: "http://localhost:8000/chat" type: http timeout: 30 golden_prompts: - "Test prompt 1" - "Test prompt 2" mutations: count: 5 types: - paraphrase - noise invariants: - type: latency max_ms: 5000 """ @pytest.fixture def config_file(temp_dir, sample_config_yaml): """Create a config file in temp directory.""" config_path = temp_dir / "flakestorm.yaml" config_path.write_text(sample_config_yaml) return config_path @pytest.fixture def minimal_config_yaml(): """Minimal valid config YAML.""" return """ agent: endpoint: "http://localhost:8000/chat" type: http golden_prompts: - "Test prompt" mutations: count: 2 types: - paraphrase invariants: [] """ @pytest.fixture def minimal_config_file(temp_dir, minimal_config_yaml): """Create a minimal config file.""" config_path = temp_dir / "flakestorm.yaml" config_path.write_text(minimal_config_yaml) return config_path