"""Regression: every prompt file loads, render() substitutes placeholders.""" from pathlib import Path import pytest from api.prompts import PROMPTS_DIR, load, render PROMPT_NAMES = sorted( p.stem for p in PROMPTS_DIR.iterdir() if p.suffix == ".txt" ) @pytest.mark.parametrize("name", PROMPT_NAMES) def test_prompt_loads(name): text = load(name) assert text # non-empty def test_render_substitutes(): out = render("synthesize.user", question="how many?", findings_block="x: 1") assert "how many?" in out assert "x: 1" in out assert "{question}" not in out and "{findings_block}" not in out def test_render_unknown_placeholder_raises(): # str.format raises KeyError on missing keys with pytest.raises(KeyError): render("synthesize.user", question="q") # missing findings_block