Ruff pytest-fixture-finalizer-callback (PT021)
pytest-fixture-finalizer-callback в Ruff проверяет код на предупреждение PT021. Правило относится к группе flake8-pytest-style.
Почему это неправильно
Единый стиль pytest-тестов делает проверки короче, понятнее и устойчивее к ошибкам.
Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила pytest-fixture-finalizer-callback и пример ниже.
Пример ошибки
import pytest
@pytest.fixture()
def my_fixture(request):
resource = acquire_resource()
request.addfinalizer(resource.release)
return resource
Как правильно
import pytest
@pytest.fixture()
def my_fixture():
resource = acquire_resource()
yield resource
resource.release()
# "factory-as-fixture" pattern
@pytest.fixture()
def my_factory(request):
def create_resource(arg):
resource = acquire_resource(arg)
request.addfinalizer(resource.release)
return resource
return create_resource
Автоисправление
Ruff не предлагает автоисправление для этого правила.
