chatterbox-voice-studio / tests /test_main_models.py
techfreakworm's picture
feat(api,models): FastAPI app with /api/health, /api/models, activate, /api/generate + chatterbox-en adapter
829be0a unverified
from fastapi.testclient import TestClient
from server.main import build_app
def test_models_list_returns_registered(monkeypatch, fake_classes):
monkeypatch.setattr("server.main._discover_adapter_classes", lambda: fake_classes)
monkeypatch.setattr("server.main.select_device", lambda: "cpu")
app = build_app()
with TestClient(app) as client:
r = client.get("/api/models")
assert r.status_code == 200
items = r.json()
ids = sorted(m["id"] for m in items)
assert ids == ["fake", "fake-b"]
fake = next(m for m in items if m["id"] == "fake")
assert fake["paralinguistic_tags"] == ["[laugh]"]
assert fake["params"][0]["name"] == "t"
def test_active_model_initially_idle(monkeypatch, fake_classes):
monkeypatch.setattr("server.main._discover_adapter_classes", lambda: fake_classes)
monkeypatch.setattr("server.main.select_device", lambda: "cpu")
app = build_app()
with TestClient(app) as client:
r = client.get("/api/models/active")
assert r.status_code == 200
body = r.json()
assert body["id"] is None
assert body["status"] == "idle"