/
niceSOFT
/
python3-pytest
Обзор
Документация
Войти
/
niceSOFT
/
python3-pytest
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
testing/example_scripts/issue_519.py
54 строки
1 KB
Zac Hatfield-Dodds
fixtures: reorder parametrized tests by param value, not index (#14746)
27 июл 2026, 21:02
Не верифицирован
27 июл 2026, 21:02
d02c362
Код
Авторство
О чём код?
# mypy: allow-untyped-defs from __future__ import annotations import pprint import pytest def pytest_generate_tests(metafunc): if "arg1" in metafunc.fixturenames: metafunc.parametrize("arg1", ["arg1v1", "arg1v2"], scope="module") if "arg2" in metafunc.fixturenames: metafunc.parametrize("arg2", ["arg2v1", "arg2v2"], scope="function") @pytest.fixture(scope="session") def checked_order(): order: list[tuple[str, str, str]] = [] yield order pprint.pprint(order) assert order == [ ("issue_519.py", "fix1", "arg1v1"), ("test_one[arg1v1-arg2v1]", "fix2", "arg2v1"), ("test_one[arg1v1-arg2v2]", "fix2", "arg2v2"), ("test_two[arg1v1-arg2v1]", "fix2", "arg2v1"), ("test_two[arg1v1-arg2v2]", "fix2", "arg2v2"), ("issue_519.py", "fix1", "arg1v2"), ("test_one[arg1v2-arg2v1]", "fix2", "arg2v1"), ("test_one[arg1v2-arg2v2]", "fix2", "arg2v2"), ("test_two[arg1v2-arg2v1]", "fix2", "arg2v1"), ("test_two[arg1v2-arg2v2]", "fix2", "arg2v2"), ] @pytest.fixture(scope="module") def fix1(request, arg1, checked_order): checked_order.append((request.node.name, "fix1", arg1)) yield "fix1-" + arg1 @pytest.fixture(scope="function") def fix2(request, fix1, arg2, checked_order): checked_order.append((request.node.name, "fix2", arg2)) yield "fix2-" + arg2 + fix1 def test_one(fix2): pass def test_two(fix2): pass