Files
logic-skeleton-bench/tests/test_client.py
T

52 lines
2.0 KiB
Python

import os
import unittest
from unittest.mock import patch
from logicbench.client import LLMClientConfig
class ClientConfigTests(unittest.TestCase):
def test_roles_have_independent_explicit_configuration(self):
values = {
"RENDERER_API_KEY": "renderer-key",
"RENDERER_BASE_URL": "https://renderer.example/v1",
"RENDERER_MODEL": "renderer-model",
"SOLVER_API_KEY": "solver-key",
"SOLVER_BASE_URL": "https://solver.example/v1",
"SOLVER_MODEL": "solver-model",
}
with patch.dict(os.environ, values, clear=True):
renderer = LLMClientConfig.from_env("renderer")
solver = LLMClientConfig.from_env("solver")
self.assertEqual(renderer.api_key, "renderer-key")
self.assertEqual(solver.api_key, "solver-key")
self.assertEqual(renderer.base_url, "https://renderer.example/v1")
self.assertEqual(solver.base_url, "https://solver.example/v1")
self.assertEqual(renderer.timeout_seconds, 240)
def test_role_timeout_can_be_overridden(self):
values = {
"SOLVER_API_KEY": "solver-key",
"SOLVER_BASE_URL": "https://solver.example/v1",
"SOLVER_MODEL": "solver-model",
"SOLVER_TIMEOUT_SECONDS": "360",
"SOLVER_ENABLE_THINKING": "false",
}
with patch.dict(os.environ, values, clear=True):
solver = LLMClientConfig.from_env("solver")
self.assertEqual(solver.timeout_seconds, 360)
self.assertFalse(solver.enable_thinking)
def test_missing_role_base_url_is_rejected(self):
values = {
"RENDERER_API_KEY": "renderer-key",
"RENDERER_MODEL": "renderer-model",
}
with patch.dict(os.environ, values, clear=True):
with self.assertRaisesRegex(ValueError, "RENDERER_BASE_URL is required"):
LLMClientConfig.from_env("renderer")
if __name__ == "__main__":
unittest.main()