Хотя это не очень хороший ответ, это сработает. Он использует ловушку в процедуре генерации тестов, чтобы вручную генерировать комбинации параметров.
def generated_list():
return x
def generates_list_2(fn1):
return x
def pytest_generate_tests(metafunc):
if 'fn1' in metafunc.fixturenames and 'fn2' in metafunc.fixturenames:
metafunc.parametrize(
"fn1, fn2",
[(i, j) for i in generated_list() for j in generated_list_2(i)]
)
@pytest.fixture()
def fn1(request):
return request.param
@pytest.fixture()
def fn2(request):
return request.param
def test_fn(fn1, fn2):
assert fn2 == 0