test: 5 final agents — fix 40+ failures, llm_analysis 80%+, git_plugin 90%+, routes 90-98%, services 98-100%, core 90-100%. Coverage: real 87%, target 95%+

This commit is contained in:
2026-06-15 19:31:56 +03:00
parent 51d90f58c1
commit 010edfcfdc
20 changed files with 5275 additions and 231 deletions

View File

@@ -126,6 +126,56 @@ class TestHandleListMaintenanceEvents:
)
assert "Нет событий" in text
@pytest.mark.asyncio
async def test_with_expired_events(self, intent, current_user):
"""Expired events trigger end-task creation."""
from src.api.routes.assistant._tool_maintenance import handle_list_maintenance_events
task_manager = MagicMock()
task_manager.create_task = AsyncMock(return_value=MagicMock(id="task-exp-1"))
config_manager = MagicMock()
db = MagicMock()
expired_events = [
_make_maintenance_event("evt-exp-1", "ACTIVE"),
_make_maintenance_event("evt-exp-2", "PARTIAL"),
]
active_events = [_make_maintenance_event("evt-act-1", "ACTIVE")]
completed_events = [_make_maintenance_event("evt-cmp-1", "COMPLETED")]
class CountMock:
"""Mock that returns a specific count value."""
def __init__(self, val):
self._val = val
def count(self):
return self._val
def query_side_effect(model):
q = MagicMock()
if model.__name__ == "MaintenanceEvent":
# First .filter(...).all() → expired events
# Then .filter(...).order_by().all() → active
# Then .filter(...).order_by().limit().all() → completed
f1 = MagicMock()
f1.all.side_effect = [expired_events, active_events, completed_events]
q.filter.return_value = f1
# For the order_by path used in active/completed:
f1.order_by.return_value.all.return_value = active_events
f1.order_by.return_value.limit.return_value.all.return_value = completed_events
elif model.__name__ == "MaintenanceDashboardState":
q.filter.return_value.filter.return_value.count.return_value = 2
return q
db.query.side_effect = query_side_effect
text, task_id, actions = await handle_list_maintenance_events(
intent, current_user, task_manager, config_manager, db
)
assert "Активные" in text
assert "Завершённые" in text
# Should have created tasks for expired events
assert task_manager.create_task.call_count >= 2
class TestHandleStartMaintenance:
"""handle_start_maintenance — starting maintenance events."""