Files
DesTEngSsv006_swd/kischdle/llmux/tests/test_routes.py
tlg d615bb4553 fix: Chatterbox uses separate classes per variant, remove turbo
ChatterboxTTS and ChatterboxMultilingualTTS are separate classes.
Turbo variant doesn't exist in chatterbox-tts 0.1.7.
Multilingual generate() requires language_id parameter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 21:43:40 +02:00

63 lines
1.6 KiB
Python

import pytest
from fastapi import FastAPI
from fastapi.testclient import TestClient
from llmux.config import ApiKey
from llmux.auth import create_api_key_dependency
from llmux.model_registry import ModelRegistry
from llmux.vram_manager import VRAMManager
from llmux.routes.models import create_models_router
API_KEY = "sk-test-key"
@pytest.fixture
def registry():
return ModelRegistry.from_config()
@pytest.fixture
def vram_manager():
return VRAMManager(total_vram_gb=16.0)
@pytest.fixture
def app(registry, vram_manager):
keys = [ApiKey(key=API_KEY, name="Test")]
require_api_key = create_api_key_dependency(keys)
app = FastAPI()
app.include_router(create_models_router(registry, require_api_key))
return app
@pytest.fixture
def client(app):
return TestClient(app)
@pytest.fixture
def auth_headers():
return {"Authorization": f"Bearer {API_KEY}"}
def test_list_models_returns_16(client, auth_headers):
resp = client.get("/v1/models", headers=auth_headers)
assert resp.status_code == 200
body = resp.json()
assert body["object"] == "list"
assert len(body["data"]) == 15
def test_list_models_contains_expected_names(client, auth_headers):
resp = client.get("/v1/models", headers=auth_headers)
names = [m["id"] for m in resp.json()["data"]]
assert "Qwen3.5-9B-FP8-Thinking" in names
assert "GPT-OSS-20B-High" in names
assert "cohere-transcribe" in names
assert "Chatterbox-Multilingual" in names
def test_list_models_requires_auth(client):
resp = client.get("/v1/models")
assert resp.status_code == 401