f option is frozen with force_default_on_freeze property, owner must be 'default' check property when tried to change owner
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
"frozen and hidden values"
|
||||
import autopath
|
||||
|
||||
from tiramisu.setting import owners
|
||||
from tiramisu.option import ChoiceOption, BoolOption, IntOption, FloatOption, \
|
||||
StrOption, OptionDescription
|
||||
from tiramisu.config import Config
|
||||
@ -52,6 +53,14 @@ def test_freeze_whole_config():
|
||||
setting.remove('everything_frozen')
|
||||
conf.gc.dummy = True
|
||||
assert conf.gc.dummy is True
|
||||
setting.append('everything_frozen')
|
||||
owners.addowner("everythingfrozen")
|
||||
prop = []
|
||||
try:
|
||||
conf.cfgimpl_get_values().setowner(descr.gc.dummy, owners.everythingfrozen)
|
||||
except PropertiesOptionError as err:
|
||||
prop = err.proptype
|
||||
assert 'frozen' in prop
|
||||
|
||||
|
||||
def test_freeze_one_option():
|
||||
|
@ -1,7 +1,10 @@
|
||||
"test all types of option default values for options, add new option in a descr"
|
||||
import autopath
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.setting import owners
|
||||
from tiramisu.error import PropertiesOptionError, ConfigError
|
||||
from tiramisu.option import IntOption, FloatOption, StrOption, ChoiceOption, \
|
||||
BoolOption, OptionDescription
|
||||
|
||||
@ -59,13 +62,21 @@ def test_force_default_on_freeze():
|
||||
dummy2 = BoolOption('dummy2', 'doc dummy', default=True)
|
||||
group = OptionDescription('group', '', [dummy1, dummy2])
|
||||
config = Config(group)
|
||||
config.read_write()
|
||||
owners.addowner("frozen")
|
||||
config.dummy1 = True
|
||||
config.dummy2 = False
|
||||
assert config.getowner(dummy1) == owners.user
|
||||
assert config.getowner(dummy2) == owners.user
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting[dummy1].append('frozen')
|
||||
setting[dummy2].append('frozen')
|
||||
assert config.dummy1 is False
|
||||
assert config.dummy2 is False
|
||||
assert config.getowner(dummy1) == owners.default
|
||||
assert config.getowner(dummy2) == owners.user
|
||||
raises(ConfigError, "config.cfgimpl_get_values().setowner(dummy1, owners.frozen)")
|
||||
raises(PropertiesOptionError, "config.cfgimpl_get_values().setowner(dummy2, owners.frozen)")
|
||||
|
||||
|
||||
def test_force_default_on_freeze_multi():
|
||||
@ -73,13 +84,21 @@ def test_force_default_on_freeze_multi():
|
||||
dummy2 = BoolOption('dummy2', 'doc dummy', default=[True], multi=True)
|
||||
group = OptionDescription('group', '', [dummy1, dummy2])
|
||||
config = Config(group)
|
||||
config.read_write()
|
||||
owners.addowner("frozenmulti")
|
||||
config.dummy1.append(True)
|
||||
config.dummy2.append(False)
|
||||
assert config.getowner(dummy1) == owners.user
|
||||
assert config.getowner(dummy2) == owners.user
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting[dummy1].append('frozen')
|
||||
setting[dummy2].append('frozen')
|
||||
assert config.dummy1 == [False]
|
||||
assert config.dummy2 == [True, False]
|
||||
assert config.getowner(dummy1) == owners.default
|
||||
assert config.getowner(dummy2) == owners.user
|
||||
raises(ConfigError, "config.cfgimpl_get_values().setowner(dummy1, owners.frozenmulti)")
|
||||
raises(PropertiesOptionError, "config.cfgimpl_get_values().setowner(dummy2, owners.frozenmulti)")
|
||||
|
||||
|
||||
def test_overrides_changes_option_value():
|
||||
|
@ -4,7 +4,7 @@ from py.test import raises
|
||||
from tiramisu.setting import owners
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import ChoiceOption, BoolOption, IntOption, FloatOption, \
|
||||
StrOption, OptionDescription
|
||||
StrOption, OptionDescription, SymLinkOption
|
||||
from tiramisu.error import ConfigError, ConstError, PropertiesOptionError
|
||||
|
||||
|
||||
@ -106,3 +106,40 @@ def test_setowner_for_value():
|
||||
cfg.cfgimpl_get_values().setowner(gcdummy, owners.new)
|
||||
assert cfg.getowner(gcdummy) == owners.new
|
||||
raises(TypeError, "cfg.cfgimpl_get_values().setowner(gcdummy, 'new')")
|
||||
|
||||
|
||||
def test_setowner_read_only():
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
descr = OptionDescription('tiramisu', '', [gcdummy])
|
||||
cfg = Config(descr)
|
||||
cfg.read_write()
|
||||
assert cfg.dummy is False
|
||||
assert cfg.getowner(gcdummy) == 'default'
|
||||
owners.addowner("readonly")
|
||||
cfg.dummy = False
|
||||
assert cfg.getowner(gcdummy) == owners.user
|
||||
cfg.read_only()
|
||||
raises(PropertiesOptionError,
|
||||
"cfg.cfgimpl_get_values().setowner(gcdummy, owners.readonly)")
|
||||
assert cfg.getowner(gcdummy) == owners.user
|
||||
|
||||
|
||||
def test_setowner_optiondescription():
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
descr1 = OptionDescription('tiramisu', '', [gcdummy])
|
||||
descr = OptionDescription('tiramisu', '', [descr1])
|
||||
cfg = Config(descr)
|
||||
raises(ConfigError, 'cfg.cfgimpl_get_values().getowner(descr1)')
|
||||
raises(ConfigError, 'cfg.cfgimpl_get_values().setowner(descr1, owners.user)')
|
||||
|
||||
|
||||
def test_setowner_symlinkoption():
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
s = SymLinkOption('symdummy', gcdummy)
|
||||
descr1 = OptionDescription('tiramisu', '', [gcdummy, s])
|
||||
descr = OptionDescription('tiramisu', '', [descr1])
|
||||
cfg = Config(descr)
|
||||
assert cfg.cfgimpl_get_values().getowner(s) == owners.default
|
||||
cfg.tiramisu.dummy = True
|
||||
assert cfg.cfgimpl_get_values().getowner(s) == owners.user
|
||||
raises(ConfigError, 'cfg.cfgimpl_get_values().setowner(s, owners.user)')
|
||||
|
Reference in New Issue
Block a user