Как я могу использовать параметризованный зависимый прибор дважды в pytest? - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь использовать параметризованный прибор несколько раз в одном тесте с намерением получить декартово произведение всех его значений.

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, как это делает простой пример?

...