Python для продвинутых: ООП, типизация и тестированиеОткрытые материалыFixtures в pytest: подготовка данных и scope

Fixtures в pytest: подготовка данных и scope

Уроки курсаFixtures в pytest: подготовка данных и scope

Scope и изоляция

По умолчанию scope равен function: новый экземпляр создаётся для каждого теста. class, module, package и session уменьшают стоимость дорогого setup, но увеличивают риск общего изменяемого состояния.

Session-scoped база или сервер могут быть общими, а данные внутри них лучше изолировать транзакцией, уникальным namespace или очисткой. Порядок тестов не должен влиять на результат.

Autouse-fixtures применяются без явного параметра и поэтому легко создают магию. Используйте их для действительно глобального инварианта, например запрета реальных сетевых запросов, а обычные предметные данные подключайте явно. Хорошая fixture делает зависимость теста видимой.