Fix integration tests to use lazy client injection and remove unused PropertyMock import

Co-authored-by: Kenearos <86194771+Kenearos@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-01-27 17:54:51 +00:00
parent b72cd9db1c
commit 216c7401d7
2 changed files with 27 additions and 21 deletions

View file

@ -3,7 +3,7 @@ Tests for PerplexityProvider AI API class
""" """
import pytest import pytest
import httpx import httpx
from unittest.mock import AsyncMock, Mock, patch, PropertyMock from unittest.mock import AsyncMock, Mock, patch
from ai_provider import PerplexityProvider from ai_provider import PerplexityProvider

View file

@ -135,21 +135,24 @@ class TestFullWorkflow:
memory.add_message(username, "user", "Hello") memory.add_message(username, "user", "Hello")
memory.add_message(username, "assistant", "Hi there!") memory.add_message(username, "assistant", "Hi there!")
# Simulate API failure # Mock API client for lazy initialization (simulating 500 error)
with patch('httpx.AsyncClient') as mock_client: mock_client = Mock()
mock_response = Mock() mock_client.is_closed = False
mock_response.status_code = 500 mock_response = Mock()
mock_response.text = "Internal Server Error" mock_response.status_code = 500
mock_response.text = "Internal Server Error"
mock_post = AsyncMock(return_value=mock_response) mock_client.post = AsyncMock(return_value=mock_response)
mock_client.return_value.__aenter__.return_value.post = mock_post
# API call fails # Inject the mock client
response = await ai.get_response([{"role": "user", "content": "test"}]) ai._client = mock_client
assert response is None
# Verify error was tracked # API call fails
assert ai.total_errors == 1 response = await ai.get_response([{"role": "user", "content": "test"}])
assert response is None
# Verify error was tracked
assert ai.total_errors == 1
# Verify memory still intact despite API failure # Verify memory still intact despite API failure
history = memory.get_user_history(username) history = memory.get_user_history(username)
@ -239,16 +242,19 @@ class TestComponentInteraction:
logger = Logger(log_dir=str(temp_dir / "logs"), debug_mode=True) logger = Logger(log_dir=str(temp_dir / "logs"), debug_mode=True)
ai = PerplexityProvider(api_key="test-key", logger=logger) ai = PerplexityProvider(api_key="test-key", logger=logger)
# Mock API call # Mock API client for lazy initialization
with patch('httpx.AsyncClient') as mock_client: mock_client = Mock()
mock_response = Mock() mock_client.is_closed = False
mock_response.status_code = 200 mock_response = Mock()
mock_response.json.return_value = mock_perplexity_response mock_response.status_code = 200
mock_response.json.return_value = mock_perplexity_response
mock_post = AsyncMock(return_value=mock_response) mock_client.post = AsyncMock(return_value=mock_response)
mock_client.return_value.__aenter__.return_value.post = mock_post
await ai.get_response([{"role": "user", "content": "test"}]) # Inject the mock client
ai._client = mock_client
await ai.get_response([{"role": "user", "content": "test"}])
# Verify log was created # Verify log was created
assert (temp_dir / "logs" / "eugen.log").exists() assert (temp_dir / "logs" / "eugen.log").exists()