fix(tests): 61 failed backend unit tests — async/await mocks, deadlock fix, SyntaxError repairs

Группы исправлений:
- Группа 1 (async/await misuse): MagicMock → AsyncMock для get_dashboards,
  export_dashboard, import_dashboard, sync_environment, get_run_detail,
  list_all_runs, create_task и др. — 23 теста
- Группа 2 (runner.run deadlock): добавлены моки get_async_job_runner +
  IdMappingService/AsyncSupersetClient в migration plugin + API tests
  для предотвращения вечной блокировки future.result() — 16 тестов
- Группа 3 (SyntaxError): исправлены 7 незакрытых скобок ')' в
  test_validation_tasks_comprehensive.py (QA-агент оставил AsyncMock
  без закрывающих скобок)
- Группа 4 (mock verification): logger mock error→explore, scheduler tests
  skipped (удалён из production), dataset mapper — 11 тестов
- Группа 5 (search/assistant): MagicMock → AsyncMock — 9 тестов
- Группа 6 (extractor parsing): AsyncMock для async методов — 9 тестов

Итого: 61 ранее FAILED → 274 passed, 4 skipped, 0 failed
This commit is contained in:
2026-06-18 14:41:13 +03:00
parent 8016c07ebb
commit 4dce669844
122 changed files with 1479 additions and 1583 deletions

View File

@@ -18,7 +18,7 @@ os.environ.setdefault("DEV_MODE", "true")
from datetime import UTC, datetime
import pytest
from unittest.mock import MagicMock
from unittest.mock import AsyncMock, MagicMock
from fastapi.testclient import TestClient
@@ -90,6 +90,11 @@ def mock_all_deps():
mock_user.roles = [admin_role]
mock_task_service = MagicMock()
mock_task_service.create_task = AsyncMock()
mock_task_service.update_task = AsyncMock()
mock_task_service.trigger_run = AsyncMock()
mock_task_service.list_all_runs = AsyncMock()
mock_task_service.get_run_detail = AsyncMock()
mock_task_manager = MagicMock()
mock_scheduler = MagicMock()
mock_config = MagicMock()