Coverage for app / core / config.py: 96%

26 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-21 22:41 +0300

1from pydantic import HttpUrl 

2from pydantic_settings import BaseSettings, SettingsConfigDict 

3 

4 

5class Settings(BaseSettings): 

6 base_url: HttpUrl 

7 

8 app_port: int 

9 

10 postgres_user: str 

11 postgres_password: str 

12 postgres_db: str 

13 

14 db_host: str 

15 db_port: int 

16 db_internal_port: int 

17 

18 @property 

19 def db_url(self) -> str: 

20 return ( 

21 f"postgresql+asyncpg://{self.postgres_user}" 

22 f":{self.postgres_password}" 

23 f"@{self.db_host}" 

24 f":{self.db_internal_port}" 

25 f"/{self.postgres_db}" 

26 ) 

27 

28 redis_port: int 

29 redis_host: str 

30 redis_password: str 

31 

32 @property 

33 def redis_url(self) -> str: 

34 return f"redis://:{self.redis_password}@{self.redis_host}:{self.redis_port}/0" 

35 

36 jwt_secret_key: str 

37 jwt_algorithm: str = "HS256" 

38 jwt_access_expire_minutes: int 

39 

40 link_expire_days: int 

41 

42 model_config = SettingsConfigDict(case_sensitive=False, env_file=".env") 

43 

44 

45settings = Settings()