manage force_store_value with dynoption
This commit is contained in:
@ -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()
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user