Python для продвинутых: ООП, типизация и тестированиеОткрытые материалыFixtures в pytest: подготовка данных и scope
Fixtures в pytest: подготовка данных и scope
Уроки курсаFixtures в pytest: подготовка данных и scope
Cleanup через yield
Код до yield создаёт ресурс, значение после yield получает тест, а блок после него выполняет очистку даже при падении проверки.
@pytest.fixture
def temp_record(repository):
record = repository.create("draft")
yield record
repository.delete(record.id)
Критичную очистку можно дополнительно защитить try/finally. Для файлов чаще уже есть встроенная fixture tmp_path, для подмены окружения — monkeypatch.
Fixture может зависеть от другой fixture. Слишком глубокий неочевидный граф усложняет тест: если по имени параметра нельзя понять, что он создаёт, разбейте setup на более явные части.
0 / 0
К странице курса0 / 0
К странице курса