import unittest
from rlm_mcp_server.validate import validate_request
class TestProviderValidation(unittest.TestCase):
def test_valid_presets(self):
for preset in ["openai", "openrouter", "ollama_local", "vllm_local", "litellm_proxy"]:
req = {
"query": "test",
"text": "context",
"provider_preset": preset
}
validate_request(req)
def test_valid_explicit_provider(self):
req = {
"query": "test",
"text": "context",
"provider": {
"mode": "openai_compatible",
"base_url": "http://localhost:8080/v1",
"api_key_env": "TEST_KEY"
}
}
validate_request(req)
def test_invalid_provider_missing_url(self):
req = {
"query": "test",
"text": "context",
"provider": {
"mode": "openai_compatible"
}
}
with self.assertRaises(Exception):
validate_request(req)
def test_mutually_exclusive_provider(self):
req = {
"query": "test",
"text": "context",
"provider": {"mode": "openai_cloud"},
"provider_preset": "openrouter"
}
with self.assertRaises(Exception):
validate_request(req)
if __name__ == "__main__":
unittest.main()