feat: reconcile granted ops run closes
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a06bfe-2a55-7ed3-bacd-879977b099bf
This commit is contained in:
parent
b72fdb5452
commit
b63131e863
21 changed files with 1240 additions and 43 deletions
|
|
@ -8,7 +8,9 @@ import pytest
|
|||
from fastapi import FastAPI, HTTPException
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from activity_core.ops_run_queue import CloseOpsRunOutcome
|
||||
from activity_core.ops_runs_api import (
|
||||
_close_response,
|
||||
bind_worker_id,
|
||||
require_worker,
|
||||
require_worker_or_operator,
|
||||
|
|
@ -140,3 +142,26 @@ def test_read_auth_no_longer_defaults_open(monkeypatch: pytest.MonkeyPatch) -> N
|
|||
require_worker_or_operator(_request())
|
||||
|
||||
assert exc.value.status_code == 503
|
||||
|
||||
|
||||
def test_close_response_distinguishes_reconciled_and_refusal_codes(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
row = MagicMock()
|
||||
monkeypatch.setattr(
|
||||
"activity_core.ops_runs_api.ops_run_to_dict",
|
||||
lambda value: {"id": "run-1", "state": value.state},
|
||||
)
|
||||
row.state = "succeeded"
|
||||
|
||||
response = _close_response(CloseOpsRunOutcome("reconciled", row))
|
||||
assert response == {
|
||||
"id": "run-1",
|
||||
"state": "succeeded",
|
||||
"close_disposition": "reconciled",
|
||||
}
|
||||
|
||||
with pytest.raises(HTTPException) as exc:
|
||||
_close_response(CloseOpsRunOutcome("expired_lease", row))
|
||||
assert exc.value.status_code == 409
|
||||
assert exc.value.detail["code"] == "expired_lease"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue