Coverage for /usr/lib/python3.10/site-packages/hyd/backend/util/const.py: 97%

37 statements  

« prev     ^ index     » next       coverage.py v7.0.3, created at 2023-01-05 16:38 +0000

1import datetime as dt 

2import os 

3from pathlib import Path 

4from typing import TypedDict 

5 

6import hyd 

7 

8#################################################################################################### 

9#### Environment variables 

10#################################################################################################### 

11 

12 

13class _ReqEnvvars(TypedDict): 

14 SECRET_KEY: str 

15 MARIADB_PASSWORD: str 

16 MARIADB_ADDRESS: str 

17 

18 

19def _getenv_str_or_raise(key: str) -> str: 

20 value = os.getenv(key) 

21 if value is None: 

22 raise ValueError(f"Required environment variable `{key}` not found!") 

23 return value 

24 

25 

26_req_envvars: _ReqEnvvars = { 

27 key: _getenv_str_or_raise(key) for key in ("SECRET_KEY", "MARIADB_PASSWORD", "MARIADB_ADDRESS") 

28} 

29 

30 

31SECRET_KEY: str = _req_envvars["SECRET_KEY"] 

32MARIADB_PASSWORD: str = _req_envvars["MARIADB_PASSWORD"] 

33MARIADB_ADDRESS: str = _req_envvars["MARIADB_ADDRESS"] 

34 

35 

36_root_path: str | None = os.getenv("ROOT_PATH") # optional 

37ROOT_PATH: str = _root_path if _root_path else "" 

38 

39NAME_HOSTED_BY: str | None = os.getenv("NAME_HOSTED_BY") # optional 

40LINK_HOSTED_BY: str | None = os.getenv("LINK_HOSTED_BY") # optional 

41LINK_IMPRESS: str | None = os.getenv("LINK_IMPRESS") # optional 

42LINK_PRIVACY: str | None = os.getenv("LINK_PRIVACY") # optional 

43 

44################################################################################################### 

45#### Const values 

46#################################################################################################### 

47 

48LOADER_HTML_INJECTION = ( 

49 f'<script src="{ROOT_PATH}/footer/loader.js"><!-- Injected by HostYourDocs --></script>' 

50) 

51 

52REMEMBER_ME_DURATION = dt.timedelta(days=30) 

53LOGIN_DURATION_AFTER_LAST_REQUEST = dt.timedelta(minutes=10) 

54 

55PKG_PATH = os.path.dirname(hyd.__file__) 

56STATIC_PATH = PKG_PATH + "/backend/static" 

57TEMPLATE_PATH = PKG_PATH + "/backend/templates" 

58 

59PATH_DATA = Path("data") 

60PATH_PROJECTS = PATH_DATA / "projects" 

61 

62MAX_LENGTH_STR_ID = 64 

63MAX_LENGTH_STR_COMMENT = 128 

64MAX_LENGTH_TOKEN_SCOPE = 16 

65 

66HEADERS = {"WWW-Authenticate": "Bearer"} 

67 

68HTML_TITLE = "HostYourDocs"