Ruff pytest-useless-yield-fixture (PT022)

pytest-useless-yield-fixture в Ruff проверяет код на предупреждение PT022. Правило относится к группе flake8-pytest-style.

Почему это неправильно

Единый стиль pytest-тестов делает проверки короче, понятнее и устойчивее к ошибкам.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила pytest-useless-yield-fixture и пример ниже.

Пример ошибки

import pytest


@pytest.fixture()
def my_fixture():
    resource = acquire_resource()
    yield resource

Как правильно

import pytest


@pytest.fixture()
def my_fixture_with_teardown():
    resource = acquire_resource()
    yield resource
    resource.release()


@pytest.fixture()
def my_fixture_without_teardown():
    resource = acquire_resource()
    return resource

Автоисправление

Ruff всегда может предложить автоисправление для этого правила.