def test_assign_to_interpolation() -> None: cfg = OmegaConf.create({ "foo": 10, "bar": "${foo}", "typed_bar": IntegerNode("${foo}") }) assert OmegaConf.is_interpolation(cfg, "bar") assert cfg.bar == 10 assert cfg.typed_bar == 10 # assign regular field cfg.bar = 20 assert not OmegaConf.is_interpolation(cfg, "bar") with pytest.raises(ValidationError): cfg.typed_bar = "nope" cfg.typed_bar = 30 assert cfg.foo == 10 assert cfg.bar == 20 assert cfg.typed_bar == 30
def verify( cfg: Any, key: Any, none: bool, opt: bool, missing: bool, inter: bool, exp: Any = SKIP, ) -> None: target_node = cfg._get_node(key) assert target_node._key() == key assert target_node._is_none() == none assert target_node._is_optional() == opt assert target_node._is_missing() == missing assert target_node._is_interpolation() == inter if exp is not SKIP: assert cfg.get(key) == exp assert OmegaConf.is_missing(cfg, key) == missing assert OmegaConf.is_none(cfg, key) == none assert OmegaConf.is_optional(cfg, key) == opt assert OmegaConf.is_interpolation(cfg, key) == inter
def test_merge_with_other_as_interpolation(merge: Any, dst: Any, other: Any, node: Any) -> None: res = merge(dst, other) assert OmegaConf.is_interpolation(res, node)