49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
from pathlib import Path
|
|
import yaml
|
|
from scripts.user_profile import UserProfile
|
|
from scripts.generate_llm_config import apply_service_urls
|
|
|
|
|
|
def test_urls_applied_to_llm_yaml(tmp_path):
|
|
user_yaml = tmp_path / "user.yaml"
|
|
user_yaml.write_text(yaml.dump({
|
|
"name": "Test",
|
|
"services": {
|
|
"ollama_host": "myserver", "ollama_port": 11434, "ollama_ssl": False,
|
|
"ollama_ssl_verify": True,
|
|
"vllm_host": "localhost", "vllm_port": 8000, "vllm_ssl": False,
|
|
"vllm_ssl_verify": True,
|
|
"searxng_host": "localhost", "searxng_port": 8888,
|
|
"searxng_ssl": False, "searxng_ssl_verify": True,
|
|
}
|
|
}))
|
|
llm_yaml = tmp_path / "llm.yaml"
|
|
llm_yaml.write_text(yaml.dump({"backends": {
|
|
"ollama": {"base_url": "http://old:11434/v1", "type": "openai_compat"},
|
|
"ollama_research": {"base_url": "http://old:11434/v1", "type": "openai_compat"},
|
|
"vllm": {"base_url": "http://old:8000/v1", "type": "openai_compat"},
|
|
}}))
|
|
|
|
profile = UserProfile(user_yaml)
|
|
apply_service_urls(profile, llm_yaml)
|
|
|
|
result = yaml.safe_load(llm_yaml.read_text())
|
|
assert result["backends"]["ollama"]["base_url"] == "http://myserver:11434/v1"
|
|
assert result["backends"]["ollama_research"]["base_url"] == "http://myserver:11434/v1"
|
|
assert result["backends"]["vllm"]["base_url"] == "http://localhost:8000/v1"
|
|
|
|
|
|
def test_missing_llm_yaml_is_noop(tmp_path):
|
|
"""apply_service_urls should not crash if llm.yaml doesn't exist."""
|
|
user_yaml = tmp_path / "user.yaml"
|
|
user_yaml.write_text(yaml.dump({"name": "Test", "services": {
|
|
"ollama_host": "localhost", "ollama_port": 11434, "ollama_ssl": False,
|
|
"ollama_ssl_verify": True,
|
|
"vllm_host": "localhost", "vllm_port": 8000, "vllm_ssl": False,
|
|
"vllm_ssl_verify": True,
|
|
"searxng_host": "localhost", "searxng_port": 8888,
|
|
"searxng_ssl": False, "searxng_ssl_verify": True,
|
|
}}))
|
|
profile = UserProfile(user_yaml)
|
|
# Should not raise
|
|
apply_service_urls(profile, tmp_path / "nonexistent.yaml")
|