"""Default prompts: breaking news, ignore futures/market tape.""" from summarizer import MAP_PROMPT_DEFAULT, RECAP_PROMPT_DEFAULT, SUMMARY_PROMPT_DEFAULT def _assert_breaking_not_futures(prompt: str) -> None: p = prompt.lower() assert "breaking" in p assert "futures" in p assert "ignore" in p or "do not" in p or "not" in p assert "es=f" not in p assert "yfinance" not in p def test_map_prompt_focuses_on_breaking_news_not_futures(): _assert_breaking_not_futures(MAP_PROMPT_DEFAULT) def test_summary_prompt_focuses_on_breaking_news_not_futures(): _assert_breaking_not_futures(SUMMARY_PROMPT_DEFAULT) p = SUMMARY_PROMPT_DEFAULT.lower() assert "commodity" in p or "market" in p def test_summary_prompt_covers_critical_then_incidents(): p = SUMMARY_PROMPT_DEFAULT.lower() assert "critical" in p assert "crime" in p assert "incident" in p assert "complete" in p or "truncat" in p or "unfinished" in p or "mid-sentence" in p def test_summary_prompt_does_not_bail_out_with_canned_empty_brief(): p = SUMMARY_PROMPT_DEFAULT assert "AND STOP" not in p assert "REPEAT 3 TIMES" not in p assert "No qualifying" not in p assert "no-qualifying" not in p.lower() low = p.lower() assert "always" in low assert "recap" in low or "summar" in low def test_recap_prompt_does_not_bail_out_with_canned_empty_brief(): p = RECAP_PROMPT_DEFAULT assert "AND STOP" not in p assert "No qualifying" not in p assert "no-qualifying" not in p.lower() low = p.lower() assert "always" in low assert "daily" in low assert "24" in low p = RECAP_PROMPT_DEFAULT.lower() _assert_breaking_not_futures(RECAP_PROMPT_DEFAULT) assert "daily" in p assert "24" in p assert "summary_en" in p assert "ticker" in p assert "map_items" in p