37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
import unittest
|
|
from pathlib import Path
|
|
|
|
import yaml
|
|
|
|
from render_config import build_hk_config
|
|
|
|
|
|
class RoutingTests(unittest.TestCase):
|
|
def test_all_providers(self):
|
|
catalog = yaml.safe_load(Path(__file__).with_name('models.yaml').read_text())
|
|
env = {key: 'synthetic' for key in ['ZENMUX_SUBSCRIPTION_API_KEY',
|
|
'ZENMUX_PAYG_API_KEY', 'OPENROUTER_API_KEY', 'GOOGLE_AI_STUDIO_API_KEY',
|
|
'VERTEXAI_PROJECT']}
|
|
env['VERTEXAI_ENABLED'] = 'true'
|
|
result = build_hk_config(catalog, env)
|
|
routes = {r['model_name']: r['litellm_params'] for r in result['model_list']}
|
|
self.assertEqual(len(routes), len(result['model_list']))
|
|
self.assertNotIn('gemini-transcribe-personal', routes)
|
|
self.assertNotIn('grok-latest', routes)
|
|
self.assertNotIn('gpt-sol-latest', routes)
|
|
self.assertEqual(routes['gemini-transcribe']['model'], 'gemini/gemini-3.5-transcribe')
|
|
self.assertEqual(routes['gemini-3.6-flash']['model'], 'vertex_ai/gemini-3.8-flash')
|
|
self.assertEqual(len(result['router_settings']['fallbacks']), 6)
|
|
self.assertEqual(result['general_settings'], {'master_key': 'os.environ/LITELLM_MASTER_KEY'})
|
|
self.assertNotIn('synthetic', yaml.safe_dump(result))
|
|
|
|
def test_missing_credentials(self):
|
|
catalog = yaml.safe_load(Path(__file__).with_name('models.yaml').read_text())
|
|
result = build_hk_config(catalog, {})
|
|
self.assertEqual(result['model_list'], [])
|
|
self.assertEqual(result['router_settings']['fallbacks'], [])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|