import os import unittest from unittest.mock import patch from logicbench.client import LLMClientConfig class ClientConfigTests(unittest.TestCase): def test_shared_provider_defaults_apply_to_both_roles(self): values = { "LLM_API_KEY": "shared-key", "LLM_BASE_URL": "https://shared.example/v1", "RENDERER_MODEL": "renderer-model", "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, "shared-key") self.assertEqual(solver.api_key, "shared-key") self.assertEqual(renderer.base_url, "https://shared.example/v1") self.assertEqual(solver.base_url, "https://shared.example/v1") def test_role_specific_values_override_shared_provider(self): values = { "LLM_API_KEY": "shared-key", "LLM_BASE_URL": "https://shared.example/v1", "RENDERER_API_KEY": "renderer-key", "RENDERER_BASE_URL": "https://renderer.example/v1/", "RENDERER_MODEL": "renderer-model", } with patch.dict(os.environ, values, clear=True): renderer = LLMClientConfig.from_env("renderer") self.assertEqual(renderer.api_key, "renderer-key") self.assertEqual(renderer.base_url, "https://renderer.example/v1") if __name__ == "__main__": unittest.main()