Files
2026-05-16 12:05:36 -03:00

42 lines
1.3 KiB
Python

from app.config import Settings
from app.scheduler import generate_daily_summaries, generate_weekly_summaries, start_scheduler
def _settings(**llm):
return Settings.model_validate({"alerts": {"email": {"enabled": False}}, "llm": llm})
def test_disabled_digest_jobs_do_not_instantiate_llm(monkeypatch):
def fail_llm(*args, **kwargs):
raise AssertionError("LLM should not be constructed when summaries are disabled")
monkeypatch.setattr("app.scheduler.LLMClient", fail_llm)
settings = _settings(generate_daily_summary=False, generate_weekly_summary=False)
assert generate_daily_summaries(settings) == []
assert generate_weekly_summaries(settings) == []
def test_scheduler_only_registers_enabled_digest_jobs(monkeypatch):
created = []
class FakeScheduler:
running = True
def __init__(self, timezone):
self.timezone = timezone
self.jobs = []
created.append(self)
def add_job(self, func, trigger, **kwargs):
self.jobs.append(kwargs["id"])
def start(self):
pass
monkeypatch.setattr("app.scheduler.BackgroundScheduler", FakeScheduler)
scheduler = start_scheduler(_settings(generate_daily_summary=False, generate_weekly_summary=True))
assert scheduler.jobs == ["poll", "weekly"]