From e14f34741cc99d0b1f8b8575eb44bf36541f35fa Mon Sep 17 00:00:00 2001 From: lukas leufen <l.leufen@fz-juelich.de> Date: Mon, 9 Dec 2019 12:08:12 +0100 Subject: [PATCH] modified pytest_runtest_teardown --- conftest.py | 43 +++++++++---------------------------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/conftest.py b/conftest.py index d8205ae4..7f6d2911 100644 --- a/conftest.py +++ b/conftest.py @@ -1,38 +1,13 @@ import os import shutil -import py -import pytest - -@pytest.fixture(scope='class') -def teardown_module(pytestconfig): - yield - # dirname can be found at pytestconfig._assertstate.hook.session._initialparts[0][0].dirname but it is not clear for - # me, if there can be more than 1 entry in each of the lists. Therefore just loop over all elements will definitely - # catch all dirnames. - d = pytestconfig._assertstate.hook.session._initialparts - f = open("testfile.log", "a+") - print(f"pytestconfig._assertstate.hook.session._initialparts {pytestconfig._assertstate.hook.session._initialparts}") - print(f"pytestconfig._assertstate.hook.session._initialpaths {pytestconfig._assertstate.hook.session._initialpaths}") - f.write(f"pytestconfig._assertstate.hook.session._initialparts {pytestconfig._assertstate.hook.session._initialparts}\n") - f.write(f"pytestconfig._assertstate.hook.session._initialpaths {pytestconfig._assertstate.hook.session._initialpaths}\n") - f.write(f"pytestconfig.invocation_params.dir {pytestconfig.invocation_params.dir}\n") - f.write(f"pytestconfig.invocation_dir {pytestconfig.invocation_dir}\n") - f.write(f"list(pytestconfig._assertstate.hook.session._bestrelpathcache.keys())[0].dirname {list(pytestconfig._assertstate.hook.session._bestrelpathcache.keys())[0].dirname}\n") - f.write(f"list(pytestconfig._assertstate.hook.session._bestrelpathcache.keys())[0].strpath {list(pytestconfig._assertstate.hook.session._bestrelpathcache.keys())[0].strpath}\n") - for di in d: - print(f"di: {type(di)}: {di}") - for dii in di: - print(f"dii: {type(dii)}: {dii}") - f.write(f"di: {type(di)}: {di}\n") - f.write(f"\tdii: {type(dii)}: {dii}\n") - if isinstance(dii, py._path.local.LocalPath): - print("is localpath") - f.write(f"\t\t{os.listdir(dii.strpath)}\n") - if "data" in os.listdir(dii.strpath): - print("found data") - f.write(f"\t\tfound data\n") - shutil.rmtree(os.path.join(dii.strpath, "data"), ignore_errors=True) - f.write("#############\n\n") - f.close() +def pytest_runtest_teardown(item, nextitem): + if nextitem is None or item.cls != nextitem.cls: + print(f"\nnew class: {item.cls} -> {nextitem.cls if nextitem else None}") + print(f"\n{nextitem.fspath.dirname}") + if "data" in os.listdir(item.fspath.dirname): + print("found data") + shutil.rmtree(os.path.join(item.fspath.dirname, "data"), ignore_errors=True) + else: + print(f"\nsame class: {item.cls} == {nextitem.cls}") -- GitLab