ObjectverseDiary / tests /test_llama_cpp_smoke.py
qqyule's picture
Deploy latest Objectverse Diary from fa09aac
dd6cefc verified
"""Tests for the optional llama.cpp smoke-test helper."""
from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from unittest.mock import patch
from scripts.check_llama_cpp_smoke import run_llama_cpp_smoke
class FakeLlamaModel:
def __init__(self, responses: list[str]) -> None:
self.responses = responses
def create_chat_completion(self, **_: object) -> dict:
response = self.responses.pop(0)
return {"choices": [{"message": {"content": response}}]}
class LlamaCppSmokeTest(unittest.TestCase):
def test_smoke_passes_when_pipeline_uses_llama_cpp_without_fallback(self) -> None:
fake_llama = FakeLlamaModel(
[
"""
{"persona":{"object_name":"coffee mug","character_name":"Mugworth","mood":"dry and suspicious","secret_fear":"being left empty forever","core_memory":"It remembers every late-night refill.","complaint":"I am treated like a ceramic fuel tank.","tags":["desk witness","warm archive","quiet judgment"]},"diary":{"title":"Secret Diary - Day 418","english":"Today I held another bitter storm and called it service.","chinese":"今天我又装下一场苦涩风暴,并被称为有用。"}}
""",
"""
{"reply":"Mugworth: I saw another deadline dissolve into a coffee ring."}
""",
]
)
with tempfile.TemporaryDirectory() as tmp_dir:
model_path = Path(tmp_dir) / "model.gguf"
model_path.write_text("fake", encoding="utf-8")
with patch("src.models.llama_cpp_runner._load_llama_model", return_value=fake_llama):
result = run_llama_cpp_smoke(
model_path=model_path,
description="old white coffee mug",
mode="Cynical",
save_trace=False,
)
self.assertEqual(result["status"], "pass")
self.assertEqual(result["model_runtime"]["text"], "llama-cpp text generation")
self.assertNotIn("text-fallback-to-mock", result["fallbacks"])
self.assertNotIn("text-fallback-to-mock", result["chat_fallbacks"])
def test_smoke_fails_when_model_path_is_missing(self) -> None:
with self.assertRaises(FileNotFoundError):
run_llama_cpp_smoke(
model_path=Path("/tmp/objectverse-missing-model.gguf"),
description="old white coffee mug",
mode="Cynical",
save_trace=False,
)
if __name__ == "__main__":
unittest.main()