|
7 | 7 | from typing import Any, Awaitable, Callable, Optional, Sequence |
8 | 8 | from urllib.request import urlopen |
9 | 9 |
|
| 10 | +import nexusrpc |
| 11 | + |
10 | 12 | import temporalio.api.enums.v1 |
11 | | -import temporalio.client |
| 13 | +import temporalio.nexus |
12 | 14 | import temporalio.worker._worker |
13 | 15 | from temporalio import activity, workflow |
14 | 16 | from temporalio.api.workflowservice.v1 import ( |
@@ -80,6 +82,21 @@ async def run(self) -> None: |
80 | 82 | raise NotImplementedError |
81 | 83 |
|
82 | 84 |
|
| 85 | +@nexusrpc.handler.service_handler |
| 86 | +class NeverRunService: |
| 87 | + @nexusrpc.handler.sync_operation |
| 88 | + async def never_run_operation( |
| 89 | + self, _ctx: nexusrpc.handler.StartOperationContext, _input: None |
| 90 | + ) -> None: |
| 91 | + raise NotImplementedError |
| 92 | + |
| 93 | + @temporalio.nexus.workflow_run_operation |
| 94 | + async def never_run_workflow_run_operation( |
| 95 | + self, _ctx: temporalio.nexus.WorkflowRunOperationContext, _input: None |
| 96 | + ) -> temporalio.nexus.WorkflowHandle[None]: |
| 97 | + raise NotImplementedError |
| 98 | + |
| 99 | + |
83 | 100 | async def test_worker_fatal_error_run(client: Client): |
84 | 101 | # Run worker with injected workflow poll error |
85 | 102 | worker = create_worker(client) |
@@ -1143,6 +1160,7 @@ def create_worker( |
1143 | 1160 | task_queue=f"task-queue-{uuid.uuid4()}", |
1144 | 1161 | activities=[never_run_activity], |
1145 | 1162 | workflows=[NeverRunWorkflow], |
| 1163 | + nexus_service_handlers=[NeverRunService()], |
1146 | 1164 | on_fatal_error=on_fatal_error, |
1147 | 1165 | ) |
1148 | 1166 |
|
|
0 commit comments