From b84d70b0f1e440b352c3236ffc0c48f04bd31814 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Thu, 23 Jan 2020 19:53:22 +0100 Subject: [PATCH] _dependee_fixture_argnames: return tuple Note: black cannot parse `return *active_fixture_argnames, *self.argnames` yet (fixed in master, https://github.com/psf/black/pull/1121). Tested manually using: ```python @pytest.fixture(scope="session") def xdist_suffix(request): print("\nxdist_suffix") suffixes.append("xdist") @pytest.fixture(scope="session") def parallel_suffix(tox_suffix, xdist_suffix): pass def test_suffix(parallel_suffix): assert suffixes == ["tox", "xdist"] ``` When using a set there the order is not deterministic, i.e. the test is flaky. --- src/_pytest/fixtures.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_pytest/fixtures.py b/src/_pytest/fixtures.py index 3a0ff1e3e01..d2e4e6d3313 100644 --- a/src/_pytest/fixtures.py +++ b/src/_pytest/fixtures.py @@ -963,7 +963,7 @@ def _dependee_fixture_argnames(self, request): stack_slice_index = min([current_fix_index, *parent_fixture_indexes]) active_fixture_argnames = all_fix_names[:stack_slice_index] - return {*active_fixture_argnames, *self.argnames} + return tuple(active_fixture_argnames) + self.argnames def cache_key(self, request): return request.param_index if not hasattr(request, "param") else request.param