Extract startup resource initialization from main.py

Move lifespan startup logic into app.startup and remove local imports from app.main._lifespan. Mark startup wiring issue as done.
This commit is contained in:
2026-04-07 20:48:29 +02:00
parent effcc65e1b
commit 1fc04ed978
4 changed files with 86 additions and 69 deletions

View File

@@ -97,10 +97,10 @@ async def test_lifespan_initialises_and_cleans_up_shared_resources(tmp_path: Pat
mock_http_session.close = AsyncMock()
with (
patch("app.main.ensure_jail_configs"),
patch("app.main.aiohttp.ClientSession", return_value=mock_http_session),
patch("app.main.AsyncIOScheduler", return_value=mock_scheduler),
patch("app.main.init_db", new=AsyncMock()),
patch("app.startup.ensure_jail_configs"),
patch("app.startup.aiohttp.ClientSession", return_value=mock_http_session),
patch("app.startup.AsyncIOScheduler", return_value=mock_scheduler),
patch("app.startup.init_db", new=AsyncMock()),
patch("app.services.geo_service.init_geoip"),
patch("app.services.geo_service.load_cache_from_db", new=AsyncMock(return_value=None)),
patch("app.services.geo_service.count_unresolved", new=AsyncMock(return_value=0)),
@@ -149,12 +149,12 @@ async def test_concurrent_requests_use_request_scoped_db_connections(tmp_path: P
mock_http_session.close = AsyncMock()
with (
patch("app.main.open_db", new=AsyncMock(side_effect=fake_open_db)),
patch("app.startup.open_db", new=AsyncMock(side_effect=fake_open_db)),
patch("app.db.open_db", new=AsyncMock(side_effect=fake_open_db)),
patch("app.main.init_db", new=AsyncMock()),
patch("app.main.ensure_jail_configs"),
patch("app.main.aiohttp.ClientSession", return_value=mock_http_session),
patch("app.main.AsyncIOScheduler", return_value=mock_scheduler),
patch("app.startup.init_db", new=AsyncMock()),
patch("app.startup.ensure_jail_configs"),
patch("app.startup.aiohttp.ClientSession", return_value=mock_http_session),
patch("app.startup.AsyncIOScheduler", return_value=mock_scheduler),
patch("app.services.geo_service.init_geoip"),
patch("app.services.geo_service.load_cache_from_db", new=AsyncMock(return_value=None)),
patch("app.services.geo_service.count_unresolved", new=AsyncMock(return_value=0)),