Я пытаюсь использовать параметризованный прибор несколько раз в одном тесте с намерением получить декартово произведение всех его значений.
https://stackoverflow.com/a/39444098/102441 показывает, как это сделать для простого прибора:
import pytest
@pytest.fixture(params=[0, 1, 2])
def first(request):
return request.param
second = first
# runs 3x3 = 9 times
def test_double_fixture(first, second):
assert False, '{} {}'.format(first, second)
Однако этот подход разваливается, если параметризация происходит из зависимого устройства:
import pytest
@pytest.fixture(params=[0, 1, 2])
def integer(request):
return request.param
@pytest.fixture
def squared_integer(integer):
return integer * integer
@pytest.fixture
def first(squared_integer):
return squared_integer
second = first
# runs only 3 times
def test_double_fixture(first, second):
assert False, '{} {}'.format(first, second)
Как я могу выполнить этот тест 3х3, как это делает простой пример?