diff --git a/reframe/core/meta.py b/reframe/core/meta.py index 1d2aa75afc..4934d9a4da 100644 --- a/reframe/core/meta.py +++ b/reframe/core/meta.py @@ -433,7 +433,8 @@ def __call__(cls, *args, **kwargs): # the init phase varinfo = cls.get_variant_info(variant_num, recurse=True) for fname, finfo in varinfo['fixtures'].items(): - if not isinstance(finfo, tuple): + fixt = cls.fixture_space[fname] + if fixt.action != 'join': setattr(obj, fname, fixtures.FixtureProxy(finfo)) obj.__init__(*args, **kwargs) diff --git a/reframe/core/pipeline.py b/reframe/core/pipeline.py index eb783a21bc..24ff6de1b7 100644 --- a/reframe/core/pipeline.py +++ b/reframe/core/pipeline.py @@ -1146,11 +1146,10 @@ def _format_params(cls, info, prefix=' %'): name += f'{prefix}{p}={format_fn(v)}' for f, v in info['fixtures'].items(): - if isinstance(v, tuple): - # This is join fixture + fixt = cls.fixture_space[f] + if fixt.action == 'join': continue - fixt = cls.fixture_space[f] name += _format_params(fixt.cls, v, f'{prefix}{f}.') # Append any variables set for the fixtures diff --git a/unittests/test_fixtures.py b/unittests/test_fixtures.py index f9160a5ac7..81431ddd5b 100644 --- a/unittests/test_fixtures.py +++ b/unittests/test_fixtures.py @@ -202,7 +202,6 @@ class FooB(rfm.RegressionTest): class Bar(rfm.RegressionTest): f = fixture(FooB, variables={'z': 5}) - w = fixture(FooB, action='join') valid_systems = ['*'] valid_prog_environs = ['*'] @@ -211,7 +210,6 @@ class Bar(rfm.RegressionTest): def early_access(self): assert self.f.foo.x == 1 assert self.f.y == 2 - assert self.w.y == 2 Bar(variant_num=0)