""" Tests for model loader singleton behaviour. """ import pytest from unittest.mock import patch, MagicMock @patch("app.services.model_loader.LLM") def test_get_llm_gemini_singleton(mock_llm_cls): """get_llm_gemini() must return the same instance on repeated calls.""" # Clear lru_cache between test runs from app.services.model_loader import get_llm_gemini get_llm_gemini.cache_clear() mock_llm_cls.return_value = MagicMock(name="GeminiLLM") first = get_llm_gemini() second = get_llm_gemini() assert first is second assert mock_llm_cls.call_count == 1 @patch("app.services.model_loader.LLM") def test_get_llm_groq_singleton(mock_llm_cls): from app.services.model_loader import get_llm_groq get_llm_groq.cache_clear() mock_llm_cls.return_value = MagicMock(name="GroqLLM") first = get_llm_groq() second = get_llm_groq() assert first is second assert mock_llm_cls.call_count == 1 @patch("app.services.model_loader.LLM") def test_get_llm_open_router_singleton(mock_llm_cls): from app.services.model_loader import get_llm_open_router get_llm_open_router.cache_clear() mock_llm_cls.return_value = MagicMock(name="OpenRouterLLM") first = get_llm_open_router() second = get_llm_open_router() assert first is second assert mock_llm_cls.call_count == 1