force_store_value is now used directly when configuration is loaded
This commit is contained in:
@ -3,11 +3,13 @@
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import owners
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.setting import owners, groups
|
||||
from tiramisu.option import ChoiceOption, BoolOption, IntOption, FloatOption, \
|
||||
StrOption, OptionDescription
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.error import PropertiesOptionError
|
||||
from tiramisu.error import PropertiesOptionError, ConfigError
|
||||
|
||||
|
||||
#____________________________________________________________
|
||||
@ -38,6 +40,18 @@ def make_description_freeze():
|
||||
return descr
|
||||
|
||||
|
||||
def return_val():
|
||||
return 1
|
||||
|
||||
|
||||
def return_val2(value):
|
||||
return value
|
||||
|
||||
|
||||
def return_val3(context, value):
|
||||
return value
|
||||
|
||||
|
||||
def test_freeze_whole_config():
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
@ -155,9 +169,17 @@ def test_freeze_get_multi():
|
||||
def test_force_store_value():
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.wantref
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref': ('user', False)}
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref': ('forced', False),
|
||||
'wantref2': ('forced', False),
|
||||
'wantref3': ('forced', [False])}
|
||||
conf.wantref = True
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref': ('user', True),
|
||||
'wantref2': ('forced', False),
|
||||
'wantref3': ('forced', [False])}
|
||||
del(conf.wantref)
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref': ('forced', False),
|
||||
'wantref2': ('forced', False),
|
||||
'wantref3': ('forced', [False])}
|
||||
|
||||
|
||||
def test_force_store_value_no_requirement():
|
||||
@ -169,87 +191,47 @@ def test_force_store_value_no_requirement():
|
||||
pass
|
||||
|
||||
|
||||
def test_force_store_value_ro():
|
||||
descr = make_description_freeze()
|
||||
def test_force_store_value_masterslaves_slave():
|
||||
b = IntOption('int', 'Test int option', multi=True)
|
||||
c = StrOption('str', 'Test string option', multi=True, properties=('force_store_value',))
|
||||
descr = OptionDescription("int", "", [b, c])
|
||||
descr.impl_set_group_type(groups.master)
|
||||
raises(ConfigError, "conf = Config(descr)")
|
||||
|
||||
|
||||
def test_force_store_value_masterslaves():
|
||||
b = IntOption('int', 'Test int option', multi=True, properties=('force_store_value',))
|
||||
c = StrOption('str', 'Test string option', multi=True)
|
||||
descr = OptionDescription("int", "", [b, c])
|
||||
descr.impl_set_group_type(groups.master)
|
||||
conf = Config(descr)
|
||||
conf.read_only()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.wantref
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref': ('user', False)}
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'int': ('forced', [])}
|
||||
|
||||
|
||||
def test_force_store_value_hidden():
|
||||
descr = make_description_freeze()
|
||||
def test_force_store_value_callback():
|
||||
b = IntOption('int', 'Test int option', properties=('force_store_value',), callback=return_val)
|
||||
descr = OptionDescription("int", "", [b])
|
||||
conf = Config(descr)
|
||||
conf.cfgimpl_get_settings().setpermissive(('hidden',))
|
||||
conf.read_write()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.getattr('wantref2', force_permissive=True)
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref2': ('user', False)}
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'int': ('forced', 1)}
|
||||
|
||||
|
||||
def test_force_store_value_owner():
|
||||
descr = make_description_freeze()
|
||||
def test_force_store_value_callback_params():
|
||||
b = IntOption('int', 'Test int option', properties=('force_store_value',), callback=return_val2, callback_params={'value': (2,)})
|
||||
descr = OptionDescription("int", "", [b])
|
||||
conf = Config(descr)
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.getowner(conf.unwrap_from_path('wantref'))
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref': ('user', False)}
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'int': ('forced', 2)}
|
||||
|
||||
|
||||
def test_force_store_value_owner_ro():
|
||||
descr = make_description_freeze()
|
||||
def test_force_store_value_callback_params_2():
|
||||
b = IntOption('int', 'Test int option', properties=('force_store_value',), callback=return_val3, callback_params={'': ((None,),), 'value': (2,)})
|
||||
descr = OptionDescription("int", "", [b])
|
||||
conf = Config(descr)
|
||||
conf.read_only()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.getowner(conf.unwrap_from_path('wantref'))
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref': ('user', False)}
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'int': ('forced', 2)}
|
||||
|
||||
|
||||
def test_force_store_value_owner_hidden():
|
||||
descr = make_description_freeze()
|
||||
def test_force_store_value_callback_params_with_opt():
|
||||
a = IntOption('val1', "", 2)
|
||||
b = IntOption('int', 'Test int option', properties=('force_store_value',), callback=return_val2, callback_params={'value': ((a, False),)})
|
||||
descr = OptionDescription("int", "", [a, b])
|
||||
conf = Config(descr)
|
||||
conf.cfgimpl_get_settings().setpermissive(('hidden',))
|
||||
conf.read_write()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.getowner(conf.unwrap_from_path('wantref2'), force_permissive=True)
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'wantref2': ('user', False)}
|
||||
|
||||
|
||||
def test_force_store_value_modified():
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.cfgimpl_get_values().get_modified_values()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {
|
||||
'wantref': ('user', False), 'wantref2': ('user', False),
|
||||
'wantref3': ('user', [False])}
|
||||
|
||||
|
||||
def test_force_store_value_modified_ro():
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
conf.read_only()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.cfgimpl_get_values().get_modified_values()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {
|
||||
'wantref': ('user', False), 'wantref2': ('user', False),
|
||||
'wantref3': ('user', [False])}
|
||||
|
||||
|
||||
def test_force_store_value_modified_hidden():
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
conf.cfgimpl_get_settings().setpermissive(('hidden',))
|
||||
conf.read_write()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {}
|
||||
conf.cfgimpl_get_values().get_modified_values()
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {
|
||||
'wantref': ('user', False), 'wantref2': ('user', False),
|
||||
'wantref3': ('user', [False])}
|
||||
|
||||
|
||||
def test_force_store_value_multi():
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
conf.read_write()
|
||||
assert conf.getowner(conf.unwrap_from_path('wantref3')) == 'user'
|
||||
assert conf.cfgimpl_get_values()._p_.get_modified_values() == {'int': ('forced', 2)}
|
||||
|
Reference in New Issue
Block a user