fix(agent): wrap transport errors in FireflyError

This commit is contained in:
2026-08-23 17:04:54 -05:00
parent efc0ad9451
commit 773d0874d5
2 changed files with 14 additions and 1 deletions
+6 -1
View File
@@ -27,7 +27,12 @@ class FireflyClient:
) )
def _get(self, path: str, params: dict | None = None) -> dict: def _get(self, path: str, params: dict | None = None) -> dict:
response = self._http.get(path, params=params) try:
response = self._http.get(path, params=params)
except httpx.HTTPError as exc:
raise FireflyError(
f"GET {path} failed: {type(exc).__name__}: {exc}"
) from exc
if response.status_code != 200: if response.status_code != 200:
raise FireflyError( raise FireflyError(
f"GET {path} -> {response.status_code}: {response.text[:200]}" f"GET {path} -> {response.status_code}: {response.text[:200]}"
+8
View File
@@ -47,3 +47,11 @@ def test_accounts_walks_all_pages():
accounts = make_client(handler).accounts() accounts = make_client(handler).accounts()
assert [a["attributes"]["name"] for a in accounts] == ["NFCU Checking", "Venmo"] assert [a["attributes"]["name"] for a in accounts] == ["NFCU Checking", "Venmo"]
def test_transport_errors_wrapped_in_firefly_error():
def handler(request: httpx.Request) -> httpx.Response:
raise httpx.ConnectError("connection refused")
with pytest.raises(FireflyError, match="ConnectError"):
make_client(handler).about()