import json from pathlib import Path from midnight_static.pipeline import run_fixture_pipeline def test_fixture_pipeline_writes_script_and_audio(tmp_path: Path): result = run_fixture_pipeline("a lighthouse that broadcasts dreams", tmp_path) script_path = Path(result["script"]) audio_path = Path(result["audio"]) assert result["mode"] == "placeholder" assert result["writer"] == "fixture" assert script_path.exists() assert audio_path.exists() assert audio_path.stat().st_size > 10_000 assert '"title"' in script_path.read_text(encoding="utf-8") def test_fixture_pipeline_accepts_genre(tmp_path: Path): result = run_fixture_pipeline( "a honeymoon hotel room that keeps checking in new guests", tmp_path, genre="romance", ) payload = json.loads(Path(result["script"]).read_text(encoding="utf-8")) assert payload["genre"] == "romance" assert payload["music"]["genre"] == "romance" def test_fixture_pipeline_rejects_unknown_mode(tmp_path: Path): try: run_fixture_pipeline("static", tmp_path, mode="missing") except ValueError as exc: assert "unknown pipeline mode" in str(exc) else: raise AssertionError("expected unknown mode to fail")