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()
|
||||
with pytest.raises(ConflictError):
|
||||
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
|
||||
):
|
||||
raise err from err
|
||||
raise ConfigError(err, subconfig=subconfig)
|
||||
raise ConfigError(str(err), subconfig=subconfig) from err
|
||||
except ValueError as err:
|
||||
display_name = subconfig.option.impl_get_display_name(
|
||||
subconfig, with_quote=True
|
||||
|
|
@ -751,6 +751,7 @@ def manager_callback(
|
|||
)
|
||||
)
|
||||
else:
|
||||
try:
|
||||
new_parents.append(
|
||||
parent.get_child(
|
||||
doption,
|
||||
|
|
@ -759,13 +760,19 @@ def manager_callback(
|
|||
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
|
||||
|
||||
if subconfigs_is_a_list:
|
||||
subconfigs = parents
|
||||
else:
|
||||
subconfigs = parents[0]
|
||||
|
||||
else:
|
||||
search_option = param.option
|
||||
subconfigs = subconfig.get_common_child(
|
||||
|
|
|
|||
Loading…
Reference in a new issue