mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 15:48:29 +00:00
53 lines
1.9 KiB
Python
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()
|