Этот вопрос похож на Как параметризовать прибор Pytest , но я бы хотел go сделать шаг вперед. Вот что у меня есть:
import pytest
class TimeLine:
def __init__(self, s, instances=[0, 0, 0]):
self.s = s
self.instances = instances
@pytest.fixture(params=[
('foo', [0, 2, 4, 0, 6]),
('bar', [2, 5]),
('hello', [6, 8, 10])
])
def timeline(request):
return TimeLine(request.param[0], request.param[1])
Это работает
def test_timeline(timeline):
for instance in timeline.instances:
assert instance % 2 == 0
Я хотел бы создать параметризованный тест для длины instances
.
@pytest.mark.parametrize('length', [
(5), (1), (3)
])
def test_timeline(length, timeline):
assert len(timeline.instances) == length
Должно быть 3 теста. Первый и последний тесты должны пройти. Второй тест должен провалиться. Как бы я настроил тест для этого?