42 lines
1.3 KiB
Python
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"]
|