TestingAssist / app /main.py
thechaiexperiment's picture
Upload 17 files
d825c91 verified
raw
history blame
1.97 kB
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from loguru import logger
import uvicorn
from services.database_service import db_service
from services.queue_service import queue_service
from api.routes import document_routes, ai_routes, test_routes, automation_routes
app = FastAPI(
title="AI-Powered Test Automation Framework",
description="An intelligent test automation framework powered by AI",
version="1.0.0"
)
# Add CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routers
app.include_router(document_routes.router, prefix="/api/documents", tags=["Documents"])
app.include_router(ai_routes.router, prefix="/api/ai", tags=["AI"])
app.include_router(test_routes.router, prefix="/api/tests", tags=["Tests"])
app.include_router(automation_routes.router, prefix="/api/automation", tags=["Automation"])
@app.on_event("startup")
async def startup_event():
"""Initialize services on startup"""
try:
# Initialize database
db_service.init_db()
logger.info("Database initialized successfully")
# Initialize queue service
queue_service.connect()
logger.info("Queue service initialized successfully")
except Exception as e:
logger.error(f"Error during startup: {str(e)}")
raise
@app.on_event("shutdown")
async def shutdown_event():
"""Cleanup on shutdown"""
try:
queue_service.close()
logger.info("Services shut down successfully")
except Exception as e:
logger.error(f"Error during shutdown: {str(e)}")
@app.get("/health")
async def health_check():
"""Health check endpoint"""
return {"status": "healthy"}
if __name__ == "__main__":
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)