fix(#5130): harden cron snapshot repair follow-up

This commit is contained in:
Rod Boev committed 2026-06-28 15:56:50 -04:00
1 parent 7e806d7194
commit fd139132b6
2 files changed
+103 -7

No files matched your search

@@ -272,6 +272,101 @@ def test_cron_create_with_explicit_provider_and_model_skips_snapshot_override(mo
]
def test_cron_create_with_explicit_provider_recomputes_only_model_snapshot(monkeypatch):
import api.profiles as profiles
import api.routes as routes
calls = []
profile_events = []
created = {
"id": "job5130",
"name": "Pinned provider job",
"prompt": "ping",
"schedule": {"kind": "interval", "minutes": 60},
"provider": "openai-codex",
"provider_snapshot": None,
"model_snapshot": "gpt-5.4",
}
cron_jobs = types.ModuleType("cron.jobs")
cron_jobs.create_job = lambda **kwargs: calls.append(("create", kwargs)) or dict(created)
cron_jobs.update_job = lambda job_id, updates: calls.append(("update", job_id, updates)) or {
**created,
**updates,
}
def compute_snapshots(*, provider, model, base_url, no_agent):
calls.append(
(
"compute",
{
"provider": provider,
"model": model,
"base_url": base_url,
"no_agent": no_agent,
},
)
)
return None, "gpt-5.5"
@contextmanager
def fake_profile_env(profile, purpose, logger_override=None):
profile_events.append(("enter", profile, purpose, logger_override is routes.logger))
yield
profile_events.append(("exit", profile, purpose))
cron_jobs._compute_provider_model_snapshots = compute_snapshots
monkeypatch.setattr(profiles, "list_profiles_api", lambda: [{"name": "research"}])
monkeypatch.setattr(profiles, "profile_env_for_background_worker", fake_profile_env)
_install_fake_cron_modules(monkeypatch, cron_jobs)
handler = _JSONHandler()
routes._handle_cron_create(
handler,
{
"name": "Pinned provider job",
"prompt": "ping",
"schedule": "every 60m",
"deliver": "local",
"profile": "research",
"provider": "openai-codex",
},
)
body = _payload(handler)
assert handler.status == 200
assert body["ok"] is True
assert calls == [
(
"create",
{
"prompt": "ping",
"schedule": "every 60m",
"name": "Pinned provider job",
"deliver": "local",
"skills": [],
"model": None,
"provider": "openai-codex",
},
),
(
"compute",
{
"provider": "openai-codex",
"model": None,
"base_url": None,
"no_agent": False,
},
),
("update", "job5130", {"profile": "research", "model_snapshot": "gpt-5.5"}),
]
assert profile_events == [
("enter", "research", "cron create snapshot", True),
("exit", "research", "cron create snapshot"),
]
def test_selected_profile_snapshot_helper_never_repoints_cron_store_globals(monkeypatch):
import api.profiles as profiles
from api.routes import _selected_profile_snapshot_updates