manage force_store_value with dynoption

This commit is contained in:
2021-04-03 20:24:27 +02:00
parent 3b1dccd844
commit f7721a9775
6 changed files with 125 additions and 26 deletions

View File

@ -260,9 +260,32 @@ async def test_prop_dyndescription_force_store_value():
dod = DynOptionDescription('dod', '', [st], suffixes=Calculation(return_list))
od = OptionDescription('od', '', [dod])
od2 = OptionDescription('od', '', [od])
with pytest.raises(ConfigError):
await Config(od2, session_id='error')
await delete_session('error')
async with await Config(od2) as cfg:
await cfg.property.read_write()
assert await cfg.value.dict() == {'od.dodval1.stval1': None, 'od.dodval2.stval2': None}
assert not await list_sessions()
@pytest.mark.asyncio
async def test_prop_dyndescription_force_store_value_calculation_prefix():
print()
lst = StrOption('lst', '', ['val1', 'val2'], multi=True)
st = StrOption('st', '', Calculation(return_list, Params(ParamSuffix())) , properties=('force_store_value',))
dod = DynOptionDescription('dod', '', [st], suffixes=Calculation(return_list, Params(ParamOption(lst))))
od = OptionDescription('od', '', [dod, lst])
od2 = OptionDescription('od', '', [od])
async with await Config(od2) as cfg:
await cfg.property.read_write()
assert await cfg.option('od.dodval1.stval1').owner.isdefault() == False
assert await cfg.option('od.dodval2.stval2').owner.isdefault() == False
assert await cfg.value.dict() == {'od.lst': ['val1', 'val2'], 'od.dodval1.stval1': 'val1', 'od.dodval2.stval2': 'val2'}
#
await cfg.option('od.lst').value.set(['val1', 'val2', 'val3'])
assert await cfg.option('od.dodval3.stval3').owner.isdefault() == False
assert await cfg.option('od.dodval1.stval1').owner.isdefault() == False
assert await cfg.option('od.dodval2.stval2').owner.isdefault() == False
assert await cfg.value.dict() == {'od.lst': ['val1', 'val2', 'val3'], 'od.dodval1.stval1': 'val1', 'od.dodval2.stval2': 'val2', 'od.dodval3.stval3': 'val3'}
assert not await list_sessions()