SurfSense/surfsense_backend/tests/unit/config/test_embedding_settings.py
2026-07-05 22:33:09 -04:00

76 lines
2.3 KiB
Python

import pytest
from app.config.embedding_settings import (
build_embedding_kwargs,
resolve_embedding_base_url,
)
pytestmark = pytest.mark.unit
def test_resolve_embedding_base_url_prefers_generic_value() -> None:
environ = {
"EMBEDDING_BASE_URL": " http://embed-host:11434 ",
"OLLAMA_EMBEDDING_BASE_URL": "http://ollama-embed:11434",
}
assert resolve_embedding_base_url(environ) == "http://embed-host:11434"
def test_resolve_embedding_base_url_falls_back_to_ollama_specific_value() -> None:
environ = {
"EMBEDDING_BASE_URL": " ",
"OLLAMA_EMBEDDING_BASE_URL": "http://ollama-embed:11434",
}
assert resolve_embedding_base_url(environ) == "http://ollama-embed:11434"
def test_build_embedding_kwargs_maps_base_url_to_litellm_api_base() -> None:
kwargs = build_embedding_kwargs(
{"EMBEDDING_BASE_URL": "http://host.docker.internal:11435"},
embedding_model="litellm://ollama/nomic-embed-text",
)
assert kwargs == {"api_base": "http://host.docker.internal:11435"}
def test_build_embedding_kwargs_does_not_leak_api_base_to_other_providers() -> None:
kwargs = build_embedding_kwargs(
{"EMBEDDING_BASE_URL": "http://host.docker.internal:11435"},
embedding_model="cohere://embed-english-light-v3.0",
)
assert kwargs == {}
def test_build_embedding_kwargs_preserves_azure_settings() -> None:
kwargs = build_embedding_kwargs(
{
"AZURE_OPENAI_ENDPOINT": "https://example.openai.azure.com",
"AZURE_OPENAI_API_KEY": "test-key",
},
embedding_model="azure_openai://text-embedding-3-small",
)
assert kwargs == {
"azure_endpoint": "https://example.openai.azure.com",
"azure_api_key": "test-key",
}
def test_build_embedding_kwargs_combines_litellm_and_azure_env_when_set() -> None:
kwargs = build_embedding_kwargs(
{
"EMBEDDING_BASE_URL": "http://host.docker.internal:4000/v1",
"AZURE_OPENAI_ENDPOINT": "https://example.openai.azure.com",
"AZURE_OPENAI_API_KEY": "test-key",
},
embedding_model="litellm://openai/text-embedding-3-small",
)
assert kwargs == {
"api_base": "http://host.docker.internal:4000/v1",
"azure_endpoint": "https://example.openai.azure.com",
"azure_api_key": "test-key",
}