Ruff pytest-parametrize-values-wrong-type (PT007)

pytest-parametrize-values-wrong-type в Ruff проверяет код на предупреждение PT007. Правило относится к группе flake8-pytest-style.

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

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

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила pytest-parametrize-values-wrong-type и пример ниже.

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

import pytest


# expected list, got tuple
@pytest.mark.parametrize("param", (1, 2))
def test_foo(param): ...


# expected top-level list, got tuple
@pytest.mark.parametrize(
    ("param1", "param2"),
    (
        (1, 2),
        (3, 4),
    ),
)
def test_bar(param1, param2): ...


# expected individual rows to be tuples, got lists
@pytest.mark.parametrize(
    ("param1", "param2"),
    [
        [1, 2],
        [3, 4],
    ],
)
def test_baz(param1, param2): ...

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

import pytest


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


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

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

Ruff может предложить автоисправление в некоторых случаях.