Files
crewAI/tests/unit/test_llm.py
Devin AI eee7439610 Fix lint: Sort imports in test_llm.py
Co-Authored-By: Joe Moura <joao@crewai.com>
2025-05-01 19:59:44 +00:00

53 lines
1.9 KiB
Python

import unittest
from types import SimpleNamespace
from unittest.mock import MagicMock, patch
from crewai.llm import LLM
class TestLLM(unittest.TestCase):
@patch("crewai.llm.litellm.completion")
@patch("crewai.llm.LLM.supports_stop_words")
def test_call_with_supported_stop_words(self, mock_supports_stop_words, mock_completion):
mock_supports_stop_words.return_value = True
message = SimpleNamespace(content="Hello, World!")
choice = SimpleNamespace(message=message)
response = SimpleNamespace(choices=[choice])
mock_completion.return_value = response
llm = LLM(model="gpt-4", stop=["STOP"])
messages = [{"role": "user", "content": "Say Hello"}]
result = llm.call(messages)
mock_completion.assert_called_once()
call_args = mock_completion.call_args[1]
self.assertIn("stop", call_args)
self.assertEqual(call_args["stop"], ["STOP"])
self.assertEqual(result, "Hello, World!")
@patch("crewai.llm.litellm.completion")
@patch("crewai.llm.LLM.supports_stop_words")
def test_call_with_unsupported_stop_words(self, mock_supports_stop_words, mock_completion):
mock_supports_stop_words.return_value = False
message = SimpleNamespace(content="Hello, World!")
choice = SimpleNamespace(message=message)
response = SimpleNamespace(choices=[choice])
mock_completion.return_value = response
llm = LLM(model="o3", stop=["STOP"])
messages = [{"role": "user", "content": "Say Hello"}]
result = llm.call(messages)
mock_completion.assert_called_once()
call_args = mock_completion.call_args[1]
self.assertNotIn("stop", call_args)
self.assertEqual(result, "Hello, World!")
if __name__ == "__main__":
unittest.main()