diff --git a/tests/worker/test_workflow.py b/tests/worker/test_workflow.py index ec6d0bf83..e069924a7 100644 --- a/tests/worker/test_workflow.py +++ b/tests/worker/test_workflow.py @@ -2029,21 +2029,23 @@ async def run(self, external_workflow_id: str) -> None: async def test_workflow_cancel_external(client: Client): - async with new_worker(client, CancelExternalWorkflow, LongSleepWorkflow) as worker: - # Start long sleep, then cancel and check that it got cancelled - long_sleep_handle = await client.start_workflow( - LongSleepWorkflow.run, + async with new_worker( + client, CancelExternalWorkflow, WaitForeverWorkflow + ) as worker: + # A timer can finish under time skipping before the external cancel is sent. + target_handle = await client.start_workflow( + WaitForeverWorkflow.run, id=f"workflow-{uuid.uuid4()}", task_queue=worker.task_queue, ) await client.execute_workflow( CancelExternalWorkflow.run, - long_sleep_handle.id, + target_handle.id, id=f"workflow-{uuid.uuid4()}", task_queue=worker.task_queue, ) with pytest.raises(WorkflowFailureError) as err: - await long_sleep_handle.result() + await target_handle.result() assert isinstance(err.value.cause, CancelledError)