From 8b1a906b39dfd9a7e20e6b6746101f095787608c Mon Sep 17 00:00:00 2001 From: Tom Krizek Date: Thu, 12 Jan 2023 17:38:06 +0100 Subject: [PATCH] Add --noclean option to pytest runner Support the --noclean option to allow the user to keep the artifacts from any test run. --- bin/tests/system/conftest.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/bin/tests/system/conftest.py b/bin/tests/system/conftest.py index 306d29701a..30a89395e1 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -108,6 +108,14 @@ if os.getenv("LEGACY_TEST_RUNNER", "0") == "0": # --------------------------- pytest hooks ------------------------------- + def pytest_addoption(parser): + parser.addoption( + "--noclean", + action="store_true", + default=False, + help="don't remove the temporary test directories with artifacts", + ) + def pytest_configure(): # Ensure this hook only runs on the main pytest instance if xdist is # used to spawn other workers. @@ -258,9 +266,12 @@ if os.getenv("LEGACY_TEST_RUNNER", "0") == "0": os.chdir(old_cwd) logger.debug("changed workdir to: %s", old_cwd) - # cases when tempdir should be kept are handled in follow-up commits - logger.debug("deleting temporary directory") - shutil.rmtree(testdir) + # Clean temporary dir unless it should be kept + if request.config.getoption("--noclean"): + logger.debug("--noclean requested, keeping temporary directory") + else: + logger.debug("deleting temporary directory") + shutil.rmtree(testdir) def _run_script( # pylint: disable=too-many-arguments env,