Параметризованная зависимость Pytest - PullRequest
0 голосов
/ 13 июня 2018

У меня есть функция и тест

def foo(a):
    return bar(a)

@pytest.mark.parametrize(
  'number',
    [1,2,3]
)
@pytest.mark.dependency
def test_foo(number):
    assert foo(number) > SOME_CONST # Simplistic example, real case is more nuanced

Я использую pytest и модуль pytest_dependency.foo - это функция, используемая в ряде других тестов.У меня есть функция, для которой я хочу воспроизвести зависимость от test_foo, приведенный ниже код не работает:

@pytest.mark.dependency(depends=['test_foo'])
@pytest.mark.parametrize(
    'param',
    itertools.permutations(['a','b','c','d','e'],2),
    ids=repr,
)

def test_bar(param):
    ...
    important_result = foo(param)
    ...

Теория состоит в том, что если test_foo не удастся, то test_bar будет пропущен,Однако, когда я параметризирую test_bar, каждый экземпляр test_bar пропускается независимо от результата test_foo.

Для пояснения этот код работает должным образом (test_bar не пропускается):

@pytest.mark.dependency(depends=['test_foo'])
def test_bar():
    param = some_fnc(['a', 'b'])
    ...
    important_result = foo(param)
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...