Anna Arhipova | fa7e1ef | 2025-03-25 10:23:37 +0100 | [diff] [blame^] | 1 | from os import environ |
| 2 | import yaml |
| 3 | from pathlib import Path |
| 4 | import logging |
| 5 | |
| 6 | LOG = logging.getLogger(__name__) |
| 7 | |
| 8 | RP_CONFIG_FILE = environ.get("RP_CONFIG_FILE") or (Path.home() / ".reportportal_config") |
| 9 | |
| 10 | def from_conf(key_name): |
| 11 | if not Path(RP_CONFIG_FILE).exists(): |
| 12 | LOG.warning(f"Can't get {key_name} because config file " |
| 13 | f"not found: {RP_CONFIG_FILE}") |
| 14 | return None |
| 15 | with open(RP_CONFIG_FILE) as f: |
| 16 | yaml_config = yaml.safe_load(f) |
| 17 | value = yaml_config.get(key_name) |
| 18 | if value is None: |
| 19 | LOG.warning(f"Can't get {key_name} because it's absent in {RP_CONFIG_FILE}") |
| 20 | return value |
| 21 | |
| 22 | def call_error(key_name): |
| 23 | raise Exception(f"{key_name} should be defined in {RP_CONFIG_FILE} or " |
| 24 | f"by environment variable") |
| 25 | |
| 26 | RP_APIKEY = environ.get('RP_APIKEY') or from_conf('RP_APIKEY') or call_error("RP_APIKEY") |
| 27 | RP_ENDPOINT = environ.get('RP_ENDPOINT') or from_conf('RP_ENDPOINT') or call_error("RP_ENDPOINT") |
| 28 | RP_PROJECT = environ.get('RP_PROJECT') or from_conf('RP_PROJECT') or call_error("RP_PROJECT") |
| 29 | |
| 30 | RP_LOG_FILE = environ.get('RP_LOG_FILE') or from_conf('RP_LOG_FILE') or (Path.cwd() / "report.log") |
| 31 | |
| 32 | if __name__ == "__main__": |
| 33 | LOG.info(f"RP_APIKEY: {RP_APIKEY}") |
| 34 | LOG.info(f"RP_ENDPOINT: {RP_ENDPOINT}") |
| 35 | LOG.info(f"RP_PROJECT: {RP_PROJECT}") |