Skip to content

pytest-duplicate-parametrize-test-cases (PT014)

Derived from the flake8-pytest-style linter.

Fix is sometimes available.

What it does

Checks for duplicate test cases in pytest.mark.parametrize.

Why is this bad?

Duplicate test cases are redundant and should be removed.

Example

import pytest


@pytest.mark.parametrize(
    ("param1", "param2"),
    [
        (1, 2),
        (1, 2),
    ],
)
def test_foo(param1, param2): ...

Use instead:

import pytest


@pytest.mark.parametrize(
    ("param1", "param2"),
    [
        (1, 2),
    ],
)
def test_foo(param1, param2): ...

Fix safety

This rule's fix is marked as unsafe, as tests that rely on mutable global state may be affected by removing duplicate test cases.

References