Coverage for src/common/app_config.py: 100%

20 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-03-25 22:26 -0400

1"""Configuration for the application, supplied via environment variables 

2to support 12-factor app methodology""" 

3 

4import os 

5 

6from dotenv import load_dotenv 

7 

8load_dotenv() # take environment variables from .env. 

9 

10DB_HOST = os.getenv("DB_HOST", "not_configured") 

11DB_PORT = os.getenv("DB_PORT", "not_configured") 

12DB_USER = os.getenv("DB_USER", "not_configured") 

13DB_PASSWORD = os.getenv("DB_PASSWORD", "not_configured") 

14DB_DATABASE = os.getenv("DB_DATABASE", "not_configured") 

15DB_URI = ( 

16 f"postgresql+psycopg2://{DB_USER}:{DB_PASSWORD}@" 

17 + f"{DB_HOST}:{DB_PORT}/{DB_DATABASE}?application_name=cuecode" 

18) 

19 

20SQLALCHEMY_POOL_RECYCLE = int(os.getenv("SQLALCHEMY_POOL_RECYCLE", "35")) 

21SQLALCHEMY_POOL_TIMEOUT = int(os.getenv("SQLALCHEMY_POOL_TIMEOUT", "7")) 

22SQLALCHEMY_DATABASE_URI = DB_URI 

23 

24LLM_BASE_URL = str(os.getenv("LLM_BASE_URL")) 

25LLM_API_KEY = str(os.getenv("LLM_API_KEY")) 

26LLM_MODEL = str(os.getenv("LLM_MODEL")) 

27 

28 

29# Flask 

30# pylint: disable-next=too-few-public-methods 

31class FlaskConfig: 

32 """Handles getting config from environment variables to pass to the Flask 

33 application""" 

34 

35 SERVER_NAME = os.getenv("SERVER_NAME") 

36 PREFERRED_URL_SCHEME = os.getenv("PREFERRED_URL_SCHEME", "http") 

37 WTF_CSRF_SECRET_KEY = os.getenv("WTF_CSRF_SECRET_KEY", "testing") 

38 SECRET_KEY = os.getenv("SECRET_KEY", "your-default-secret-key")