def test_sweep_config_cache(self, hydra_restore_singletons: Any, path: str, monkeypatch: Any) -> None: setup_globals() config_loader = ConfigLoaderImpl( config_search_path=create_config_search_path(path)) master_cfg = config_loader.load_configuration( config_name="config.yaml", strict=False, overrides=["time='${now:%H-%M-%S}'", "home='${env:HOME}'"], run_mode=RunMode.RUN, ) # trigger resolution by type assertion assert type(master_cfg.time) == str assert type(master_cfg.home) == str master_cfg_cache = OmegaConf.get_cache(master_cfg) assert "now" in master_cfg_cache.keys( ) and "env" in master_cfg_cache.keys() assert master_cfg.home == os.environ["HOME"] sweep_cfg = config_loader.load_sweep_config( master_config=master_cfg, sweep_overrides=["time='${now:%H-%M-%S}'", "home='${env:HOME}'"], ) sweep_cfg_cache = OmegaConf.get_cache(sweep_cfg) assert len( sweep_cfg_cache.keys()) == 1 and "now" in sweep_cfg_cache.keys() assert sweep_cfg_cache["now"] == master_cfg_cache["now"] monkeypatch.setenv("HOME", "/another/home/dir/") assert sweep_cfg.home == os.getenv("HOME")
def test_sweep_config_cache(self, hydra_restore_singletons: Any, path: str, monkeypatch: Any) -> None: setup_globals() monkeypatch.setenv("TEST_ENV", "test_env") config_loader = ConfigLoaderImpl( config_search_path=create_config_search_path(path)) master_cfg = config_loader.load_configuration( config_name="config.yaml", overrides=[ "+time=${now:%H-%M-%S}", "+test_env=${oc.env:TEST_ENV}" ], run_mode=RunMode.RUN, ) # trigger resolution by type assertion assert type(master_cfg.time) == str assert type(master_cfg.test_env) == str master_cfg_cache = OmegaConf.get_cache(master_cfg) assert "now" in master_cfg_cache.keys() # oc.env is not cached as of OmegaConf 2.1 assert "oc.env" not in master_cfg_cache.keys() assert master_cfg.test_env == "test_env" sweep_cfg = config_loader.load_sweep_config( master_config=master_cfg, sweep_overrides=[ "+time=${now:%H-%M-%S}", "+test_env=${oc.env:TEST_ENV}" ], ) sweep_cfg_cache = OmegaConf.get_cache(sweep_cfg) assert len( sweep_cfg_cache.keys()) == 1 and "now" in sweep_cfg_cache.keys() assert sweep_cfg_cache["now"] == master_cfg_cache["now"] monkeypatch.setenv("TEST_ENV", "test_env2") assert sweep_cfg.test_env == "test_env2"