import logging import re import allure from pytest import Config logger = logging.getLogger('NeoLogger') @allure.step('Read environment.properties') def read_env_properties(config: Config) -> dict: environment_dir = config.getoption('--alluredir') if not environment_dir: return None file_path = f'{environment_dir}/environment.properties' with open(file_path, 'r') as file: raw_content = file.read() env_properties = {} for line in raw_content.split('\n'): m = re.match('(.*?)=(.*)', line) if not m: logger.warning(f'Could not parse env property from {line}') continue key, value = m.group(1), m.group(2) env_properties[key] = value return env_properties @allure.step('Update data in environment.properties') def save_env_properties(config: Config, env_data: dict) -> None: environment_dir = config.getoption('--alluredir') if not environment_dir: return None file_path = f'{environment_dir}/environment.properties' with open(file_path, 'a+') as env_file: for env, env_value in env_data.items(): env_file.write(f'{env}={env_value}\n')