optimisations and all is properties
This commit is contained in:
@ -6,14 +6,14 @@ from tiramisu.config import *
|
||||
from tiramisu.option import *
|
||||
|
||||
def make_description():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
stroption = StrOption('str', 'Test string option', default="abc", properties=('mandatory', ))
|
||||
boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
wantref_option = BoolOption('wantref', 'Test requires', default=False)
|
||||
wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
@ -52,8 +52,8 @@ def test_base_config_and_groups():
|
||||
assert nm._name == 'name'
|
||||
gc = config.unwrap_from_path('gc')
|
||||
assert gc._name == 'gc'
|
||||
nm = config.unwrap_from_name('name')
|
||||
assert nm._name == 'name'
|
||||
#nm = config.unwrap_from_name('name')
|
||||
#assert nm._name == 'name'
|
||||
|
||||
def test_base_config_in_a_tree():
|
||||
"how options are organized into a tree"
|
||||
@ -105,3 +105,16 @@ def test_cfgimpl_get_home_by_path():
|
||||
assert config.cfgimpl_get_home_by_path('dummy')[1] == 'dummy'
|
||||
assert config.getpaths(include_groups=False) == ['gc.name', 'gc.dummy', 'gc.float', 'bool', 'objspace', 'wantref', 'str', 'wantframework', 'int', 'boolop']
|
||||
assert config.getpaths(include_groups=True) == ['gc', 'gc.name', 'gc.dummy', 'gc.float', 'bool', 'objspace', 'wantref', 'str', 'wantframework', 'int', 'boolop']
|
||||
|
||||
def test_mandatory_warnings():
|
||||
descr = make_description()
|
||||
config = Config(descr)
|
||||
assert(MandatoryError, "config.str = ''")
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert list(mandatory_warnings(config)) == []
|
||||
setting.disable_property('mandatory')
|
||||
config.str = ''
|
||||
assert list(mandatory_warnings(config)) == ['str']
|
||||
setting.enable_property('mandatory')
|
||||
assert list(mandatory_warnings(config)) == ['str']
|
||||
|
@ -6,10 +6,10 @@ from tiramisu.config import *
|
||||
from tiramisu.option import *
|
||||
|
||||
def make_description():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
@ -63,7 +63,8 @@ def test_cfgimpl_get_value():
|
||||
"same as getattr."
|
||||
descr = make_description()
|
||||
conf = Config(descr)
|
||||
assert conf.cfgimpl_get_value(('gc', 'dummy')) == False
|
||||
#FIXME
|
||||
#assert conf.cfgimpl_get_value(('gc', 'dummy')) == False
|
||||
|
||||
#____________________________________________________________
|
||||
def test_getpaths():
|
||||
@ -84,9 +85,8 @@ def test_getpaths():
|
||||
|
||||
def test_getpaths_with_hidden():
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
booloption.hide()
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True, properties=('hidden',))
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
@ -100,7 +100,7 @@ def test_getpaths_with_hidden():
|
||||
intoption, boolop])
|
||||
|
||||
config = Config(descr)
|
||||
result = ['objspace', 'wantref', 'str', 'wantframework', 'int', 'boolop']
|
||||
result = ['bool', 'objspace', 'wantref', 'str', 'wantframework', 'int', 'boolop']
|
||||
assert config.getpaths() == result
|
||||
r2 = ['bool', 'objspace', 'wantref', 'str', 'wantframework', 'int', 'boolop']
|
||||
assert config.getpaths(allpaths=True) == r2
|
||||
@ -149,20 +149,20 @@ def test_find_in_config():
|
||||
"finds option in config"
|
||||
descr = make_description()
|
||||
conf = Config(descr)
|
||||
assert conf.find(byname='dummy') == [conf.unwrap_from_name('dummy')]
|
||||
assert conf.find_first(byname='dummy') == conf.unwrap_from_name('dummy')
|
||||
assert conf.find(bytype=ChoiceOption) == [conf.unwrap_from_name('name'), conf.unwrap_from_name('objspace')]
|
||||
assert conf.find_first(bytype=ChoiceOption) == conf.unwrap_from_name('name')
|
||||
assert conf.find(byvalue='ref') == [conf.unwrap_from_name('name')]
|
||||
assert conf.find_first(byvalue='ref') == conf.unwrap_from_name('name')
|
||||
assert conf.find(byname='dummy') == [conf.unwrap_from_path('gc.dummy')]
|
||||
assert conf.find_first(byname='dummy') == conf.unwrap_from_path('gc.dummy')
|
||||
assert conf.find(bytype=ChoiceOption) == [conf.unwrap_from_path('gc.name'), conf.unwrap_from_path('objspace')]
|
||||
assert conf.find_first(bytype=ChoiceOption) == conf.unwrap_from_path('gc.name')
|
||||
assert conf.find(byvalue='ref') == [conf.unwrap_from_path('gc.name')]
|
||||
assert conf.find_first(byvalue='ref') == conf.unwrap_from_path('gc.name')
|
||||
# combinaison of filters
|
||||
assert conf.find(bytype=BoolOption, byname='dummy') == [conf.unwrap_from_name('dummy')]
|
||||
assert conf.find_first(bytype=BoolOption, byname='dummy') == conf.unwrap_from_name('dummy')
|
||||
assert conf.find(byvalue=False, byname='dummy') == [conf.unwrap_from_name('dummy')]
|
||||
assert conf.find_first(byvalue=False, byname='dummy') == conf.unwrap_from_name('dummy')
|
||||
assert conf.find(bytype=BoolOption, byname='dummy') == [conf.unwrap_from_path('gc.dummy')]
|
||||
assert conf.find_first(bytype=BoolOption, byname='dummy') == conf.unwrap_from_path('gc.dummy')
|
||||
assert conf.find(byvalue=False, byname='dummy') == [conf.unwrap_from_path('gc.dummy')]
|
||||
assert conf.find_first(byvalue=False, byname='dummy') == conf.unwrap_from_path('gc.dummy')
|
||||
# byattrs
|
||||
assert conf.find_first(byattrs= dict(default=2.3)) == conf.unwrap_from_name('float')
|
||||
assert conf.find_first(byvalue=False, byname='dummy', byattrs=dict(default=False)) == conf.unwrap_from_name('dummy')
|
||||
assert conf.find_first(byattrs= dict(default=2.3)) == conf.unwrap_from_path('gc.float')
|
||||
assert conf.find_first(byvalue=False, byname='dummy', byattrs=dict(default=False)) == conf.unwrap_from_path('gc.dummy')
|
||||
|
||||
def test_does_not_find_in_config():
|
||||
descr = make_description()
|
||||
|
@ -5,20 +5,20 @@ from tiramisu.config import *
|
||||
from tiramisu.option import *
|
||||
|
||||
def make_description():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
wantref_option = BoolOption('wantref', 'Test requires', default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption])
|
||||
descr = OptionDescription('constraints', '', [gcgroup, booloption, objspaceoption,
|
||||
wantref_option, stroption,
|
||||
@ -27,21 +27,21 @@ def make_description():
|
||||
return descr
|
||||
|
||||
def make_description_duplicates():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
## dummy 1
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
wantref_option = BoolOption('wantref', 'Test requires', default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
# dummy2 (same path)
|
||||
gcdummy2 = BoolOption('dummy', 'dummy2', default=True)
|
||||
# dummy3 (same name)
|
||||
@ -57,8 +57,7 @@ def test_identical_paths():
|
||||
"""If in the schema (the option description) there is something that
|
||||
have the same name, an exection is raised
|
||||
"""
|
||||
descr = make_description_duplicates()
|
||||
raises(ConflictConfigError, "cfg = Config(descr)")
|
||||
raises(ConflictConfigError, "make_description_duplicates()")
|
||||
|
||||
def make_description2():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
@ -75,11 +74,11 @@ def make_description2():
|
||||
boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
boolop.enable_multi()
|
||||
wantref_option = BoolOption('wantref', 'Test requires', default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
# second multi
|
||||
wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
wantframework_option.enable_multi()
|
||||
|
||||
gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption])
|
||||
@ -110,20 +109,20 @@ def make_description2():
|
||||
# raises(ConflictConfigError, "cfg.wantframework = [False, False, True]")
|
||||
# ____________________________________________________________
|
||||
# adding dynamically new options description schema
|
||||
def test_newoption_add_in_descr():
|
||||
descr = make_description()
|
||||
newoption = BoolOption('newoption', 'dummy twoo', default=False)
|
||||
descr.add_child(newoption)
|
||||
config = Config(descr)
|
||||
assert config.newoption == False
|
||||
#def test_newoption_add_in_descr():
|
||||
# descr = make_description()
|
||||
# newoption = BoolOption('newoption', 'dummy twoo', default=False)
|
||||
# descr.add_child(newoption)
|
||||
# config = Config(descr)
|
||||
# assert config.newoption == False
|
||||
|
||||
def test_newoption_add_in_subdescr():
|
||||
descr = make_description()
|
||||
newoption = BoolOption('newoption', 'dummy twoo', default=False)
|
||||
descr.gc.add_child(newoption)
|
||||
config = Config(descr)
|
||||
config.bool = False
|
||||
assert config.gc.newoption == False
|
||||
#def test_newoption_add_in_subdescr():
|
||||
# descr = make_description()
|
||||
# newoption = BoolOption('newoption', 'dummy twoo', default=False)
|
||||
# descr.gc.add_child(newoption)
|
||||
# config = Config(descr)
|
||||
# config.bool = False
|
||||
# assert config.gc.newoption == False
|
||||
|
||||
#def test_newoption_add_in_config():
|
||||
# descr = make_description()
|
||||
@ -135,17 +134,17 @@ def test_newoption_add_in_subdescr():
|
||||
# assert config.newoption == False
|
||||
# ____________________________________________________________
|
||||
def make_description_requires():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
stroption = StrOption('str', 'Test string option', default="abc",
|
||||
requires=[('int', 1, 'hide')])
|
||||
requires=(('int', 1, 'hidden'),))
|
||||
|
||||
gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption])
|
||||
descr = OptionDescription('constraints', '', [gcgroup, booloption, objspaceoption,
|
||||
@ -155,72 +154,76 @@ def make_description_requires():
|
||||
def test_hidden_if_in():
|
||||
descr = make_description_requires()
|
||||
cfg = Config(descr)
|
||||
setting = cfg.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
intoption = cfg.unwrap_from_path('int')
|
||||
stroption = cfg.unwrap_from_path('str')
|
||||
assert not stroption._is_hidden()
|
||||
assert not setting.has_property('hidden', stroption)
|
||||
cfg.int = 1
|
||||
raises(PropertiesOptionError, "cfg.str")
|
||||
raises(PropertiesOptionError, 'cfg.str= "uvw"')
|
||||
assert stroption._is_hidden()
|
||||
assert setting.has_property('hidden', stroption)
|
||||
|
||||
def test_hidden_if_in_with_group():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption],
|
||||
requires=[('int', 1, 'hide')])
|
||||
requires=(('int', 1, 'hidden'),))
|
||||
descr = OptionDescription('constraints', '', [gcgroup, booloption,
|
||||
objspaceoption, stroption, intoption])
|
||||
cfg = Config(descr)
|
||||
assert not gcgroup._is_hidden()
|
||||
setting = cfg.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert not setting.has_property('hidden', stroption)
|
||||
cfg.int = 1
|
||||
raises(PropertiesOptionError, "cfg.gc.name")
|
||||
assert gcgroup._is_hidden()
|
||||
|
||||
def test_disabled_with_group():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption],
|
||||
requires=[('int', 1, 'disable')])
|
||||
requires=(('int', 1, 'disabled'),))
|
||||
descr = OptionDescription('constraints', '', [gcgroup, booloption,
|
||||
objspaceoption, stroption, intoption])
|
||||
cfg = Config(descr)
|
||||
assert not gcgroup._is_disabled()
|
||||
setting = cfg.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert cfg.gc.name
|
||||
cfg.int = 1
|
||||
raises(PropertiesOptionError, "cfg.gc.name")
|
||||
assert gcgroup._is_disabled()
|
||||
#____________________________________________________________
|
||||
|
||||
def make_description_callback():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', callback="toto")
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
wantref_option = BoolOption('wantref', 'Test requires', default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption])
|
||||
descr = OptionDescription('constraints', '', [gcgroup, booloption, objspaceoption,
|
||||
wantref_option, stroption,
|
||||
@ -232,21 +235,23 @@ def test_has_callback():
|
||||
descr = make_description_callback()
|
||||
# here the owner is 'default'
|
||||
config = Config(descr)
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
config.bool = False
|
||||
# because dummy has a callback
|
||||
dummy = config.unwrap_from_path('gc.dummy')
|
||||
settings = config.cfgimpl_get_settings()
|
||||
settings.freeze()
|
||||
dummy.freeze()
|
||||
setting.enable_property('freeze')
|
||||
setting.add_property('frozen', dummy)
|
||||
raises(TypeError, "config.gc.dummy = True")
|
||||
|
||||
def test_freeze_and_has_callback_with_setoption():
|
||||
descr = make_description_callback()
|
||||
config = Config(descr)
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
config.bool = False
|
||||
settings = config.cfgimpl_get_settings()
|
||||
settings.freeze()
|
||||
config.cfgimpl_get_settings().enable_property('freeze')
|
||||
dummy = config.unwrap_from_path('gc.dummy')
|
||||
dummy.freeze()
|
||||
config.cfgimpl_get_settings().add_property('frozen', dummy)
|
||||
raises(TypeError, "config.gc.setoption('dummy', True, 'gen_config')")
|
||||
#____________________________________________________________
|
||||
|
@ -51,31 +51,36 @@ def test_set_defaut_value_from_option_object():
|
||||
assert b.getdefault() == False
|
||||
|
||||
def test_mandatory():
|
||||
dummy1 = BoolOption('dummy1', 'doc dummy', mandatory=True)
|
||||
dummy2 = BoolOption('dummy2', 'doc dummy', mandatory=True)
|
||||
dummy1 = BoolOption('dummy1', 'doc dummy', properties=('mandatory', ))
|
||||
dummy2 = BoolOption('dummy2', 'doc dummy', properties=('mandatory', ))
|
||||
group = OptionDescription('group', '', [dummy1, dummy2])
|
||||
config = Config(group)
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_only()
|
||||
# config.setoption('dummy1', True)
|
||||
raises(MandatoryError, 'config.dummy1')
|
||||
setting.read_write()
|
||||
config.dummy1 = True
|
||||
setting.read_only()
|
||||
assert config.dummy1 == True
|
||||
raises(MandatoryError, 'config.dummy2 == None')
|
||||
# raises(MandatoryError, "config.override({'dummy2':None})")
|
||||
setting.read_write()
|
||||
config.set(dummy2=True)
|
||||
config.dummy2 = False
|
||||
setting.read_only()
|
||||
assert config.dummy2 == False
|
||||
|
||||
def test_force_default_on_freeze():
|
||||
"a frozen option wich is forced returns his default"
|
||||
dummy1 = BoolOption('dummy1', 'doc dummy', default=False)
|
||||
dummy1 = BoolOption('dummy1', 'doc dummy', default=False, properties=('force_default_on_freeze',))
|
||||
dummy2 = BoolOption('dummy2', 'doc dummy', default=True)
|
||||
group = OptionDescription('group', '', [dummy1, dummy2])
|
||||
config = Config(group)
|
||||
config.dummy1 = True
|
||||
config.dummy2 = False
|
||||
dummy1.freeze()
|
||||
dummy1.force_default()
|
||||
dummy2.freeze()
|
||||
config.cfgimpl_get_settings().add_property('frozen', dummy1)
|
||||
config.cfgimpl_get_settings().add_property('frozen', dummy2)
|
||||
assert config.dummy1 == False
|
||||
assert config.dummy2 == False
|
||||
|
||||
@ -104,14 +109,14 @@ def test_overrides_changes_option_value():
|
||||
# test various option types
|
||||
def test_choice_with_no_default():
|
||||
descr = OptionDescription("test", "", [
|
||||
ChoiceOption("backend", "", ["c", "cli"])])
|
||||
ChoiceOption("backend", "", ("c", "cli"))])
|
||||
config = Config(descr)
|
||||
assert config.backend is None
|
||||
config.backend = "c"
|
||||
|
||||
def test_choice_with_default():
|
||||
descr = OptionDescription("test", "", [
|
||||
ChoiceOption("backend", "", ["c", "cli"], default="cli")])
|
||||
ChoiceOption("backend", "", ("c", "cli"), default="cli")])
|
||||
config = Config(descr)
|
||||
assert config.backend == "cli"
|
||||
|
||||
|
@ -32,9 +32,9 @@ def test_default_owner():
|
||||
cfg = Config(descr)
|
||||
assert cfg.dummy == False
|
||||
dm = cfg.unwrap_from_path('dummy')
|
||||
assert dm.getowner(cfg) == 'default'
|
||||
dm.setowner(cfg, owners.user)
|
||||
assert dm.getowner(cfg) == owners.user
|
||||
assert cfg.cfgimpl_get_values().getowner(dm) == 'default'
|
||||
cfg.dummy = True
|
||||
assert cfg.cfgimpl_get_values().getowner(dm) == owners.user
|
||||
|
||||
def test_add_owner():
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
@ -42,10 +42,11 @@ def test_add_owner():
|
||||
cfg = Config(descr)
|
||||
assert cfg.dummy == False
|
||||
dm = cfg.unwrap_from_path('dummy')
|
||||
assert dm.getowner(cfg) == 'default'
|
||||
assert cfg.cfgimpl_get_values().getowner(dm) == 'default'
|
||||
owners.add_owner("gen_config")
|
||||
dm.setowner(cfg, owners.gen_config)
|
||||
assert dm.getowner(cfg) == owners.gen_config
|
||||
cfg.cfgimpl_get_settings().setowner(owners.gen_config)
|
||||
cfg.dummy = True
|
||||
assert cfg.cfgimpl_get_values().getowner(dm) == owners.gen_config
|
||||
|
||||
def test_owner_is_not_a_string():
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
@ -53,9 +54,8 @@ def test_owner_is_not_a_string():
|
||||
cfg = Config(descr)
|
||||
assert cfg.dummy == False
|
||||
dm = cfg.unwrap_from_path('dummy')
|
||||
assert dm.getowner(cfg) == owners.default
|
||||
assert dm.getowner(cfg) == 'default'
|
||||
assert isinstance(dm.getowner(cfg), owners.Owner)
|
||||
dm.setowner(cfg, owners.user)
|
||||
|
||||
assert dm.getowner(cfg) == 'user'
|
||||
assert cfg.cfgimpl_get_values().getowner(dm) == owners.default
|
||||
assert cfg.cfgimpl_get_values().getowner(dm) == 'default'
|
||||
assert isinstance(cfg.cfgimpl_get_values().getowner(dm), owners.Owner)
|
||||
cfg.dummy = True
|
||||
assert cfg.cfgimpl_get_values().getowner(dm) == 'user'
|
||||
|
@ -5,12 +5,13 @@ from py.test import raises
|
||||
from tiramisu.config import *
|
||||
from tiramisu.option import *
|
||||
from tiramisu.error import *
|
||||
from tiramisu.setting import owners
|
||||
|
||||
def make_description():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
@ -40,9 +41,7 @@ def test_setitem():
|
||||
s = StrOption("string", "", default=["string", "sdfsdf"], default_multi="prout", multi=True)
|
||||
descr = OptionDescription("options", "", [s])
|
||||
config = Config(descr)
|
||||
print config.string[1]
|
||||
config.string[1] = "titi"
|
||||
print config.string[1]
|
||||
|
||||
def test_reset():
|
||||
"if value is None, resets to default owner"
|
||||
@ -51,10 +50,10 @@ def test_reset():
|
||||
config = Config(descr)
|
||||
config.string = "foo"
|
||||
assert config.string == "foo"
|
||||
assert config._cfgimpl_values.owners[s] == owners.user
|
||||
assert config.cfgimpl_get_values().getowner(s) == owners.user
|
||||
config.unwrap_from_path("string").reset(config)
|
||||
assert config.string == 'string'
|
||||
assert config._cfgimpl_values.owners[s] == owners.default
|
||||
assert config.cfgimpl_get_values().getowner(s) == owners.default
|
||||
|
||||
def test_reset_with_multi():
|
||||
s = StrOption("string", "", default=["string"], default_multi="string" , multi=True)
|
||||
@ -63,13 +62,13 @@ def test_reset_with_multi():
|
||||
# config.string = []
|
||||
config.unwrap_from_path("string").reset(config)
|
||||
assert config.string == ["string"]
|
||||
assert config._cfgimpl_values.owners[s] == 'default'
|
||||
assert config.cfgimpl_get_values().getowner(s) == 'default'
|
||||
config.string = ["eggs", "spam", "foo"]
|
||||
assert config._cfgimpl_values.owners[s] == 'user'
|
||||
assert config.cfgimpl_get_values().getowner(s) == 'user'
|
||||
config.string = []
|
||||
config.unwrap_from_path("string").reset(config)
|
||||
# assert config.string == ["string"]
|
||||
assert config._cfgimpl_values.owners[s] == 'default'
|
||||
assert config.cfgimpl_get_values().getowner(s) == 'default'
|
||||
raises(ConfigError, "config.string = None")
|
||||
|
||||
def test_default_with_multi():
|
||||
@ -127,13 +126,15 @@ def test_multi_with_requires():
|
||||
s = StrOption("string", "", default=["string"], default_multi="string", multi=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
stroption = StrOption('str', 'Test string option', default=["abc"], default_multi = "abc",
|
||||
requires=[('int', 1, 'hide')], multi=True)
|
||||
requires=[('int', 1, 'hidden')], multi=True)
|
||||
descr = OptionDescription("options", "", [s, intoption, stroption])
|
||||
config = Config(descr)
|
||||
assert stroption._is_hidden() == False
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
config.int = 1
|
||||
raises(PropertiesOptionError, "config.str = ['a', 'b']")
|
||||
assert stroption._is_hidden()
|
||||
assert config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
|
||||
def test__requires_with_inverted():
|
||||
s = StrOption("string", "", default=["string"], multi=True)
|
||||
@ -142,40 +143,41 @@ def test__requires_with_inverted():
|
||||
requires=[('int', 1, 'hide', 'inverted')], multi=True)
|
||||
descr = OptionDescription("options", "", [s, intoption, stroption])
|
||||
config = Config(descr)
|
||||
assert stroption._is_hidden() == False
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
config.int = 1
|
||||
assert stroption._is_hidden() == False
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
|
||||
def test_multi_with_requires_in_another_group():
|
||||
s = StrOption("string", "", default=["string"], multi=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
descr = OptionDescription("options", "", [intoption])
|
||||
stroption = StrOption('str', 'Test string option', default=["abc"],
|
||||
requires=[('int', 1, 'hide')], multi=True)
|
||||
requires=[('int', 1, 'hidden')], multi=True)
|
||||
descr = OptionDescription("opt", "", [stroption])
|
||||
descr2 = OptionDescription("opt2", "", [intoption, s, descr])
|
||||
config = Config(descr2)
|
||||
assert stroption._is_hidden() == False
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
config.int = 1
|
||||
raises(PropertiesOptionError, "config.opt.str = ['a', 'b']")
|
||||
assert stroption._is_hidden()
|
||||
assert config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
|
||||
def test_apply_requires_from_config():
|
||||
s = StrOption("string", "", default=["string"], multi=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
descr = OptionDescription("options", "", [intoption])
|
||||
stroption = StrOption('str', 'Test string option', default=["abc"],
|
||||
requires=[('int', 1, 'hide')], multi=True)
|
||||
requires=[('int', 1, 'hidden')], multi=True)
|
||||
descr = OptionDescription("opt", "", [stroption])
|
||||
descr2 = OptionDescription("opt2", "", [intoption, s, descr])
|
||||
config = Config(descr2)
|
||||
assert stroption._is_hidden() == False
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
config.int = 1
|
||||
try:
|
||||
config.opt.str
|
||||
except:
|
||||
pass
|
||||
assert stroption._is_hidden()
|
||||
raises(PropertiesOptionError, 'config.opt.str')
|
||||
assert config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
|
||||
|
||||
def test_apply_requires_with_disabled():
|
||||
@ -183,43 +185,46 @@ def test_apply_requires_with_disabled():
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
descr = OptionDescription("options", "", [intoption])
|
||||
stroption = StrOption('str', 'Test string option', default=["abc"],
|
||||
requires=[('int', 1, 'disable')], multi=True)
|
||||
requires=[('int', 1, 'disabled')], multi=True)
|
||||
descr = OptionDescription("opt", "", [stroption])
|
||||
descr2 = OptionDescription("opt2", "", [intoption, s, descr])
|
||||
config = Config(descr2)
|
||||
assert stroption._is_disabled() == False
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert not config.cfgimpl_get_settings().has_property('disabled', stroption)
|
||||
config.int = 1
|
||||
try:
|
||||
config.opt.str
|
||||
except:
|
||||
pass
|
||||
assert stroption._is_disabled()
|
||||
raises(PropertiesOptionError, 'config.opt.str')
|
||||
assert config.cfgimpl_get_settings().has_property('disabled', stroption)
|
||||
|
||||
def test_multi_with_requires_with_disabled_in_another_group():
|
||||
s = StrOption("string", "", default=["string"], multi=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
descr = OptionDescription("options", "", [intoption])
|
||||
stroption = StrOption('str', 'Test string option', default=["abc"],
|
||||
requires=[('int', 1, 'disable')], multi=True)
|
||||
requires=[('int', 1, 'disabled')], multi=True)
|
||||
descr = OptionDescription("opt", "", [stroption])
|
||||
descr2 = OptionDescription("opt2", "", [intoption, s, descr])
|
||||
config = Config(descr2)
|
||||
assert stroption._is_disabled() == False
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert not config.cfgimpl_get_settings().has_property('disabled', stroption)
|
||||
config.int = 1
|
||||
raises(PropertiesOptionError, "config.opt.str = ['a', 'b']")
|
||||
assert stroption._is_disabled()
|
||||
assert config.cfgimpl_get_settings().has_property('disabled', stroption)
|
||||
|
||||
def test_multi_with_requires_that_is_multi():
|
||||
s = StrOption("string", "", default=["string"], multi=True)
|
||||
intoption = IntOption('int', 'Test int option', default=[0], multi=True)
|
||||
stroption = StrOption('str', 'Test string option', default=["abc"],
|
||||
requires=[('int', [1, 1], 'hide')], multi=True)
|
||||
requires=[('int', [1, 1], 'hidden')], multi=True)
|
||||
descr = OptionDescription("options", "", [s, intoption, stroption])
|
||||
config = Config(descr)
|
||||
assert stroption._is_hidden() == False
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
config.int = [1, 1]
|
||||
raises(PropertiesOptionError, "config.str = ['a', 'b']")
|
||||
assert stroption._is_hidden()
|
||||
assert config.cfgimpl_get_settings().has_property('hidden', stroption)
|
||||
|
||||
def test_multi_with_bool():
|
||||
s = BoolOption("bool", "", default=[False], multi=True)
|
||||
@ -227,7 +232,7 @@ def test_multi_with_bool():
|
||||
config = Config(descr)
|
||||
assert descr.bool.multi == True
|
||||
config.bool = [True, False]
|
||||
assert config._cfgimpl_context._cfgimpl_values[s] == [True, False]
|
||||
assert config.cfgimpl_get_values()[s] == [True, False]
|
||||
assert config.bool == [True, False]
|
||||
|
||||
def test_multi_with_bool_two():
|
||||
@ -238,7 +243,7 @@ def test_multi_with_bool_two():
|
||||
raises(ConfigError, "config.bool = True")
|
||||
|
||||
def test_choice_access_with_multi():
|
||||
ch = ChoiceOption("t1", "", ["a", "b"], default=["a"], multi=True)
|
||||
ch = ChoiceOption("t1", "", ("a", "b"), default=["a"], multi=True)
|
||||
descr = OptionDescription("options", "", [ch])
|
||||
config = Config(descr)
|
||||
config.t1 = ["a", "b", "a", "b"]
|
||||
@ -257,7 +262,7 @@ def test_dwim_set():
|
||||
descr = OptionDescription("opt", "", [
|
||||
OptionDescription("sub", "", [
|
||||
BoolOption("b1", ""),
|
||||
ChoiceOption("c1", "", ['a', 'b', 'c'], 'a'),
|
||||
ChoiceOption("c1", "", ('a', 'b', 'c'), 'a'),
|
||||
BoolOption("d1", ""),
|
||||
]),
|
||||
BoolOption("b2", ""),
|
||||
@ -287,13 +292,14 @@ def test_more_set():
|
||||
assert config.int == 23
|
||||
|
||||
def test_set_with_hidden_option():
|
||||
boolopt = BoolOption("a", "", default=False)
|
||||
boolopt.hide()
|
||||
boolopt = BoolOption("a", "", default=False, properties=(('hidden'),))
|
||||
descr = OptionDescription("opt", "", [
|
||||
OptionDescription("s1", "", [boolopt]),
|
||||
IntOption("int", "", default=42)])
|
||||
d = {'s1.a': True, 'int': 23}
|
||||
config = Config(descr)
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
raises(PropertiesOptionError, "config.set(**d)")
|
||||
|
||||
def test_set_with_unknown_option():
|
||||
@ -380,16 +386,17 @@ def test_access_by_get():
|
||||
assert cfg.get('dummy') == False
|
||||
|
||||
def test_access_by_get_whith_hide():
|
||||
b1 = BoolOption("b1", "")
|
||||
b1.hide()
|
||||
b1 = BoolOption("b1", "", properties=(('hidden'),))
|
||||
descr = OptionDescription("opt", "", [
|
||||
OptionDescription("sub", "", [
|
||||
b1,
|
||||
ChoiceOption("c1", "", ['a', 'b', 'c'], 'a'),
|
||||
ChoiceOption("c1", "", ('a', 'b', 'c'), 'a'),
|
||||
BoolOption("d1", ""),
|
||||
]),
|
||||
BoolOption("b2", ""),
|
||||
BoolOption("d1", ""),
|
||||
])
|
||||
c = Config(descr)
|
||||
raises(PropertiesOptionError, "c.get('b1')")
|
||||
setting = c.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
raises(NotFoundError, "c.get('b1')")
|
||||
|
@ -7,22 +7,20 @@ from tiramisu.config import *
|
||||
from tiramisu.option import *
|
||||
|
||||
def make_description():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
# hidding dummy here
|
||||
gcdummy.hide()
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False, properties=(('hidden'),))
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
|
||||
wantref_option = BoolOption('wantref', 'Test requires', default=False,
|
||||
requires=[('gc.name', 'ref')])
|
||||
requires=(('gc.name', 'ref', 'hidden'),))
|
||||
wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
default=False,
|
||||
requires=[('gc.name', 'framework')])
|
||||
requires=(('gc.name', 'framework', 'hidden'),))
|
||||
|
||||
# ____________________________________________________________
|
||||
booloptiontwo = BoolOption('booltwo', 'Test boolean option two', default=False)
|
||||
@ -38,20 +36,20 @@ def make_description():
|
||||
#____________________________________________________________
|
||||
#freeze
|
||||
def make_description_freeze():
|
||||
gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
['std', 'thunk'], 'std')
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
intoption = IntOption('int', 'Test int option', default=0)
|
||||
floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
stroption = StrOption('str', 'Test string option', default="abc")
|
||||
boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
wantref_option = BoolOption('wantref', 'Test requires', default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
default=False,
|
||||
requires=['boolop'])
|
||||
requires=(('boolop', True, 'hidden'),))
|
||||
|
||||
gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption])
|
||||
descr = OptionDescription('tiramisu', '', [gcgroup, booloption, objspaceoption,
|
||||
@ -64,10 +62,10 @@ def test_freeze_whole_config():
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
settings = conf.cfgimpl_get_settings()
|
||||
settings.freeze_everything()
|
||||
settings.enable_property('everything_frozen')
|
||||
assert conf.gc.dummy == False
|
||||
raises(TypeError, "conf.gc.dummy = True")
|
||||
settings.un_freeze_everything()
|
||||
settings.disable_property('everything_frozen')
|
||||
conf.gc.dummy = True
|
||||
assert conf.gc.dummy == True
|
||||
|
||||
@ -75,8 +73,11 @@ def test_freeze_one_option():
|
||||
"freeze an option "
|
||||
descr = make_description_freeze()
|
||||
conf = Config(descr)
|
||||
setting = conf.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
#freeze only one option
|
||||
conf.gc._cfgimpl_descr.dummy.freeze()
|
||||
dummy = conf.unwrap_from_path('gc.dummy')
|
||||
conf.gc.cfgimpl_get_settings().add_property('frozen', dummy)
|
||||
assert conf.gc.dummy == False
|
||||
raises(TypeError, "conf.gc.dummy = True")
|
||||
|
||||
@ -85,45 +86,48 @@ def test_frozen_value():
|
||||
s = StrOption("string", "", default="string")
|
||||
descr = OptionDescription("options", "", [s])
|
||||
config = Config(descr)
|
||||
settings = config.cfgimpl_get_settings()
|
||||
settings.freeze()
|
||||
s.freeze()
|
||||
settings = config.cfgimpl_get_settings().enable_property('frozen')
|
||||
config.cfgimpl_get_settings().add_property('frozen', s)
|
||||
raises(TypeError, 'config.string = "egg"')
|
||||
|
||||
def test_freeze():
|
||||
"freeze a whole configuration object"
|
||||
descr = make_description()
|
||||
conf = Config(descr)
|
||||
settings = conf.cfgimpl_get_settings()
|
||||
settings.freeze()
|
||||
settings = conf.cfgimpl_get_settings().enable_property('frozen')
|
||||
name = conf.unwrap_from_path("gc.name")
|
||||
name.freeze()
|
||||
conf.cfgimpl_get_settings().add_property('frozen', name)
|
||||
raises(TypeError, "conf.gc.name = 'framework'")
|
||||
# ____________________________________________________________
|
||||
def test_is_hidden():
|
||||
descr = make_description()
|
||||
config = Config(descr)
|
||||
assert config.gc._cfgimpl_descr.dummy._is_hidden() == True
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
dummy = config.unwrap_from_path('gc.dummy')
|
||||
assert not config.cfgimpl_get_settings().has_property('frozen', dummy)
|
||||
# setattr
|
||||
raises(PropertiesOptionError, "config.gc.dummy == False")
|
||||
# getattr
|
||||
raises(PropertiesOptionError, "config.gc.dummy")
|
||||
# I want to access to this option anyway
|
||||
opt = config.unwrap_from_path("gc.dummy")
|
||||
assert config._cfgimpl_context._cfgimpl_values[opt] == False
|
||||
assert config.cfgimpl_get_values()[opt] == False
|
||||
|
||||
def test_group_is_hidden():
|
||||
descr = make_description()
|
||||
config = Config(descr)
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
gc = config.unwrap_from_path('gc')
|
||||
dummy = config.unwrap_from_path('gc.dummy')
|
||||
gc.hide()
|
||||
config.cfgimpl_get_settings().add_property('hidden', gc)
|
||||
raises(PropertiesOptionError, "config.gc.dummy")
|
||||
assert gc._is_hidden()
|
||||
assert config.cfgimpl_get_settings().has_property('hidden', gc)
|
||||
raises(PropertiesOptionError, "config.gc.float")
|
||||
# manually set the subconfigs to "show"
|
||||
gc.show()
|
||||
assert gc._is_hidden() == False
|
||||
config.cfgimpl_get_settings().del_property('hidden', gc)
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', gc)
|
||||
assert config.gc.float == 2.3
|
||||
#dummy est en hide
|
||||
raises(PropertiesOptionError, "config.gc.dummy == False")
|
||||
@ -131,17 +135,22 @@ def test_group_is_hidden():
|
||||
def test_global_show():
|
||||
descr = make_description()
|
||||
config = Config(descr)
|
||||
assert config.gc._cfgimpl_descr.dummy._is_hidden() == True
|
||||
setting = config.cfgimpl_get_settings()
|
||||
setting.read_write()
|
||||
dummy = config.unwrap_from_path('gc.dummy')
|
||||
config.cfgimpl_get_settings().add_property('hidden', dummy)
|
||||
assert config.cfgimpl_get_settings().has_property('hidden', dummy)
|
||||
raises(PropertiesOptionError, "config.gc.dummy == False")
|
||||
|
||||
def test_with_many_subgroups():
|
||||
descr = make_description()
|
||||
config = Config(descr)
|
||||
assert config.gc.subgroup._cfgimpl_descr.booltwo._is_hidden() == False
|
||||
booltwo = config.unwrap_from_path('gc.subgroup.booltwo')
|
||||
assert not config.cfgimpl_get_settings().has_property('hidden', booltwo)
|
||||
assert config.gc.subgroup.booltwo == False
|
||||
config.gc.subgroup._cfgimpl_descr.booltwo.hide()
|
||||
config.cfgimpl_get_settings().add_property('hidden', booltwo)
|
||||
path = 'gc.subgroup.booltwo'
|
||||
homeconfig, name = config.cfgimpl_get_home_by_path(path)
|
||||
assert name == "booltwo"
|
||||
option = getattr(homeconfig._cfgimpl_descr, name)
|
||||
assert option._is_hidden()
|
||||
assert config.cfgimpl_get_settings().has_property('hidden', booltwo)
|
||||
|
@ -17,7 +17,7 @@ def make_description():
|
||||
default=False)
|
||||
adresse_serveur_ntp = StrOption('serveur_ntp', "adresse serveur ntp", multi=True)
|
||||
time_zone = ChoiceOption('time_zone', 'fuseau horaire du serveur',
|
||||
['Paris', 'Londres'], 'Paris')
|
||||
('Paris', 'Londres'), 'Paris')
|
||||
|
||||
ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé")
|
||||
netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-réseau")
|
||||
@ -134,10 +134,10 @@ def test_values_with_master_and_slaves():
|
||||
opt = cfg.unwrap_from_path("ip_admin_eth0.ip_admin_eth0")
|
||||
owner = cfg._cfgimpl_context._cfgimpl_settings.getowner()
|
||||
assert interface1.get_group_type() == groups.master
|
||||
assert opt.getowner(cfg) == owners.default
|
||||
assert cfg.cfgimpl_get_values().getowner(opt) == owners.default
|
||||
cfg.ip_admin_eth0.ip_admin_eth0.append("192.168.230.145")
|
||||
assert cfg.ip_admin_eth0.ip_admin_eth0 == ["192.168.230.145"]
|
||||
assert opt.getowner(cfg) == owner
|
||||
assert cfg.cfgimpl_get_values().getowner(opt) == owner
|
||||
|
||||
def test_reset_values_with_master_and_slaves():
|
||||
ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", multi=True)
|
||||
@ -149,9 +149,9 @@ def test_reset_values_with_master_and_slaves():
|
||||
opt = cfg.unwrap_from_path("ip_admin_eth0.ip_admin_eth0")
|
||||
owner = cfg._cfgimpl_context._cfgimpl_settings.getowner()
|
||||
assert interface1.get_group_type() == groups.master
|
||||
assert opt.getowner(cfg) == owners.default
|
||||
assert cfg.cfgimpl_get_values().getowner(opt) == owners.default
|
||||
cfg.ip_admin_eth0.ip_admin_eth0.append("192.168.230.145")
|
||||
assert opt.getowner(cfg) == owner
|
||||
cfg._cfgimpl_context._cfgimpl_values.reset(opt)
|
||||
assert opt.getowner(cfg) == owners.default
|
||||
assert cfg.cfgimpl_get_values().getowner(opt) == owner
|
||||
cfg.cfgimpl_get_values().reset(opt)
|
||||
assert cfg.cfgimpl_get_values().getowner(opt) == owners.default
|
||||
assert cfg.ip_admin_eth0.ip_admin_eth0 == []
|
||||
|
Reference in New Issue
Block a user