Coverage for app/main.py: 0%

21 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2026-06-04 22:29 +0000

1from contextlib import asynccontextmanager 

2from typing import AsyncGenerator 

3 

4import sentry_sdk 

5from fastapi import FastAPI 

6from fastapi.staticfiles import StaticFiles 

7 

8from app.core.config import settings 

9from app.core.logger import logger 

10from app.views.main import api_router 

11 

12 

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 

19 

20 

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 ) 

31 

32app = FastAPI(title=settings.PROJECT_NAME, lifespan=lifespan) 

33 

34app.include_router(api_router) 

35 

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)}")