from __future__ import annotations
from unittest.mock import AsyncMock, MagicMock
from fastapi.testclient import TestClient
from witty_service import main as main_module
def test_create_app_closes_services_on_shutdown(monkeypatch) -> None:
monkeypatch.setattr(
main_module.SkillManager,
"sync_awesome_repository_in_background",
lambda **_kwargs: None,
)
services = MagicMock()
services.repository = MagicMock()
services.repository.find_stale_generating_messages.return_value = []
services.repository.list_agents_needing_recovery.return_value = []
services.close = AsyncMock()
with TestClient(main_module.create_app(services=services)):
pass
services.close.assert_awaited_once_with()