pytest — объединить фикстуры в один фикстур

Я хотел бы иметь три светильника. Они используются для настройки конфигураций тестов и указывают, какие тесты используют какие конфигурации.

Должны быть три фикстуры: release_configs dev_configs all_configs

Если в тесте используется фикстура «all_configs», она будет тестироваться для каждого запуска сеанса конфигурации. Если в тесте используется фикстура "dev_configs", он будет протестирован только для некоторого подмножества. Если в тесте используется фикстура «release_configs», он будет протестирован только для какого-то другого подмножества.

all_configs содержит сумму dev и release.

Это возможно?

Вот что у меня есть для all_configs:

    @pytest.fixture(autouse=False, scope="session", params=release_configs_to_test+dev_configs_to_test, ids=release_configs_to_test+dev_configs_to_test)
    def all_configs(self, request):
        name = request.param
        print('config fixture called')
        self._setup_config(name)
        yield name

Где release_configs_to_test и dev_configs_to_test — это просто списки строк (имя конфигурации)

РЕДАКТИРОВАТЬ:

Похоже, проблема аналогична связыванию фикстур pytest, которая не решена.

Однако этот вопрос пытается отфильтровать приборы, а я пытаюсь их объединить.

Однако любой из этих вариантов будет работать.


person Daniel Paczuski Bak    schedule 26.02.2020    source источник