/
githubmirror
/
salt
Обзор
Документация
Войти
/
githubmirror
/
salt
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/pytests/functional/conftest.py
153 строки
4 KB
Daniel Wozniak
Merge pull request #66818 from vzhestkov/better-error-handling-x509
14 янв 2026, 00:27
14 янв 2026, 00:27
24304c2
Код
Авторство
О чём код?
import logging import shutil import sys import pytest from saltfactories.utils.functional import Loaders log = logging.getLogger(__name__) @pytest.fixture(scope="package") def minion_id(): return "func-tests-minion-opts" @pytest.fixture(scope="module") def state_tree(tmp_path_factory): state_tree_path = tmp_path_factory.mktemp("state-tree-base") try: yield state_tree_path finally: shutil.rmtree(str(state_tree_path), ignore_errors=True) @pytest.fixture(scope="module") def state_tree_prod(tmp_path_factory): state_tree_path = tmp_path_factory.mktemp("state-tree-prod") try: yield state_tree_path finally: shutil.rmtree(str(state_tree_path), ignore_errors=True) @pytest.fixture(scope="module") def minion_config_defaults(): """ Functional test modules can provide this fixture to tweak the default configuration dictionary passed to the minion factory """ return {} @pytest.fixture(scope="module") def minion_config_overrides(): """ Functional test modules can provide this fixture to tweak the configuration overrides dictionary passed to the minion factory """ return {} @pytest.fixture(scope="module") def minion_opts( salt_factories, minion_id, state_tree, state_tree_prod, minion_config_defaults, minion_config_overrides, ): minion_config_overrides.update( { "file_client": "local", "file_roots": { "base": [ str(state_tree), ], "prod": [ str(state_tree_prod), ], }, "lazy_loader_strict_matching": True, } ) if sys.platform.startswith("win"): # We need to set up winrepo on Windows minion_config_overrides.update( { "winrepo_source_dir": "salt://winrepo_ng", "winrepo_dir_ng": str(state_tree / "winrepo_ng"), "winrepo_dir": str(state_tree / "winrepo"), } ) factory = salt_factories.salt_minion_daemon( minion_id, defaults=minion_config_defaults or None, overrides=minion_config_overrides, ) return factory.config.copy() @pytest.fixture(scope="module") def master_config_defaults(): """ Functional test modules can provide this fixture to tweak the default configuration dictionary passed to the master factory """ return {} @pytest.fixture(scope="module") def master_config_overrides(): """ Functional test modules can provide this fixture to tweak the configuration overrides dictionary passed to the master factory """ return {} @pytest.fixture(scope="module") def master_opts( salt_factories, state_tree, state_tree_prod, master_config_defaults, master_config_overrides, ): master_config_overrides.update( { "file_client": "local", "file_roots": { "base": [ str(state_tree), ], "prod": [ str(state_tree_prod), ], }, } ) factory = salt_factories.salt_master_daemon( "func-tests-master-opts", defaults=master_config_defaults or None, overrides=master_config_overrides, ) return factory.config.copy() @pytest.fixture(scope="module") def loaders(minion_opts): return Loaders(minion_opts, loaded_base_name=f"{__name__}.loaded") @pytest.fixture(autouse=True) def reset_loaders_state(loaders): try: # Run the tests yield finally: # Reset the loaders state loaders.reset_state()