Select Git revision
conftest.py
conftest.py 1.19 KiB
import os
import shutil
def pytest_runtest_teardown(item, nextitem):
"""
Teardown method to clean up folder creations during testing. This method is called after each test, but performs
deletions only after an entire test class was executed.
:param item: tested item
:param nextitem: next item (could be None, if no following test is available)
"""
if nextitem is None or item.cls != nextitem.cls:
# clean up all TestExperiment and data folder that have been created during testing
rel_path = os.path.relpath(item.fspath.dirname, os.path.abspath(__file__))
path = os.path.dirname(__file__)
for stage in filter(None, rel_path.replace("..", ".").split("/")):
path = os.path.abspath(os.path.join(path, stage))
list_dir = os.listdir(path)
if "data" in list_dir and path != os.path.dirname(__file__): # do not delete data folder in src
shutil.rmtree(os.path.join(path, "data"), ignore_errors=True)
if "TestExperiment" in list_dir:
shutil.rmtree(os.path.join(path, "TestExperiment"), ignore_errors=True)
else:
pass # nothing to do if next test is from same test class