"""Ollama manifest use: chat|memory parsing.""" from pathlib import Path from gpu_rent.llm_runtime import ( MEMORY_EMBED_MODEL, ensure_memory_model_entries, ollama_roles_payload, parse_ollama_models, preferred_ollama_model, write_ollama_models_preset, ) def test_parse_use_chat_and_memory(tmp_path: Path): path = tmp_path / "ollama-models.yaml" path.write_text( """ models: - name: chat-model:7b use: chat default: true - name: nomic-embed-text use: memory """, encoding="utf-8", ) entries = parse_ollama_models(path) assert len(entries) == 2 assert entries[0].use == "chat" and entries[0].default assert entries[1].use == "memory" and not entries[1].default assert preferred_ollama_model(path) == "chat-model:7b" roles = ollama_roles_payload(entries) assert roles["chat"] == ["chat-model:7b"] assert roles["memory"] == ["nomic-embed-text"] def test_ensure_memory_appended(): from gpu_rent.llm_runtime import OllamaModelEntry entries = [OllamaModelEntry(name="vl:7b", default=True, use="chat")] out = ensure_memory_model_entries(entries) assert any(e.use == "memory" and e.name == MEMORY_EMBED_MODEL for e in out) def test_write_preset_includes_memory(tmp_path: Path): path = tmp_path / "m.yaml" write_ollama_models_preset(path, "recommended") text = path.read_text(encoding="utf-8") assert "use: chat" in text assert "use: memory" in text assert MEMORY_EMBED_MODEL in text entries = parse_ollama_models(path) assert preferred_ollama_model(path) is not None assert preferred_ollama_model(path) != MEMORY_EMBED_MODEL