fix: image model ranking crashes on a non-string search filter (#1898)

This commit is contained in:
Afonso Coutinho
2026-06-04 03:26:35 +01:00
committed by GitHub
parent 5043b2924c
commit 03dbf976a5
2 changed files with 16 additions and 1 deletions

View File

@@ -288,7 +288,7 @@ def rank_image_models(system, search=None, sort="fit"):
for model in IMAGE_MODEL_REGISTRY:
# Filter by search
if search:
if isinstance(search, str) and search:
s = search.lower()
if s not in model["name"].lower() and s not in model["id"].lower() and s not in model.get("description", "").lower():
continue

View File

@@ -0,0 +1,15 @@
from services.hwfit.image_models import rank_image_models, IMAGE_MODEL_REGISTRY
SYS = {"gpu_vram_gb": 0, "has_gpu": False}
def test_rank_image_models_handles_non_string_search():
# search is a CLI/API filter arg; a non-string made search.lower() raise
# AttributeError. A non-string search should behave as "no filter".
out = rank_image_models(SYS, search=123)
assert len(out) == len(IMAGE_MODEL_REGISTRY)
def test_rank_image_models_string_filter_still_applies():
out = rank_image_models(SYS, search="zzzznotarealmodelzzz")
assert out == []