Spaces:
Running
Running
File size: 1,974 Bytes
d825c91 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
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) |