Coverage for api/config.py: 100%
57 statements
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
1import os
2from contextlib import suppress
3from os import environ
5with suppress(FileNotFoundError):
6 with open(".env") as f:
7 line = f.readline()
8 while line:
9 # print(line)
10 if line.find("=") == -1:
11 line = f.readline()
12 continue
13 k, v = line.split("=", 1)
14 os.environ[k] = v.strip()
15 line = f.readline()
16 f.close()
18LOCATION_API_TIMEOUT = 15 * 60
20ENVIRONMENT = environ.get("ENVIRONMENT", "local")
21APP_NAME = "SOTRANS Main Service"
23MONGO_URI = environ.get("MONGO_URL", "mongodb://sotrans_mongodb:27017")
25MONGO_DB_NAME = environ.get("MONGO_DB_NAME", "sotrans_main")
27TESTING = int(environ.get("TESTING", 0))
30class KeycloakConfig:
31 SERVER_URL = environ["KEYCLOAK_URL"]
32 CLIENT_ID = environ.get("KEYCLOAK_CLIENT_ID")
33 CLIENT_SECRET = environ.get("KEYCLOAK_CLIENT_SECRET")
34 ADMIN_CLIENT_ID = environ.get("KEYCLOAK_ADMIN_ID")
35 ADMIN_CLIENT_SECRET = environ.get("KEYCLOAK_ADMIN_SECRET")
36 REALM = environ.get("KEYCLOAK_REALM")
37 LOGIN_CALLBACK_URL = environ.get("KEYCLOAK_LOGIN_CALLBACK_URL")
38 TOKEN_URL = environ.get("KEYCLOAK_TOKEN_URL")
41class TelegramConfig:
42 INFO_CHAT_ID = int(environ.get("INFO_NOTIFICATION_CHAT", "0"))
43 ALERT_CHAT_ID = int(environ.get("ALERT_NOTIFICATION_CHAT", "0"))
44 BOT_TOKEN = environ.get("BOT_TOKEN", "")
45 LOG_LEVEL = int(environ.get("LOG_LEVEL", 30))
48class SentryConfig:
49 DSN = environ.get("SENTRY_DSN")
52class LocationConfig:
53 LOCATION_API_URL = environ.get("LOCATION_API_URL")
56class RecommendationAPIConfig:
57 RECOMMENDATION_API_URL = environ["RECOMMENDATION_API_URL"]
60class DocumentsServiceConfig:
61 DOCUMENTS_SERVICE_URL = environ["DOCUMENTS_API_URL"]
64class DadataConfig:
65 DADATA_TOKEN = environ.get("DADATA_TOKEN")
68class NotificationAPIConfig:
69 NOTIFICATION_API_URL = environ.get(
70 "NOTIFICATION_API_URL", "https://sotrans-notification-dev.the-devs.com"
71 )
72 KEYCLOAK_USERNAME = environ.get("NOTIFICATION_KEYCLOAK_USERNAME", "")
73 KEYCLOAK_PASSWORD = environ.get("NOTIFICATION_KEYCLOAK_PASSWORD", "")
76class OpenSearchConfig:
77 HOST = environ["OPENSEARCH_HOST"]
78 LOGIN = environ["OPENSEARCH_LOGIN"]
79 PASSWORD = environ["OPENSEARCH_PASS"]
80 PORT = int(environ["OPENSEARCH_PORT"])
83DEFAULT_RATE_STEP = 1000
85EMBEDDED_DOCUMENTS_LIMIT = 10
87LOG_LEVEL = int(environ.get("LOG_LEVEL", 10))
89MIN_COUNT_TO_NOTIFY_ON_SCRAPED = int(
90 environ.get("MIN_COUNT_TO_NOTIFY_ON_SCRAPED", 100)
91)