TestingAssist / config /config.py
thechaiexperiment's picture
Upload 17 files
d825c91 verified
raw
history blame
2.47 kB
from pydantic_settings import BaseSettings
from typing import Optional, Dict, Any
import os
from dotenv import load_dotenv
load_dotenv()
class Settings(BaseSettings):
# Application
APP_NAME: str = "TestAuto"
DEBUG: bool = False
VERSION: str = "1.0.0"
# API
API_V1_STR: str = "/api/v1"
PROJECT_NAME: str = "TestAuto API"
# Security
SECRET_KEY: str = os.getenv("SECRET_KEY", "your-secret-key")
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 8 # 8 days
# Database
POSTGRES_SERVER: str = os.getenv("POSTGRES_SERVER", "localhost")
POSTGRES_USER: str = os.getenv("POSTGRES_USER", "postgres")
POSTGRES_PASSWORD: str = os.getenv("POSTGRES_PASSWORD", "postgres")
POSTGRES_DB: str = os.getenv("POSTGRES_DB", "testauto")
SQLALCHEMY_DATABASE_URI: Optional[str] = None
# AI Providers
OPENAI_API_KEY: Optional[str] = os.getenv("OPENAI_API_KEY")
OPENROUTER_API_KEY: Optional[str] = os.getenv("OPENROUTER_API_KEY")
LOCAL_LLM_PATH: Optional[str] = os.getenv("LOCAL_LLM_PATH")
# Message Queue
RABBITMQ_HOST: str = os.getenv("RABBITMQ_HOST", "localhost")
RABBITMQ_PORT: int = int(os.getenv("RABBITMQ_PORT", "5672"))
RABBITMQ_USER: str = os.getenv("RABBITMQ_USER", "guest")
RABBITMQ_PASSWORD: str = os.getenv("RABBITMQ_PASSWORD", "guest")
# Test Management Tools
TESTRAIL_API_KEY: Optional[str] = os.getenv("TESTRAIL_API_KEY")
TESTRAIL_URL: Optional[str] = os.getenv("TESTRAIL_URL")
JIRA_API_TOKEN: Optional[str] = os.getenv("JIRA_API_TOKEN")
JIRA_URL: Optional[str] = os.getenv("JIRA_URL")
QTEST_API_TOKEN: Optional[str] = os.getenv("QTEST_API_TOKEN")
QTEST_URL: Optional[str] = os.getenv("QTEST_URL")
# Document Processing
UPLOAD_FOLDER: str = "uploads"
MAX_CONTENT_LENGTH: int = 16 * 1024 * 1024 # 16MB
ALLOWED_EXTENSIONS: set = {"pdf", "docx", "doc", "txt", "png", "jpg", "jpeg"}
# Logging
LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
LOG_FILE: str = "logs/testauto.log"
# Docker
DOCKER_IMAGE: str = "testauto:latest"
def __init__(self, **kwargs: Any):
super().__init__(**kwargs)
self.SQLALCHEMY_DATABASE_URI = (
f"postgresql://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}"
f"@{self.POSTGRES_SERVER}/{self.POSTGRES_DB}"
)
settings = Settings()