fixed tests

This commit is contained in:
2025-11-19 20:46:08 +01:00
parent 7b07e0cfae
commit 17c7a2e295
8 changed files with 291 additions and 16068 deletions

View File

@@ -8,7 +8,7 @@ This module tests the integration between the existing JavaScript frontend
- API endpoints respond with expected data formats
- Frontend JavaScript can interact with backend services
"""
from unittest.mock import AsyncMock, Mock, patch
from unittest.mock import AsyncMock, patch
import pytest
from httpx import ASGITransport, AsyncClient
@@ -200,25 +200,48 @@ class TestFrontendAnimeAPI:
assert "name" in data[0]
async def test_rescan_anime(self, authenticated_client):
"""Test POST /api/anime/rescan triggers rescan."""
# Mock AnimeService instance with async rescan method
from unittest.mock import AsyncMock
"""Test POST /api/anime/rescan triggers rescan with events."""
from unittest.mock import MagicMock
from src.server.services.progress_service import ProgressService
from src.server.utils.dependencies import get_anime_service
# Mock the underlying SeriesApp
mock_series_app = MagicMock()
mock_series_app.directory_to_search = "/tmp/test"
mock_series_app.series_list = []
mock_series_app.rescan = AsyncMock()
mock_series_app.download_status = None
mock_series_app.scan_status = None
mock_anime_service = Mock()
mock_anime_service.rescan = AsyncMock()
# Mock the ProgressService
mock_progress_service = MagicMock(spec=ProgressService)
mock_progress_service.start_progress = AsyncMock()
mock_progress_service.update_progress = AsyncMock()
mock_progress_service.complete_progress = AsyncMock()
mock_progress_service.fail_progress = AsyncMock()
with patch(
"src.server.utils.dependencies.get_anime_service"
) as mock_get_service:
mock_get_service.return_value = mock_anime_service
# Create real AnimeService with mocked dependencies
from src.server.services.anime_service import AnimeService
anime_service = AnimeService(
series_app=mock_series_app,
progress_service=mock_progress_service,
)
# Override the dependency
app.dependency_overrides[get_anime_service] = lambda: anime_service
try:
response = await authenticated_client.post("/api/anime/rescan")
assert response.status_code == 200
data = response.json()
assert data["success"] is True
# Verify rescan was called
mock_anime_service.rescan.assert_called_once()
# Verify rescan was called on the underlying SeriesApp
mock_series_app.rescan.assert_called_once()
finally:
# Clean up override
app.dependency_overrides.pop(get_anime_service, None)
class TestFrontendDownloadAPI: