# This file is used to augment the test configuration import os import pytest def pytest_addoption(parser): parser.addoption( "--volatility", action="store", default=None, required=True, help="path to the volatility script", ) parser.addoption( "--python", action="store", default="python3", help="The name of the interpreter to use when running the volatility script", ) parser.addoption( "--image", action="append", default=[], help="path to an image to test" ) parser.addoption( "--image-dir", action="append", default=[], help="path to a directory containing images to test", ) def pytest_generate_tests(metafunc): """Parameterize tests based on image names""" images = metafunc.config.getoption("image") for image_dir in metafunc.config.getoption("image_dir"): images = images + [ os.path.join(image_dir, dir) for dir in os.listdir(image_dir) ] # tests with "image" parameter are run against images if "image" in metafunc.fixturenames: metafunc.parametrize( "image", images, ids=[os.path.basename(image) for image in images] ) # Fixtures @pytest.fixture def volatility(request): return request.config.getoption("--volatility") @pytest.fixture def python(request): return request.config.getoption("--python")