| 68 | |
| 69 | |
| 70 | class FakeAsyncWork: |
| 71 | def __init__(self, poll_script: list[Any]) -> None: |
| 72 | self._poll_script = list(poll_script) |
| 73 | self.poll_calls: list[dict[str, Any]] = [] |
| 74 | self.ack_calls: list[tuple[str, dict[str, Any]]] = [] |
| 75 | self.stop_calls: list[tuple[str, dict[str, Any]]] = [] |
| 76 | |
| 77 | async def poll(self, environment_id: str, **kwargs: Any) -> Any: |
| 78 | self.poll_calls.append({"environment_id": environment_id, **kwargs}) |
| 79 | if not self._poll_script: |
| 80 | raise _StopTest("poll script exhausted") |
| 81 | nxt = self._poll_script.pop(0) |
| 82 | if isinstance(nxt, BaseException): |
| 83 | raise nxt |
| 84 | return nxt |
| 85 | |
| 86 | async def ack(self, work_id: str, **kwargs: Any) -> None: |
| 87 | self.ack_calls.append((work_id, kwargs)) |
| 88 | |
| 89 | async def stop(self, work_id: str, **kwargs: Any) -> None: |
| 90 | self.stop_calls.append((work_id, kwargs)) |
| 91 | |
| 92 | |
| 93 | class _StopTest(BaseException): |
no outgoing calls