generated from coulomb/repo-seed
Add schedule smoke test routine
This commit is contained in:
@@ -13,6 +13,7 @@ from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import uuid
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
import pytest
|
||||
from temporalio.client import ScheduleOverlapPolicy
|
||||
@@ -21,8 +22,11 @@ from temporalio.testing import WorkflowEnvironment
|
||||
from activity_core.models import ActivityDefinition, CronTriggerConfig
|
||||
from activity_core.schedule_manager import (
|
||||
delete_schedule,
|
||||
delete_smoke_test_schedule,
|
||||
list_schedules,
|
||||
schedule_id,
|
||||
schedule_smoke_test,
|
||||
smoke_schedule_id,
|
||||
upsert_schedule,
|
||||
)
|
||||
|
||||
@@ -180,3 +184,30 @@ async def test_misfire_policy_compress_sets_overlap_buffer_one(env: WorkflowEnvi
|
||||
assert desc.schedule.policy.overlap == ScheduleOverlapPolicy.BUFFER_ONE
|
||||
|
||||
await delete_schedule(env.client, defn.id)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_schedule_smoke_test_creates_one_shot_schedule(
|
||||
env: WorkflowEnvironment,
|
||||
) -> None:
|
||||
defn = _make_defn()
|
||||
fire_base = datetime(2026, 6, 6, 12, 0, tzinfo=timezone.utc)
|
||||
|
||||
sid, workflow_id, fire_at = await schedule_smoke_test(
|
||||
env.client,
|
||||
defn,
|
||||
delay=timedelta(minutes=1),
|
||||
now=fire_base,
|
||||
)
|
||||
|
||||
assert sid == smoke_schedule_id(defn.id)
|
||||
assert workflow_id == f"activity-{defn.id}:smoke-20260606T120100Z"
|
||||
assert fire_at == datetime(2026, 6, 6, 12, 1, tzinfo=timezone.utc)
|
||||
|
||||
handle = env.client.get_schedule_handle(sid)
|
||||
desc = await handle.describe()
|
||||
assert desc.schedule.state.limited_actions is True
|
||||
assert desc.schedule.state.remaining_actions == 1
|
||||
assert desc.schedule.spec.time_zone_name == "UTC"
|
||||
|
||||
await delete_smoke_test_schedule(env.client, defn.id)
|
||||
|
||||
Reference in New Issue
Block a user