39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
import pytest
|
|
from unittest.mock import MagicMock, patch
|
|
from recommendations.engine import RecommendationEngine
|
|
|
|
@patch("google.genai.Client")
|
|
def test_chat_with_data_success(mock_genai_client):
|
|
# Setup mock
|
|
mock_chat = MagicMock()
|
|
mock_chat.send_message.return_value.text = "Keep it up!"
|
|
mock_client_inst = MagicMock()
|
|
mock_client_inst.chats.create.return_value = mock_chat
|
|
mock_genai_client.return_value = mock_client_inst
|
|
|
|
engine = RecommendationEngine(api_key="fake_key")
|
|
response = engine.chat_with_data("Hello", history=[])
|
|
|
|
assert response == "Keep it up!"
|
|
assert mock_client_inst.chats.create.called
|
|
|
|
@patch("google.genai.Client")
|
|
def test_get_recommendation_calls_chat(mock_genai_client):
|
|
mock_chat = MagicMock()
|
|
mock_chat.send_message.return_value.text = "Tip!"
|
|
mock_client_inst = MagicMock()
|
|
mock_client_inst.chats.create.return_value = mock_chat
|
|
mock_genai_client.return_value = mock_client_inst
|
|
|
|
engine = RecommendationEngine(api_key="fake_key")
|
|
response = engine.get_recommendation([], "fitness")
|
|
|
|
assert response == "Tip!"
|
|
|
|
@patch("os.getenv", return_value=None)
|
|
def test_mock_response_when_no_api_key(mock_env):
|
|
engine = RecommendationEngine(api_key=None)
|
|
# Mocking is done via client=None check
|
|
response = engine.chat_with_data("Hello")
|
|
assert "AI unavailable" in response
|