"""Doctor LLM / Assistent local checks.""" from __future__ import annotations from pathlib import Path from gpu_rent.doctor import Check, _llm_assistent class _Cfg: llm_runtime = "ollama" ollama_models_manifest = None extensions_manifest = None def test_llm_assistent_warns_without_ollama_yaml(tmp_path: Path, monkeypatch): cfg = _Cfg() cfg.ollama_models_manifest = tmp_path / "missing-ollama.yaml" cfg.extensions_manifest = tmp_path / "extensions.yaml" cfg.extensions_manifest.write_text( "swarmui:\n" " - url: https://gitea.example/swarm-assistent.git\n" " dir: swarm-assistent\n" " requires: ollama\n", encoding="utf-8", ) monkeypatch.setattr( "gpu_rent.paths.ollama_models_manifest_path", lambda: cfg.ollama_models_manifest, ) checks: list[Check] = [] _llm_assistent(cfg, checks) names = {c.name: c for c in checks} assert names["ollama-models.yaml"].ok is False assert names["ollama-models.yaml"].blocking is True assert names["Assistent ext"].ok is True def test_llm_assistent_ok_with_manifests(tmp_path: Path, monkeypatch): ollama = tmp_path / "ollama-models.yaml" ollama.write_text( "models:\n - name: foo:7b\n use: chat\n default: true\n", encoding="utf-8", ) ext = tmp_path / "extensions.yaml" ext.write_text( "swarmui:\n" " - url: https://gitea.example/swarm-assistent.git\n" " dir: swarm-assistent\n" " requires: ollama\n", encoding="utf-8", ) cfg = _Cfg() cfg.ollama_models_manifest = ollama cfg.extensions_manifest = ext cfg.llm_runtime = "ollama" checks: list[Check] = [] _llm_assistent(cfg, checks) by = {c.name: c for c in checks} assert by["ollama-models.yaml"].ok assert "swarm-assistent" in by["Assistent ext"].detail