From 22e51865d5adc4c7539cc7a3d90558f0427f3b80 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Fri, 25 Mar 2022 08:10:09 +0000 Subject: [PATCH] Prevent failures when _metadata attribute is missing (#119) --- src/pytest_molecule/__init__.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/pytest_molecule/__init__.py b/src/pytest_molecule/__init__.py index b887583..ccd4b58 100644 --- a/src/pytest_molecule/__init__.py +++ b/src/pytest_molecule/__init__.py @@ -66,22 +66,23 @@ def pytest_configure(config): ] # Add extra information that may be key for debugging failures - for package in ["molecule"]: - config._metadata["Packages"][package] = pkg_resources.get_distribution( - package - ).version - - if "Tools" not in config._metadata: - config._metadata["Tools"] = {} - config._metadata["Tools"]["ansible"] = str(ansible_version()) - - # Adds interesting env vars - env = "" - for key, value in sorted(os.environ.items()): - for var_name in interesting_env_vars: - if key.startswith(var_name): - env += f"{key}={value} " - config._metadata["env"] = env + if hasattr(config, "_metadata"): + for package in ["molecule"]: + config._metadata["Packages"][package] = pkg_resources.get_distribution( + package + ).version + + if "Tools" not in config._metadata: + config._metadata["Tools"] = {} + config._metadata["Tools"]["ansible"] = str(ansible_version()) + + # Adds interesting env vars + env = "" + for key, value in sorted(os.environ.items()): + for var_name in interesting_env_vars: + if key.startswith(var_name): + env += f"{key}={value} " + config._metadata["env"] = env # We hide DeprecationWarnings thrown by driver loading because these are # outside our control and worse: they are displayed even on projects that