Воспользуйтесь преимуществом демонтажа прибора , используя оператор yield
вместо return
. Это позволяет вам настроить базу данных, вернуть любые данные, если вы хотите, а затем выполнить любую очистку. Если вы хотите, чтобы это выполнялось для каждого теста, независимо от того, была ли функция теста объявлять использование прибора или нет, установите autouse
на True
.
@pytest.fixture(autouse=False)
def db():
# Setup DB here
# Yield some data, database connection or nothing at all
yield None
# Delete DB here when the test ends
def test_something(db):
# Database will be ready here and db will contain whatever
# db() function yields. With autouse=True you don't need to
# set the db fixture as the function param.
pass