У меня есть тестовая функция pytest с несколькими строками @ pytest.mark.parametrize. Значения для каждой параметризованной переменной могут принимать либо 0, либо 1. Некоторые из сгенерированных комбинаций не могут произойти, и их следует пропустить, например, в моем примере, когда субконтакт принимает значение 0, а когда ускоренный трек принимает значение 1, его следует пропускать. Возможно ли добиться этого с помощью фикстуры multiple @ pytest.mark.parametrize?
Я попытался сделать это с помощью приведенного ниже кода, но при запуске тестов не отмечалось, что тесты пропущены.
@pytest.mark.parametrize('prospect', [0, 1])
@pytest.mark.parametrize('client', [0, 1])
@pytest.mark.parametrize('subcontact', [0, 1])
@pytest.mark.parametrize('default', [0, 1])
@pytest.mark.parametrize('primary_contact', [0, 1])
@pytest.mark.parametrize('fast_track', [0, pytest.param(1, marks=pytest.mark.skipif('subcontact' == 0,
reason='Cannot happen'))])
def test_prospect_registration(prospect, client, subcontact, default,
primary_contact,
fast_track):
pass