test_forum_llm_host.py 1.05 KB
from __future__ import annotations

from types import SimpleNamespace

from services.engines.forum import llm_host


def test_forum_host_reads_defaults_via_shared_config_access(monkeypatch):
    client_calls: list[dict[str, object]] = []

    monkeypatch.setattr(
        llm_host,
        "get_settings",
        lambda: SimpleNamespace(
            FORUM_HOST_API_KEY="shared-api-key",
            FORUM_HOST_BASE_URL="https://forum.example.test",
            FORUM_HOST_MODEL_NAME="forum-model",
        ),
    )
    monkeypatch.setattr(
        llm_host,
        "create_openai_client",
        lambda api_key, base_url=None: client_calls.append(
            {"api_key": api_key, "base_url": base_url}
        )
        or object(),
    )

    host = llm_host.ForumHost()

    assert host.api_key == "shared-api-key"
    assert host.base_url == "https://forum.example.test"
    assert host.model == "forum-model"
    assert len(client_calls) == 1
    assert client_calls[0] == {
        "api_key": "shared-api-key",
        "base_url": "https://forum.example.test",
    }