tabras / tests /test_ai_runtime.py
Codex
Trim prefetch to 1 pack, log model-pack failures, JSON-constrained cards, rotate fallback names
b483ca7
Raw
History Blame Contribute Delete
1.84 kB
from pathlib import Path
from ai_runtime import chat_endpoint, local_ai_env, minicpm_server_command, start_minicpm_server
# Verify local chat endpoints use OpenAI-compatible paths.
def test_chat_endpoint() -> None:
assert chat_endpoint(8090) == "http://127.0.0.1:8090/v1/chat/completions"
# Verify the MiniCPM server command points llama.cpp at the GGUF model.
def test_minicpm_server_command() -> None:
command = minicpm_server_command(Path("mini.gguf"), 9000)
assert command[:3] == ("llama-server", "--model", "mini.gguf")
assert "--port" in command
assert "9000" in command
assert "--n-gpu-layers" in command
assert "--parallel" in command
# Verify local AI env forces MiniCPM card generation and Nemotron boss play.
def test_local_ai_env(monkeypatch) -> None:
monkeypatch.setenv("TABRAS_CARD_ENDPOINT", "old")
env = local_ai_env(9001)
assert env["TABRAS_CARD_BACKEND"] == "llamacpp"
assert env["TABRAS_CARD_ENDPOINT"] == "http://127.0.0.1:9001/v1/chat/completions"
assert env["TABRAS_CARD_MAX_TOKENS"] == "256"
assert env["TABRAS_CARD_TEMPERATURE"] == "0.7"
assert env["TABRAS_AI_BOSS"] == "1"
assert env["TABRAS_BOSS_BACKEND"] == "mlx"
assert "Nemotron" in env["TABRAS_BOSS_MODEL"]
assert env["TABRAS_ART_BACKEND"] == "diffusers"
assert env["TABRAS_ART_MODEL"] == "stabilityai/sdxl-turbo"
assert env["TABRAS_ART_WIDTH"] == "512"
assert env["TABRAS_ART_HEIGHT"] == "320"
# Verify starting MiniCPM fails early when the GGUF is absent.
def test_start_minicpm_server_requires_model(tmp_path) -> None:
missing = tmp_path / "missing.gguf"
try:
start_minicpm_server(missing, 9002)
except FileNotFoundError as error:
assert str(missing) in str(error)
else:
raise AssertionError("missing MiniCPM model did not fail")