cortex.6.sol / tests /test_config.py
asdfasdfqrqwer's picture
feat(cortex-ai): agent engine, tool registry, OpenAI-compatible API, fine-tuning pipeline
c63bc31
Raw History Blame Contribute Delete
2.28 kB
"""Tests for configuration loading and validation."""
import json
import pytest
from cortex_ai.config import CortexConfig, EngineConfig, ServerConfig, DEFAULT_MODEL_ID
def test_defaults():
cfg = CortexConfig()
assert cfg.model_id == DEFAULT_MODEL_ID
assert cfg.engine.thinking_mode == "thinking"
assert cfg.engine.reasoning_effort == "high"
assert cfg.server.requires_auth is False
def test_invalid_thinking_mode_is_rejected():
with pytest.raises(ValueError, match="thinking_mode"):
EngineConfig(thinking_mode="turbo")
def test_invalid_reasoning_effort_is_rejected():
with pytest.raises(ValueError, match="reasoning_effort"):
EngineConfig(reasoning_effort="extreme")
def test_invalid_max_tool_rounds_is_rejected():
with pytest.raises(ValueError, match="max_tool_rounds"):
EngineConfig(max_tool_rounds=0)
def test_round_trip_through_dict():
cfg = CortexConfig(
model_id="exemple/modele",
engine=EngineConfig(thinking_mode="chat", max_tool_rounds=3),
enabled_tools=["calculate"],
)
restored = CortexConfig.from_dict(cfg.to_dict())
assert restored.model_id == "exemple/modele"
assert restored.engine.thinking_mode == "chat"
assert restored.engine.max_tool_rounds == 3
assert restored.enabled_tools == ["calculate"]
def test_save_and_load_a_file(tmp_path):
path = tmp_path / "cortex.json"
cfg = CortexConfig(model_id="exemple/enregistre")
cfg.save(path)
assert json.loads(path.read_text())["model_id"] == "exemple/enregistre"
assert CortexConfig.load(path).model_id == "exemple/enregistre"
def test_env_overrides(monkeypatch):
monkeypatch.setenv("CORTEX_MODEL_ID", "exemple/depuis-env")
monkeypatch.setenv("CORTEX_PORT", "9001")
monkeypatch.setenv("CORTEX_THINKING_MODE", "chat")
monkeypatch.setenv("CORTEX_TOOLS", "calculate, text_stats")
cfg = CortexConfig.from_env()
assert cfg.model_id == "exemple/depuis-env"
assert cfg.server.port == 9001
assert cfg.engine.thinking_mode == "chat"
assert cfg.enabled_tools == ["calculate", "text_stats"]
def test_api_key_makes_auth_required():
assert ServerConfig(api_key="abc").requires_auth is True
assert ServerConfig(api_key="").requires_auth is False