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,14 +135,17 @@ 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_client.is_closed = False
mock_response = Mock() mock_response = Mock()
mock_response.status_code = 500 mock_response.status_code = 500
mock_response.text = "Internal Server Error" 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
# Inject the mock client
ai._client = mock_client
# API call fails # API call fails
response = await ai.get_response([{"role": "user", "content": "test"}]) response = await ai.get_response([{"role": "user", "content": "test"}])
@ -239,14 +242,17 @@ 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_client.is_closed = False
mock_response = Mock() mock_response = Mock()
mock_response.status_code = 200 mock_response.status_code = 200
mock_response.json.return_value = mock_perplexity_response 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
# Inject the mock client
ai._client = mock_client
await ai.get_response([{"role": "user", "content": "test"}]) await ai.get_response([{"role": "user", "content": "test"}])