Skip to content

pytest-fixture-param-without-value (PT019)#

Derived from the flake8-pytest-style linter.

What it does#

Checks for pytest test functions that should be decorated with @pytest.mark.usefixtures.

Why is this bad?#

In pytest, fixture injection is used to activate fixtures in a test function.

Fixtures can be injected either by passing them as parameters to the test function, or by using the @pytest.mark.usefixtures decorator.

If the test function depends on the fixture being activated, but does not use it in the test body or otherwise rely on its return value, prefer the @pytest.mark.usefixtures decorator, to make the dependency explicit and avoid the confusion caused by unused arguments.

Example#

import pytest


@pytest.fixture
def _patch_something():
    ...


def test_foo(_patch_something):
    ...

Use instead:

import pytest


@pytest.fixture
def _patch_something():
    ...


@pytest.mark.usefixtures("_patch_something")
def test_foo():
    ...

References#