import pytest from unittest.mock import Mock from naliiabot.bot.factories.llm_factory import LLMFactory from naliiabot.bot.exceptions import NotFoundProviderError from langchain_anthropic import ChatAnthropic from langchain_deepseek import ChatDeepSeek def test_llm_factory(monkeypatch, mock_chat_anthropic, mock_chat_deepseek): """Test que LLMFactory retorna el tipo correcto de modelo segĂșn el provider.""" # Mock ChatAnthropic para evitar necesitar API key monkeypatch.setattr( "naliiabot.bot.factories.llm_factory.ChatAnthropic", Mock(return_value=mock_chat_anthropic) ) # Mock ChatDeepSeek para evitar necesitar API key monkeypatch.setattr( "naliiabot.bot.factories.llm_factory.ChatDeepSeek", Mock(return_value=mock_chat_deepseek) ) # Test Anthropic anthropic_model = LLMFactory("anthropic").get_model() assert isinstance(anthropic_model, Mock) assert anthropic_model == mock_chat_anthropic # Test DeepSeek deepseek_model = LLMFactory("deepseek").get_model() assert isinstance(deepseek_model, Mock) assert deepseek_model == mock_chat_deepseek def test_get_model_raises_exception_when_provider_not_found(): factory = LLMFactory(provider="openai") with pytest.raises(NotFoundProviderError) as exc_info: factory.get_model() assert str(exc_info.value) == "OPENAI Not Provider Found"