Coverage for app/main.py: 0%
21 statements
« prev ^ index » next coverage.py v7.6.10, created at 2026-06-04 22:29 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2026-06-04 22:29 +0000
1from contextlib import asynccontextmanager
2from typing import AsyncGenerator
4import sentry_sdk
5from fastapi import FastAPI
6from fastapi.staticfiles import StaticFiles
8from app.core.config import settings
9from app.core.logger import logger
10from app.views.main import api_router
13@asynccontextmanager
14async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
15 logger.info(
16 f"Starting {settings.PROJECT_NAME} in {settings.ENVIRONMENT} environment"
17 )
18 yield
21if settings.SENTRY_DSN and settings.ENVIRONMENT != "dev":
22 logger.info("Initializing Sentry SDK")
23 sentry_sdk.init(
24 dsn=str(settings.SENTRY_DSN),
25 enable_tracing=True,
26 traces_sample_rate=1.0,
27 _experiments={
28 "continuous_profiling_auto_start": False,
29 },
30 )
32app = FastAPI(title=settings.PROJECT_NAME, lifespan=lifespan)
34app.include_router(api_router)
36try:
37 app.mount("/static", StaticFiles(directory="app/static"), name="static")
38except Exception as e:
39 logger.error(f"Failed to mount static files directory: {str(e)}")