Compare commits
2 commits
be637e4e31
...
3fad16d0ac
| Author | SHA1 | Date | |
|---|---|---|---|
| 3fad16d0ac | |||
| e6b3e7c317 |
4 changed files with 12 additions and 5 deletions
|
|
@ -536,6 +536,10 @@ def test_callback_dyndescription_subdyn():
|
|||
cfg = Config(od2)
|
||||
cfg.property.read_write()
|
||||
assert parse_od_get(cfg.value.get()) == {'od.dod2val1.dodval1.st': 'val1', 'od.dod2val1.dodval2.st': 'val1', 'od.dod2val1.out': ['val1', 'val1'], 'od.dod2val2.dodval1.st': 'val1', 'od.dod2val2.dodval2.st': 'val1', 'od.dod2val2.out': ['val1', 'val1'], 'lst': ['val1', 'val2']}
|
||||
cfg.option('lst').value.set(["val1", "val3"])
|
||||
assert parse_od_get(cfg.value.get()) == {'od.dod2val1.dodval1.st': 'val1', 'od.dod2val1.dodval3.st': 'val1', 'od.dod2val1.out': ['val1', 'val1'], 'od.dod2val3.dodval1.st': 'val1', 'od.dod2val3.dodval3.st': 'val1', 'od.dod2val3.out': ['val1', 'val1'], 'lst': ['val1', 'val3']}
|
||||
cfg.option('lst').value.set(["val1", "val3", None])
|
||||
assert parse_od_get(cfg.value.get()) == {'od.dod2val1.dodval1.st': 'val1', 'od.dod2val1.dodval3.st': 'val1', 'od.dod2val1.out': ['val1', 'val1'], 'od.dod2val3.dodval1.st': 'val1', 'od.dod2val3.dodval3.st': 'val1', 'od.dod2val3.out': ['val1', 'val1'], 'lst': ['val1', 'val3', None]}
|
||||
|
||||
|
||||
def test_callback_list_dyndescription():
|
||||
|
|
|
|||
|
|
@ -275,6 +275,7 @@ class _TiramisuOptionWalk:
|
|||
validate_properties,
|
||||
uncalculated=uncalculated,
|
||||
with_index=with_index,
|
||||
check_dynamic_without_identifiers=False,
|
||||
):
|
||||
options.append(
|
||||
TiramisuOption(
|
||||
|
|
|
|||
|
|
@ -396,6 +396,7 @@ class SubConfig:
|
|||
*,
|
||||
uncalculated: bool = False,
|
||||
with_index: bool = True,
|
||||
check_dynamic_without_identifiers: bool = True,
|
||||
):
|
||||
if self.option.impl_is_leadership() and not uncalculated and with_index:
|
||||
yield from self.get_leadership_children(validate_properties)
|
||||
|
|
@ -426,8 +427,7 @@ class SubConfig:
|
|||
child,
|
||||
None,
|
||||
validate_properties,
|
||||
allow_dynoption=uncalculated,
|
||||
check_dynamic_without_identifiers=not uncalculated,
|
||||
check_dynamic_without_identifiers=check_dynamic_without_identifiers,
|
||||
)
|
||||
except PropertiesOptionError as err:
|
||||
if err.proptype in (["mandatory"], ["empty"]):
|
||||
|
|
@ -452,7 +452,6 @@ class SubConfig:
|
|||
validate_properties: bool,
|
||||
*,
|
||||
properties=undefined,
|
||||
allow_dynoption: bool = False,
|
||||
identifier: Optional[str] = None,
|
||||
name: Optional[str] = None,
|
||||
check_index: bool = True,
|
||||
|
|
@ -743,9 +742,11 @@ class _Config(CCache):
|
|||
len_path = len(paths) - 1
|
||||
for idx, name in enumerate(paths):
|
||||
if idx != len_path:
|
||||
check_dynamic_without_identifiers=True
|
||||
index_ = None
|
||||
true_path_ = None
|
||||
else:
|
||||
check_dynamic_without_identifiers=not allow_dynoption
|
||||
index_ = index
|
||||
true_path_ = true_path
|
||||
|
||||
|
|
@ -796,8 +797,7 @@ class _Config(CCache):
|
|||
name=name,
|
||||
identifier=identifier,
|
||||
true_path=true_path_,
|
||||
allow_dynoption=allow_dynoption,
|
||||
check_dynamic_without_identifiers=not allow_dynoption,
|
||||
check_dynamic_without_identifiers=check_dynamic_without_identifiers,
|
||||
)
|
||||
return subconfig
|
||||
|
||||
|
|
|
|||
|
|
@ -402,6 +402,8 @@ class Values:
|
|||
for option in options:
|
||||
parent = option.parent
|
||||
for identifier in identifier_values:
|
||||
if identifier is None:
|
||||
continue
|
||||
name = option.option.impl_getname(identifier)
|
||||
opt_subconfig = parent.get_child(
|
||||
option.option,
|
||||
|
|
|
|||
Loading…
Reference in a new issue