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:
@@ -107,11 +107,11 @@ class TestCreateTask:
|
||||
from src.schemas.validation import ValidationTaskResponse
|
||||
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.create_task.return_value = ValidationTaskResponse(
|
||||
mock_svc.create_task = AsyncMock(return_value=ValidationTaskResponse(
|
||||
id="task-new", name="New Task", environment_id="env-1",
|
||||
is_active=True, dashboard_ids=["dash-1"],
|
||||
created_at=datetime.now(),
|
||||
)
|
||||
))
|
||||
mock_sched = MagicMock()
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
@@ -126,7 +126,7 @@ class TestCreateTask:
|
||||
|
||||
def test_value_error(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.create_task.side_effect = ValueError("Invalid provider")
|
||||
mock_svc.create_task = AsyncMock(side_effect=ValueError("Invalid provider"))
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
client = _make_client({_get_task_service: lambda: mock_svc})
|
||||
@@ -174,11 +174,11 @@ class TestUpdateTask:
|
||||
from src.schemas.validation import ValidationTaskResponse
|
||||
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.update_task.return_value = ValidationTaskResponse(
|
||||
mock_svc.update_task = AsyncMock(return_value=ValidationTaskResponse(
|
||||
id="task-1", name="Updated Task", environment_id="env-1",
|
||||
is_active=True, dashboard_ids=["dash-1"],
|
||||
created_at=datetime.now(),
|
||||
)
|
||||
))
|
||||
mock_sched = MagicMock()
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
@@ -193,7 +193,7 @@ class TestUpdateTask:
|
||||
|
||||
def test_not_found(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.update_task.side_effect = ValueError("Task not found")
|
||||
mock_svc.update_task = AsyncMock(side_effect=ValueError("Task not found"))
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
client = _make_client({_get_task_service: lambda: mock_svc})
|
||||
@@ -208,11 +208,11 @@ class TestToggleTaskStatus:
|
||||
|
||||
def test_activate(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.update_task.return_value = {
|
||||
mock_svc.update_task = AsyncMock(return_value={
|
||||
"id": "task-1", "name": "Task", "environment_id": "env-1",
|
||||
"is_active": True, "dashboard_ids": ["dash-1"],
|
||||
"created_at": "2024-01-01T00:00:00",
|
||||
}
|
||||
})
|
||||
mock_sched = MagicMock()
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
@@ -227,11 +227,11 @@ class TestToggleTaskStatus:
|
||||
|
||||
def test_deactivate(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.update_task.return_value = {
|
||||
mock_svc.update_task = AsyncMock(return_value={
|
||||
"id": "task-1", "name": "Task", "environment_id": "env-1",
|
||||
"is_active": False, "dashboard_ids": ["dash-1"],
|
||||
"created_at": "2024-01-01T00:00:00",
|
||||
}
|
||||
})
|
||||
mock_sched = MagicMock()
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
@@ -246,7 +246,7 @@ class TestToggleTaskStatus:
|
||||
|
||||
def test_not_found(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.update_task.side_effect = ValueError("Task not found")
|
||||
mock_svc.update_task = AsyncMock(side_effect=ValueError("Task not found"))
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
client = _make_client({_get_task_service: lambda: mock_svc})
|
||||
@@ -289,9 +289,9 @@ class TestListAllRuns:
|
||||
|
||||
def test_success(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.list_all_runs.return_value = (1, [{
|
||||
mock_svc.list_all_runs = AsyncMock(return_value=(1, [{
|
||||
"id": "run-1", "dashboard_id": "dash-1", "status": "SUCCESS",
|
||||
}])
|
||||
}]))
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
client = _make_client({_get_task_service: lambda: mock_svc})
|
||||
@@ -302,7 +302,7 @@ class TestListAllRuns:
|
||||
|
||||
def test_with_filters(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.list_all_runs.return_value = (0, [])
|
||||
mock_svc.list_all_runs = AsyncMock(return_value=(0, []))
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
client = _make_client({_get_task_service: lambda: mock_svc})
|
||||
@@ -311,7 +311,7 @@ class TestListAllRuns:
|
||||
|
||||
def test_value_error(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.list_all_runs.side_effect = ValueError("Invalid filter")
|
||||
mock_svc.list_all_runs = AsyncMock(side_effect=ValueError("Invalid filter"))
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
client = _make_client({_get_task_service: lambda: mock_svc})
|
||||
@@ -357,12 +357,12 @@ class TestGetRunDetail:
|
||||
|
||||
def test_success(self):
|
||||
mock_svc = MagicMock()
|
||||
mock_svc.get_run_detail.return_value = {
|
||||
mock_svc.get_run_detail = AsyncMock(return_value={
|
||||
"run": {"id": "run-1", "policy_id": "task-1", "status": "SUCCESS",
|
||||
"trigger": "manual", "dashboard_count": 2, "pass_count": 1,
|
||||
"warn_count": 0, "fail_count": 0, "unknown_count": 0},
|
||||
"records": [{"dashboard_id": "dash-1", "status": "PASS"}],
|
||||
}
|
||||
})
|
||||
|
||||
from src.api.routes.validation_tasks import _get_task_service
|
||||
client = _make_client({_get_task_service: lambda: mock_svc})
|
||||
|
||||
Reference in New Issue
Block a user