Coverage for microservice_websocket/app/config.py: 100%
40 statements
« prev ^ index » next coverage.py v7.0.0, created at 2022-12-20 14:31 +0000
« prev ^ index » next coverage.py v7.0.0, created at 2022-12-20 14:31 +0000
1import os
3import yaml
4from pydantic import BaseModel
5from yaml.loader import Loader
7TESTING = os.environ.get("TESTING", False)
10class AppConfig(BaseModel):
11 READING_SYNC_WAIT: int
12 CHECK_SYNC_READY: int
13 NODE_TIMEOUT_CHECK_INTERVAL: int
14 NODE_TIMEOUT_INTERVAL: int
15 ALERT_TRESHOLD: int
18class JwtConfig(BaseModel):
19 secret_key: str
20 access_token_expires_minutes: int = 10
23class MQTTConfig(BaseModel):
24 username: str
25 password: str
26 host: str = "localhost"
27 port: int = 1883
28 tls_enabled: bool = False
29 tls_version: int = 1
32class RedisConfig(BaseModel):
33 host: str = "localhost"
34 port: int = 6379
35 db: int = 0
38class MongoConfig(BaseModel):
39 db: str
40 uri: str = "mongodb://localhost:27017"
43class Config(BaseModel):
44 app: AppConfig
45 jwt: JwtConfig
46 mqtt: MQTTConfig
47 redis: RedisConfig
48 mongo: MongoConfig
51script_path = os.path.abspath(__file__)
52path_list = script_path.split(os.sep)
53relpath = "/config/config.yaml"
55path = "/".join(path_list[:-2]) + relpath
57with open(path) as f:
58 config: Config = Config.parse_obj(yaml.load(f, Loader=Loader)["config"])