refactor: migrate legacy cron payloads to bound sessions
This commit is contained in:
@@ -186,11 +186,13 @@ async def test_session_automations_route_filters_by_webui_session(
|
||||
schedule=hourly,
|
||||
message=message,
|
||||
session_key=f"websocket:{to}",
|
||||
origin_channel="websocket",
|
||||
origin_chat_id=to,
|
||||
)
|
||||
cron.add_job(
|
||||
name="Legacy same target",
|
||||
schedule=hourly,
|
||||
message="Legacy job should not be treated as bound",
|
||||
message="Legacy job should be migrated",
|
||||
deliver=True,
|
||||
channel="websocket",
|
||||
to="abc",
|
||||
@@ -228,7 +230,7 @@ async def test_session_automations_route_filters_by_webui_session(
|
||||
|
||||
assert resp.status_code == 200
|
||||
body = resp.json()
|
||||
assert [job["name"] for job in body["jobs"]] == ["Morning check"]
|
||||
assert [job["name"] for job in body["jobs"]] == ["Morning check", "Legacy same target"]
|
||||
job = body["jobs"][0]
|
||||
assert job["schedule"]["kind"] == "every"
|
||||
assert job["schedule"]["every_ms"] == 3_600_000
|
||||
@@ -249,12 +251,16 @@ async def test_session_automations_route_ignores_unified_owner(
|
||||
schedule=hourly,
|
||||
message="Check the shared session",
|
||||
session_key=UNIFIED_SESSION_KEY,
|
||||
origin_channel="websocket",
|
||||
origin_chat_id="abc",
|
||||
)
|
||||
cron.add_job(
|
||||
name="Visible chat job",
|
||||
schedule=hourly,
|
||||
message="Show for this chat",
|
||||
session_key="websocket:abc",
|
||||
origin_channel="websocket",
|
||||
origin_chat_id="abc",
|
||||
)
|
||||
channel = _ch(
|
||||
bus,
|
||||
@@ -728,6 +734,8 @@ async def test_session_delete_blocks_when_bound_automation_exists(
|
||||
schedule=CronSchedule(kind="every", every_ms=86_400_000),
|
||||
message="Check the repo",
|
||||
session_key="websocket:doomed",
|
||||
origin_channel="websocket",
|
||||
origin_chat_id="doomed",
|
||||
)
|
||||
channel = _ch(bus, session_manager=sm, cron_service=cron, port=29915)
|
||||
server_task = asyncio.create_task(channel.start())
|
||||
@@ -767,6 +775,8 @@ async def test_session_delete_can_cascade_bound_automations(
|
||||
schedule=CronSchedule(kind="every", every_ms=86_400_000),
|
||||
message="Check the repo",
|
||||
session_key="websocket:doomed",
|
||||
origin_channel="websocket",
|
||||
origin_chat_id="doomed",
|
||||
)
|
||||
cron.add_job(
|
||||
name="Legacy same target",
|
||||
@@ -793,9 +803,7 @@ async def test_session_delete_can_cascade_bound_automations(
|
||||
assert resp.json()["deleted"] is True
|
||||
assert not path.exists()
|
||||
assert cron.list_bound_cron_jobs_for_session("websocket:doomed") == []
|
||||
assert [job.name for job in cron.list_jobs(include_disabled=True)] == [
|
||||
"Legacy same target"
|
||||
]
|
||||
assert cron.list_jobs(include_disabled=True) == []
|
||||
finally:
|
||||
await channel.stop()
|
||||
await server_task
|
||||
@@ -813,6 +821,8 @@ async def test_session_delete_blocks_origin_automation_when_unified_enabled(
|
||||
schedule=CronSchedule(kind="every", every_ms=86_400_000),
|
||||
message="Check this chat",
|
||||
session_key="websocket:doomed",
|
||||
origin_channel="websocket",
|
||||
origin_chat_id="doomed",
|
||||
)
|
||||
channel = _ch(
|
||||
bus,
|
||||
|
||||
Reference in New Issue
Block a user