from pathlib import Path import pytest def test_no_op_without_registry(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.chdir(tmp_path) (tmp_path / "test_zz.py").write_text( "def test_b(): pass\ndef test_a(): pass\n", encoding="utf-8" ) from pytest_collection_order import sort_items_by_order items = [] result = sort_items_by_order(items, registry_path=tmp_path / "reg.toml") assert result == items def test_sorts_by_order_index(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.chdir(tmp_path) (tmp_path / "test_zz.py").write_text( "def test_b(): pass\ndef test_a(): pass\n", encoding="utf-8" ) reg = tmp_path / "reg.toml" reg.write_text( "[[files.test_zz.test_order]]\n" "test_id = 'test_zz::test_b'\n" "order = 1\n" "[[files.test_zz.test_order]]\n" "test_id = 'test_zz::test_a'\n" "order = 2\n", encoding="utf-8", ) class _Item: def __init__(self, nodeid: str) -> None: self.nodeid = nodeid def __repr__(self) -> str: return f"_Item({self.nodeid!r})" items = [_Item("test_zz::test_b"), _Item("test_zz::test_a")] from pytest_collection_order import sort_items_by_order result = sort_items_by_order(items, registry_path=reg) assert [i.nodeid for i in result] == ["test_zz::test_b", "test_zz::test_a"]