""" test_db.py This script verifies the database connection for the Expressive TTS Arena project. It attempts to connect to the PostgreSQL database using SQLAlchemy and executes a simple query. Functionality: - Loads the database connection from `database.py`. - Attempts to establish a connection to the database. - Executes a test query (`SELECT 1`) to confirm connectivity. - Prints a success message if the connection is valid. - Prints an error message if the connection fails. Usage: python src/test_db.py Expected Output: Database connection successful! (if the database is reachable) Database connection failed: (if there are connection issues) Troubleshooting: - Ensure the `.env` file contains a valid `DATABASE_URL`. - Check that the database server is running and accessible. - Verify PostgreSQL credentials and network settings. """ # Standard Library Imports import sys # Third-Party Library Imports from sqlalchemy import text from sqlalchemy.exc import OperationalError # Local Application Imports from src.config import logger from src.database import engine def main() -> None: if engine is None: logger.error("No valid database engine configured.") sys.exit(1) try: with engine.connect() as conn: conn.execute(text("SELECT 1")) logger.info("Database connection successful!") except OperationalError as e: logger.error(f"Database connection failed: {e}") sys.exit(1) if __name__ == "__main__": main()