fix: ParamDynOption with disabled properties
This commit is contained in:
parent
dc1aba2ce9
commit
3ed96ef2ad
2 changed files with 29 additions and 10 deletions
|
|
@ -3130,3 +3130,15 @@ def test_dynoption_duplicate_5():
|
||||||
cfg.value.get()
|
cfg.value.get()
|
||||||
with pytest.raises(ConflictError):
|
with pytest.raises(ConflictError):
|
||||||
cfg.option('od.od_val').value.get()
|
cfg.option('od.od_val').value.get()
|
||||||
|
|
||||||
|
|
||||||
|
def test_dyn_disabled():
|
||||||
|
var1 = StrOption("var1", "var1", default=["val1", "val2"], multi=True)
|
||||||
|
var = StrOption("var", "var", properties=frozenset({"disabled"}))
|
||||||
|
dyn = DynOptionDescription("dyn", "dyn", identifiers=Calculation(calc_value, Params((ParamOption(var1)))), children=[var])
|
||||||
|
var2 = StrOption(name="var2", doc="A variable calculated", default=Calculation(calc_value, Params((ParamDynOption(var, ["val1"])))))
|
||||||
|
od = OptionDescription('od', '', [var1, dyn, var2])
|
||||||
|
cfg = Config(od)
|
||||||
|
cfg.property.read_write()
|
||||||
|
with pytest.raises(ConfigError):
|
||||||
|
cfg.value.get()
|
||||||
|
|
|
||||||
|
|
@ -462,7 +462,7 @@ def manager_callback(
|
||||||
or param.raisepropertyerror
|
or param.raisepropertyerror
|
||||||
):
|
):
|
||||||
raise err from err
|
raise err from err
|
||||||
raise ConfigError(err, subconfig=subconfig)
|
raise ConfigError(str(err), subconfig=subconfig) from err
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
display_name = subconfig.option.impl_get_display_name(
|
display_name = subconfig.option.impl_get_display_name(
|
||||||
subconfig, with_quote=True
|
subconfig, with_quote=True
|
||||||
|
|
@ -751,21 +751,28 @@ def manager_callback(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
new_parents.append(
|
try:
|
||||||
parent.get_child(
|
new_parents.append(
|
||||||
doption,
|
parent.get_child(
|
||||||
None,
|
doption,
|
||||||
True,
|
None,
|
||||||
name=name,
|
True,
|
||||||
|
name=name,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
except PropertiesOptionError as err:
|
||||||
|
# raise PropertiesOptionError (which is catched) because must not add value None in carry_out_calculation
|
||||||
|
if (
|
||||||
|
param.notraisepropertyerror
|
||||||
|
or param.raisepropertyerror
|
||||||
|
):
|
||||||
|
raise err from err
|
||||||
|
raise ConfigError(str(err), subconfig=subconfig) from err
|
||||||
parents = new_parents
|
parents = new_parents
|
||||||
|
|
||||||
if subconfigs_is_a_list:
|
if subconfigs_is_a_list:
|
||||||
subconfigs = parents
|
subconfigs = parents
|
||||||
else:
|
else:
|
||||||
subconfigs = parents[0]
|
subconfigs = parents[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
search_option = param.option
|
search_option = param.option
|
||||||
subconfigs = subconfig.get_common_child(
|
subconfigs = subconfig.get_common_child(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue