osint-dashboard/news/summerizer/tests/test_summarizer.py

46 lines
1.4 KiB
Python
Raw Normal View History

"""Summarizer window, recap flag, and no futures injection into prompts."""
from summarizer import (
build_map_prompt,
build_master_prompt,
effective_window_minutes,
is_recap_run,
)
def test_interval_window_defaults_to_15_minutes(monkeypatch):
monkeypatch.delenv("NEWS_RECAP", raising=False)
monkeypatch.delenv("SUMMARY_WINDOW_HOURS", raising=False)
monkeypatch.setenv("SUMMARY_WINDOW_MINUTES", "15")
assert is_recap_run() is False
assert effective_window_minutes() == 15
def test_recap_window_is_24_hours(monkeypatch):
monkeypatch.setenv("NEWS_RECAP", "1")
monkeypatch.setenv("SUMMARY_WINDOW_MINUTES", "15")
assert is_recap_run() is True
assert effective_window_minutes() == 24 * 60
def test_build_map_prompt_does_not_inject_futures():
prompt = build_map_prompt(
[{"title": "Blast", "domain": "ex.com", "url": "https://ex.com/1", "content": "x" * 120}]
)
assert "FUTURES PRICES" not in prompt
assert "ES=F" not in prompt
assert "Blast" in prompt
def test_build_master_prompt_interval_uses_summary_not_recap():
prompt = build_master_prompt("partial facts", recap=False)
assert "partial facts" in prompt
assert "daily recap" not in prompt.lower()
def test_build_master_prompt_recap_uses_daily_template():
prompt = build_master_prompt("partial facts", recap=True)
assert "partial facts" in prompt
assert "daily recap" in prompt.lower()
assert "24" in prompt