From 423aab09ddc57e75546aeaf2ef189cdffb04efc1 Mon Sep 17 00:00:00 2001 From: Xubin Ren Date: Tue, 7 Apr 2026 14:47:34 +0000 Subject: [PATCH] test(cron): add regression test for running service picking up external adds Co-authored-by: chengyongru Made-with: Cursor --- tests/cron/test_cron_service.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/cron/test_cron_service.py b/tests/cron/test_cron_service.py index 4c19580f8..8606e4f58 100644 --- a/tests/cron/test_cron_service.py +++ b/tests/cron/test_cron_service.py @@ -176,3 +176,35 @@ def test_reload_jobs(tmp_path): message="hello2", ) assert len(service.list_jobs()) == 2 + + +@pytest.mark.asyncio +async def test_running_service_picks_up_external_add(tmp_path): + """A running service should detect and execute a job added by another instance.""" + store_path = tmp_path / "cron" / "jobs.json" + called: list[str] = [] + + async def on_job(job): + called.append(job.name) + + service = CronService(store_path, on_job=on_job) + service.add_job( + name="heartbeat", + schedule=CronSchedule(kind="every", every_ms=150), + message="tick", + ) + await service.start() + try: + await asyncio.sleep(0.05) + + external = CronService(store_path) + external.add_job( + name="external", + schedule=CronSchedule(kind="every", every_ms=150), + message="ping", + ) + + await asyncio.sleep(0.6) + assert "external" in called + finally: + service.stop()