pytest: Pass result to fixtures and keep directories of failed tests

@Reported-by: Rusty Russell <@rustyrussell>
@Signed-off-by: Christian Decker <@cdecker>
This commit is contained in:
Christian Decker
2018-08-01 16:18:01 +02:00
committed by Rusty Russell
parent 6627da5eb5
commit b55d03cb30
2 changed files with 25 additions and 2 deletions

View File

@@ -35,7 +35,7 @@ def test_base_dir():
@pytest.fixture
def directory(test_base_dir, test_name):
def directory(request, test_base_dir, test_name):
"""Return a per-test specific directory.
This makes a unique test-directory even if a test is rerun multiple times.
@@ -48,7 +48,12 @@ def directory(test_base_dir, test_name):
yield directory
shutil.rmtree(directory)
# This uses the status set in conftest.pytest_runtest_makereport to
# determine whether we succeeded or failed.
if request.node.rep_call.outcome == 'passed':
shutil.rmtree(directory)
else:
logging.debug("Test execution failed, leaving the test directory {} intact.".format(directory))
@pytest.fixture