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

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 

7 

8load_dotenv() 

9 

10 

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 

26 

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") 

31 

32 

33settings = Settings() 

34 

35SECRET_KEY = settings.secret_key 

36ALGORITHM = settings.algorithm 

37 

38oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/login") 

39 

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)