From ca2182a3d5ade6abe6700aea2a92a03d2410898a Mon Sep 17 00:00:00 2001 From: Martin Kourim Date: Mon, 21 Sep 2020 14:42:36 +0200 Subject: [PATCH] Save environment info for Allure report --- cardano_node_tests/tests/conftest.py | 4 ++++ cardano_node_tests/utils/helpers.py | 25 +++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/cardano_node_tests/tests/conftest.py b/cardano_node_tests/tests/conftest.py index 259289fa0..3004006a4 100644 --- a/cardano_node_tests/tests/conftest.py +++ b/cardano_node_tests/tests/conftest.py @@ -37,6 +37,8 @@ def pytest_configure(config: Any) -> None: config._metadata["cardano-node"] = cardano_version["cardano-node"] config._metadata["cardano-node rev"] = cardano_version["git_rev"] config._metadata["ghc"] = cardano_version["ghc"] + config._metadata["tests rev"] = helpers.CURRENT_COMMIT + config._metadata["github url"] = helpers.GITHUB_URL @pytest.fixture(scope="session") @@ -59,6 +61,8 @@ def _run_cluster_cleanup( cluster_manager_obj.stop() # process artifacts helpers.process_artifacts(pytest_tmp_dir=pytest_tmp_dir, request=request) + # save environment info for Allure + helpers.save_env_for_allure(request) @pytest.yield_fixture(scope="session") diff --git a/cardano_node_tests/utils/helpers.py b/cardano_node_tests/utils/helpers.py index a6ce6e1b4..329f1a150 100644 --- a/cardano_node_tests/utils/helpers.py +++ b/cardano_node_tests/utils/helpers.py @@ -33,6 +33,8 @@ LOGGER = logging.getLogger(__name__) + +LAUNCH_PATH = Path(os.getcwd()) ADDR_DATA = "addr_data.pickle" TEST_TEMP_DIR = Path(tempfile.gettempdir()) / "cardano-node-tests" @@ -69,6 +71,7 @@ def run_shell_command(command: str, workdir: FileType = "") -> bytes: CURRENT_COMMIT = run_shell_command("git rev-parse HEAD").decode().strip() +GITHUB_URL = f"https://github.com/input-output-hk/cardano-node-tests/blob/{CURRENT_COMMIT}" def get_vcs_link() -> str: @@ -77,10 +80,7 @@ def get_vcs_link() -> str: lineno = calling_frame.f_lineno + 1 # type: ignore fname = calling_frame.f_globals["__file__"] # type: ignore fpart = fname[fname.find("cardano_node_tests") :] - url = ( - f"https://github.com/input-output-hk/cardano-node-tests/blob/{CURRENT_COMMIT}" - f"/{fpart}#L{lineno}" - ) + url = f"{GITHUB_URL}/{fpart}#L{lineno}" return url @@ -747,3 +747,20 @@ def process_artifacts(pytest_tmp_dir: Path, request: FixtureRequest) -> None: errors = search_cluster_artifacts(artifacts_dir) if errors: report_artifacts_errors(errors) + + +def save_env_for_allure(request: FixtureRequest) -> None: + """Save environment info in a format for Allure.""" + alluredir = request.config.getoption("--alluredir") + + if not alluredir: + return + + alluredir = LAUNCH_PATH / alluredir + metadata: Dict[str, Any] = request.config._metadata # type: ignore + with open(alluredir / "environment.properties", "w+") as infile: + for k, v in metadata.items(): + if isinstance(v, dict): + continue + name = k.replace(" ", ".") + infile.write(f"{name}={v}\n")