fix: narrow exception types in get_models, fix patch targets in tests, add type annotation

This commit is contained in:
pyr0ball 2026-05-07 09:03:37 -07:00
parent 5939c67b9f
commit 12117ad0c6
3 changed files with 9 additions and 5 deletions

View file

@ -12,6 +12,8 @@ Route prefixes when mounted at /api in api.py:
"""
from __future__ import annotations
from pathlib import Path
from fastapi import APIRouter
from app.cforch import router as _cforch_router
@ -28,7 +30,7 @@ router.include_router(_plans_router, prefix="/plans-bench")
router.include_router(_embed_router, prefix="/embed-bench")
def set_config_dir(path) -> None:
def set_config_dir(path: Path | None) -> None:
"""Propagate config dir override to all sub-modules -- used by tests."""
import app.cforch as _cforch_mod
import app.style as _style_mod

View file

@ -100,6 +100,8 @@ def get_models() -> dict:
"name": entry.get("name", ""),
"size": entry.get("size", 0),
})
except Exception as exc:
logger.warning("Failed to list Ollama models: %s", exc)
except httpx.HTTPStatusError as exc:
logger.warning("Ollama /api/tags returned HTTP %s: %s", exc.response.status_code, exc)
except httpx.RequestError as exc:
logger.warning("Failed to reach Ollama for model list: %s", exc)
return {"models": models, "ollama_url": ollama}

View file

@ -73,7 +73,7 @@ def test_models_returns_list_with_mock(client, tmp_path):
}
mock_resp.raise_for_status = MagicMock()
with patch("httpx.get", return_value=mock_resp):
with patch("app.eval.embed_bench.httpx.get", return_value=mock_resp):
r = client.get("/api/embed-bench/models")
assert r.status_code == 200
@ -85,7 +85,7 @@ def test_models_returns_list_with_mock(client, tmp_path):
def test_models_returns_empty_on_ollama_error(client, tmp_path):
"""GET /api/embed-bench/models returns empty list if Ollama unreachable."""
import httpx
with patch("httpx.get", side_effect=httpx.ConnectError("refused")):
with patch("app.eval.embed_bench.httpx.get", side_effect=httpx.ConnectError("refused")):
r = client.get("/api/embed-bench/models")
assert r.status_code == 200
assert r.json()["models"] == []