Add schedule smoke test routine

This commit is contained in:
2026-06-06 15:32:57 +02:00
parent e926636617
commit 418eb4ffda
8 changed files with 472 additions and 3 deletions

View File

@@ -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)