1
0

[loop-cycle-1233] refactor: break up BaseAgent.run() (#561) (#584)

This commit is contained in:
2026-03-20 11:24:36 -04:00
parent 48103bb076
commit faf6c1a5f1
2 changed files with 90 additions and 62 deletions

View File

@@ -361,6 +361,41 @@ class TestRun:
assert response == "ok"
# ── _handle_retry_or_raise ────────────────────────────────────────────────
class TestHandleRetryOrRaise:
def test_raises_on_last_attempt(self):
BaseAgent = _make_base_class()
with pytest.raises(ValueError, match="boom"):
BaseAgent._handle_retry_or_raise(
ValueError("boom"), attempt=3, max_retries=3, transient=False,
)
def test_raises_on_last_attempt_transient(self):
BaseAgent = _make_base_class()
exc = httpx.ConnectError("down")
with pytest.raises(httpx.ConnectError):
BaseAgent._handle_retry_or_raise(
exc, attempt=3, max_retries=3, transient=True,
)
def test_no_raise_on_early_attempt(self):
BaseAgent = _make_base_class()
# Should return None (no raise) on non-final attempt
result = BaseAgent._handle_retry_or_raise(
ValueError("retry me"), attempt=1, max_retries=3, transient=False,
)
assert result is None
def test_no_raise_on_early_transient(self):
BaseAgent = _make_base_class()
result = BaseAgent._handle_retry_or_raise(
httpx.ReadTimeout("busy"), attempt=2, max_retries=3, transient=True,
)
assert result is None
# ── get_capabilities / get_status ────────────────────────────────────────────