Coverage for src/conf/config.py: 100%
28 statements
« prev ^ index » next coverage.py v7.5.4, created at 2024-07-01 22:29 +0200
« prev ^ index » next coverage.py v7.5.4, created at 2024-07-01 22:29 +0200
1from pathlib import Path
2from fastapi.security import OAuth2PasswordBearer
3from fastapi_mail import ConnectionConfig
4from pydantic import ConfigDict
5from pydantic_settings import BaseSettings
6from dotenv import load_dotenv
8load_dotenv()
11class Settings(BaseSettings):
12 sqlalchemy_database_url: str
13 secret_key: str
14 algorithm: str
15 mail_username: str
16 mail_password: str
17 mail_from: str
18 mail_port: int
19 mail_server: str
20 redis_url: str
21 redis_host: str = "localhost"
22 redis_port: int = 6379
23 cloudinary_name: str
24 cloudinary_api_key: str
25 cloudinary_api_secret: str
27 # class Config:
28 # env_file = ".env"
29 # env_file_encoding = "utf-8"
30 model_config = ConfigDict(extra="ignore", env_file=".env", env_file_encoding="utf-8")
33settings = Settings()
35SECRET_KEY = settings.secret_key
36ALGORITHM = settings.algorithm
38oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/login")
40conf = ConnectionConfig(
41 MAIL_USERNAME=settings.mail_username,
42 MAIL_PASSWORD=settings.mail_password,
43 MAIL_FROM=settings.mail_from,
44 MAIL_PORT=settings.mail_port,
45 MAIL_SERVER=settings.mail_server,
46 MAIL_FROM_NAME="Contact's email System :)",
47 MAIL_STARTTLS=False,
48 MAIL_SSL_TLS=True,
49 USE_CREDENTIALS=True,
50 VALIDATE_CERTS=True,
51 TEMPLATE_FOLDER=Path(__file__).parent.parent / "services/templates",
52)