mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-04 16:38:49 +00:00
fix test: use async/await for run_job, add sentinel coverage
Made-with: Cursor
This commit is contained in:
parent
1a51f907aa
commit
9bccfa63d2
@ -422,7 +422,8 @@ def test_update_job_validates_schedule(tmp_path) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_update_job_preserves_run_history(tmp_path) -> None:
|
@pytest.mark.asyncio
|
||||||
|
async def test_update_job_preserves_run_history(tmp_path) -> None:
|
||||||
import asyncio
|
import asyncio
|
||||||
store_path = tmp_path / "cron" / "jobs.json"
|
store_path = tmp_path / "cron" / "jobs.json"
|
||||||
service = CronService(store_path, on_job=lambda _: asyncio.sleep(0))
|
service = CronService(store_path, on_job=lambda _: asyncio.sleep(0))
|
||||||
@ -431,7 +432,7 @@ def test_update_job_preserves_run_history(tmp_path) -> None:
|
|||||||
schedule=CronSchedule(kind="every", every_ms=60_000),
|
schedule=CronSchedule(kind="every", every_ms=60_000),
|
||||||
message="hello",
|
message="hello",
|
||||||
)
|
)
|
||||||
asyncio.get_event_loop().run_until_complete(service.run_job(job.id))
|
await service.run_job(job.id)
|
||||||
|
|
||||||
result = service.update_job(job.id, name="renamed")
|
result = service.update_job(job.id, name="renamed")
|
||||||
assert isinstance(result, CronJob)
|
assert isinstance(result, CronJob)
|
||||||
@ -454,3 +455,27 @@ def test_update_job_offline_writes_action(tmp_path) -> None:
|
|||||||
last = json.loads(lines[-1])
|
last = json.loads(lines[-1])
|
||||||
assert last["action"] == "update"
|
assert last["action"] == "update"
|
||||||
assert last["params"]["name"] == "updated-offline"
|
assert last["params"]["name"] == "updated-offline"
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_job_sentinel_channel_and_to(tmp_path) -> None:
|
||||||
|
"""Passing None clears channel/to; omitting leaves them unchanged."""
|
||||||
|
service = CronService(tmp_path / "cron" / "jobs.json")
|
||||||
|
job = service.add_job(
|
||||||
|
name="sentinel",
|
||||||
|
schedule=CronSchedule(kind="every", every_ms=60_000),
|
||||||
|
message="hello",
|
||||||
|
channel="telegram",
|
||||||
|
to="user123",
|
||||||
|
)
|
||||||
|
assert job.payload.channel == "telegram"
|
||||||
|
assert job.payload.to == "user123"
|
||||||
|
|
||||||
|
result = service.update_job(job.id, name="renamed")
|
||||||
|
assert isinstance(result, CronJob)
|
||||||
|
assert result.payload.channel == "telegram"
|
||||||
|
assert result.payload.to == "user123"
|
||||||
|
|
||||||
|
result = service.update_job(job.id, channel=None, to=None)
|
||||||
|
assert isinstance(result, CronJob)
|
||||||
|
assert result.payload.channel is None
|
||||||
|
assert result.payload.to is None
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user