39 lines
1003 B
Python
39 lines
1003 B
Python
# -*- coding: utf-8 -*-
|
|||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from types import SimpleNamespace
|
||
|
|
|
||
|
|
from adclaw.providers import ollama_manager
|
||
|
|
|
||
|
|
|
||
|
|
def _make_fake_ollama(timeout_box: dict, response: dict):
|
||
|
|
class _FakeClient:
|
||
|
|
def __init__(self, *, timeout=None, **kwargs):
|
||
|
|
_ = kwargs
|
||
|
|
timeout_box["timeout"] = timeout
|
||
|
|
|
||
|
|
def list(self):
|
||
|
|
return response
|
||
|
|
|
||
|
|
return SimpleNamespace(Client=_FakeClient)
|
||
|
|
|
||
|
|
|
||
|
|
def test_list_models_uses_default_timeout(monkeypatch) -> None:
|
||
|
|
timeout_box: dict = {}
|
||
|
|
fake_ollama = _make_fake_ollama(
|
||
|
|
timeout_box,
|
||
|
|
{"models": [{"model": "qwen2:7b", "size": 1}]},
|
||
|
|
)
|
||
|
|
|
||
|
|
monkeypatch.delenv("ADCLAW_MODEL_PROVIDER_CHECK_TIMEOUT", raising=False)
|
||
|
|
monkeypatch.setattr(
|
||
|
|
ollama_manager,
|
||
|
|
"_ensure_ollama",
|
||
|
|
lambda: fake_ollama,
|
||
|
|
)
|
||
|
|
|
||
|
|
models = ollama_manager.OllamaModelManager.list_models()
|
||
|
|
|
||
|
|
assert timeout_box["timeout"] == 5.0
|
||
|
|
assert [m.name for m in models] == ["qwen2:7b"]
|