some tests
This commit is contained in:
@ -169,7 +169,7 @@ def test_config_impl_get_path_by_opt():
|
||||
unknown
|
||||
assert config.cfgimpl_get_description().impl_get_path_by_opt(boo) == 'bool'
|
||||
assert config.cfgimpl_get_description().impl_get_path_by_opt(dummy) == 'gc.dummy'
|
||||
raises(AttributeError, "config.cfgimpl_get_description().impl_get_path_by_opt(unknown)")
|
||||
#raises(AttributeError, "config.cfgimpl_get_description().impl_get_path_by_opt(unknown)")
|
||||
|
||||
|
||||
#def test_config_impl_get_path_by_opt_od():
|
||||
|
@ -15,7 +15,7 @@ def make_description():
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
prop = BoolOption('prop', 'prop 1', properties=('disabled',))
|
||||
prop2 = BoolOption('prop', 'prop 2', properties=('hidden',))
|
||||
prop2 = StrOption('prop', 'prop 2', properties=('hidden',))
|
||||
objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
('std', 'thunk'), 'std')
|
||||
booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
@ -74,6 +74,11 @@ def _is_same_opt(opt1, opt2):
|
||||
# assert value == gvalue
|
||||
|
||||
|
||||
def test_od_not_list():
|
||||
b = BoolOption('bool', '', multi=True)
|
||||
raises(ValueError, "OptionDescription('od', '', b)")
|
||||
|
||||
|
||||
def test_str():
|
||||
descr = make_description()
|
||||
c = Config(descr)
|
||||
@ -230,12 +235,11 @@ def test_find_in_config():
|
||||
_is_same_opt(ret[0].option.get(), api.forcepermissive.option('gc.prop').option.get())
|
||||
#
|
||||
_is_same_opt(api.forcepermissive.option.find('prop', first=True).option.get(), api.forcepermissive.option('gc.prop').option.get())
|
||||
#FIXME cannot find an option without name
|
||||
# combinaison of filters
|
||||
#ret = conf.find(bytype=BoolOption, byname='dummy')
|
||||
#assert len(ret) == 1
|
||||
#_is_same_opt(ret[0], conf.unwrap_from_path('gc.dummy'))
|
||||
#_is_same_opt(conf.find_first(bytype=BoolOption, byname='dummy'), conf.unwrap_from_path('gc.dummy'))
|
||||
ret = api.unrestraint.option.find('prop', type=BoolOption)
|
||||
assert len(ret) == 1
|
||||
_is_same_opt(ret[0].option.get(), api.unrestraint.option('gc.gc2.prop').option.get())
|
||||
_is_same_opt(api.unrestraint.option.find('prop', type=BoolOption, first=True).option.get(), api.unrestraint.option('gc.gc2.prop').option.get())
|
||||
#
|
||||
ret = api.option.find('dummy', value=False)
|
||||
assert len(ret) == 1
|
||||
|
@ -493,6 +493,14 @@ def test_decrease_dyndescription_context():
|
||||
raises(AttributeError, "api.option('od.dodval2.stval2').value.get()")
|
||||
|
||||
|
||||
def test_dyndescription_root():
|
||||
boolean = BoolOption('boolean', '', True)
|
||||
st1 = StrOption('st', '', requires=[{'option': boolean, 'expected': False,
|
||||
'action': 'disabled'}])
|
||||
dod = DynOptionDescription('dod', '', [boolean, st1], callback=return_list)
|
||||
raises(ConfigError, "Config(dod)")
|
||||
|
||||
|
||||
def test_requires_dyndescription():
|
||||
boolean = BoolOption('boolean', '', True)
|
||||
st1 = StrOption('st', '', requires=[{'option': boolean, 'expected': False,
|
||||
|
@ -3,7 +3,7 @@ from .autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu import ChoiceOption, BoolOption, IntOption, \
|
||||
from tiramisu import ChoiceOption, BoolOption, IntOption, IPOption, NetmaskOption, \
|
||||
StrOption, OptionDescription, MasterSlaves, Config, getapi
|
||||
from tiramisu.error import SlaveError, PropertiesOptionError, APIError, ConfigError
|
||||
from tiramisu.api import TIRAMISU_VERSION
|
||||
@ -644,3 +644,39 @@ def test_slave_not_multi():
|
||||
ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", multi=True)
|
||||
netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-réseau")
|
||||
raises(ValueError, "MasterSlaves('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])")
|
||||
|
||||
|
||||
def test_slave_not_same():
|
||||
ip_admin_eth0 = IPOption('ip_admin_eth0', "ip réseau autorisé", multi=True, default=['1.1.1.1'])
|
||||
netmask_admin_eth0 = NetmaskOption('netmask_admin_eth0', "masque du sous-réseau", multi=True)
|
||||
interface0 = MasterSlaves('interface0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
ip_admin_eth1 = IPOption('ip_admin_eth1', "ip réseau autorisé", multi=True, default=['1.1.1.1'])
|
||||
netmask_admin_eth1 = NetmaskOption('netmask_admin_eth1', "masque du sous-réseau", multi=True)
|
||||
netmask_admin_eth1.impl_add_consistency('ip_netmask', ip_admin_eth0)
|
||||
interface1 = MasterSlaves('interface1', '', [ip_admin_eth1, netmask_admin_eth1])
|
||||
od1 = OptionDescription('od', '', [interface0, interface1])
|
||||
maconfig = OptionDescription('toto', '', [od1])
|
||||
raises(ConfigError, "getapi(Config(maconfig))")
|
||||
|
||||
|
||||
def test_slave_not_same_not_equal():
|
||||
ip_admin_eth0 = IPOption('ip_admin_eth0', "ip réseau autorisé", multi=True, default=['1.1.1.1'])
|
||||
netmask_admin_eth0 = NetmaskOption('netmask_admin_eth0', "masque du sous-réseau", multi=True)
|
||||
interface0 = MasterSlaves('interface0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
ip_admin_eth1 = IPOption('ip_admin_eth1', "ip réseau autorisé", multi=True, default=['1.1.1.1'])
|
||||
netmask_admin_eth1 = NetmaskOption('netmask_admin_eth1', "masque du sous-réseau", multi=True)
|
||||
netmask_admin_eth1.impl_add_consistency('not_equal', netmask_admin_eth0)
|
||||
interface1 = MasterSlaves('interface1', '', [ip_admin_eth1, netmask_admin_eth1])
|
||||
od1 = OptionDescription('od', '', [interface0, interface1])
|
||||
maconfig = OptionDescription('toto', '', [od1])
|
||||
api = getapi(Config(maconfig))
|
||||
api.property.read_write()
|
||||
|
||||
|
||||
def test_slave_force_store_value():
|
||||
ip_admin_eth0 = IPOption('ip_admin_eth0', "ip réseau autorisé", multi=True, default=['1.1.1.1'])
|
||||
netmask_admin_eth0 = NetmaskOption('netmask_admin_eth0', "masque du sous-réseau", multi=True, properties=('force_store_value',))
|
||||
interface0 = MasterSlaves('interface0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
od1 = OptionDescription('od', '', [interface0])
|
||||
maconfig = OptionDescription('toto', '', [od1])
|
||||
raises(ConfigError, "getapi(Config(maconfig))")
|
||||
|
@ -27,6 +27,10 @@ def return_list2(value=None):
|
||||
return [['val', 'val']]
|
||||
|
||||
|
||||
def test_unknown_multi():
|
||||
raises(ValueError, "StrOption('multi', '', multi='unknown')")
|
||||
|
||||
|
||||
def test_submulti():
|
||||
multi = StrOption('multi', '', multi=submulti)
|
||||
if TIRAMISU_VERSION == 2:
|
||||
@ -45,6 +49,10 @@ def test_submulti():
|
||||
assert api.option('multi').owner.get() == owners.default
|
||||
|
||||
|
||||
def test_submulti_default_multi_not_list():
|
||||
raises(ValueError, "StrOption('multi2', '', default_multi='yes', multi=submulti)")
|
||||
|
||||
|
||||
def test_append_submulti():
|
||||
multi = StrOption('multi', '', multi=submulti)
|
||||
if TIRAMISU_VERSION == 2:
|
||||
@ -390,44 +398,53 @@ def test_submulti_unique():
|
||||
api.option('int').value.set([[0], [0]])
|
||||
raises(ValueError, "api.option('int').value.set([[1, 0, 2, 3, 4, 5, 6, 0, 7], [0]])")
|
||||
api.option('int').value.set([[0, 4, 5, 6], [0]])
|
||||
#
|
||||
#
|
||||
#def test_multi_submulti_meta():
|
||||
# multi = StrOption('multi', '', multi=submulti)
|
||||
# od = OptionDescription('od', '', [multi])
|
||||
# conf1 = Config(od, session_id='conf1')
|
||||
# api1 = getapi(conf1)
|
||||
# api1.property.read_write()
|
||||
# conf2 = Config(od, session_id='conf2')
|
||||
# api2 = getapi(conf2)
|
||||
# api2.property.read_write()
|
||||
# meta = MetaConfig([conf1, conf2])
|
||||
# api3 = getapi(meta)
|
||||
# api3.property.read_write()
|
||||
# api3.option('multi').value.set([['val']])
|
||||
# assert api3.option('multi').value.get() == [['val']]
|
||||
# api3.config('conf1').option('multi').value.set([['val', None]])
|
||||
# assert api1.option('multi').value.get() == [['val', None]]
|
||||
# assert api3.config('conf1').option('multi').value.get() == [['val', None]]
|
||||
# assert api3.option('multi').value.get() == [['val']]
|
||||
#
|
||||
#
|
||||
#def test_multi_submulti_meta_no_cache():
|
||||
# multi = StrOption('multi', '', multi=submulti)
|
||||
# od = OptionDescription('od', '', [multi])
|
||||
# conf1 = Config(od, session_id='conf1_1')
|
||||
# api1 = getapi(conf1)
|
||||
# api1.property.read_write()
|
||||
# conf2 = Config(od, session_id='conf2_1')
|
||||
# api2 = getapi(conf2)
|
||||
# api2.property.read_write()
|
||||
# meta = MetaConfig([conf1, conf2])
|
||||
# api3 = getapi(api2)
|
||||
# api3.property.read_write()
|
||||
# api3.property.pop('cache')
|
||||
# api3.option('multi').value.set([['val']])
|
||||
# assert api3.option('multi').value.get() == [['val']]
|
||||
# api3.config('conf1').option('multi').value.set([['val', None]])
|
||||
# assert api1.option('multi').value.get() == [['val', None]]
|
||||
# assert api3.config('conf1').option('multi').value.get() == [['val', None]]
|
||||
# assert api3.option('multi').value.get() == [['val']]
|
||||
|
||||
|
||||
def test_submulti_unknown_unique():
|
||||
raises(ValueError, "IntOption('int', '', multi=submulti, unique='str')")
|
||||
|
||||
|
||||
def test_unique_not_multi():
|
||||
raises(ValueError, "IntOption('int', '', unique=True)")
|
||||
|
||||
|
||||
def test_multi_submulti_meta():
|
||||
multi = StrOption('multi', '', multi=submulti)
|
||||
od = OptionDescription('od', '', [multi])
|
||||
conf1 = Config(od, session_id='conf1')
|
||||
api1 = getapi(conf1)
|
||||
api1.property.read_write()
|
||||
conf2 = Config(od, session_id='conf2')
|
||||
api2 = getapi(conf2)
|
||||
api2.property.read_write()
|
||||
meta = MetaConfig([conf1, conf2])
|
||||
api3 = getapi(meta)
|
||||
api3.property.read_write()
|
||||
api3.option('multi').value.set([['val']])
|
||||
assert api3.option('multi').value.get() == [['val']]
|
||||
api3.config('conf1').option('multi').value.set([['val', None]])
|
||||
assert api1.option('multi').value.get() == [['val', None]]
|
||||
assert api3.config('conf1').option('multi').value.get() == [['val', None]]
|
||||
assert api3.option('multi').value.get() == [['val']]
|
||||
|
||||
|
||||
def test_multi_submulti_meta_no_cache():
|
||||
multi = StrOption('multi', '', multi=submulti)
|
||||
multi = StrOption('multi', '', multi=submulti)
|
||||
od = OptionDescription('od', '', [multi])
|
||||
conf1 = Config(od, session_id='conf1')
|
||||
api1 = getapi(conf1)
|
||||
api1.property.read_write()
|
||||
conf2 = Config(od, session_id='conf2')
|
||||
api2 = getapi(conf2)
|
||||
api2.property.read_write()
|
||||
meta = MetaConfig([conf1, conf2])
|
||||
api3 = getapi(meta)
|
||||
api3.property.read_write()
|
||||
api3.property.pop('cache')
|
||||
api3.option('multi').value.set([['val']])
|
||||
assert api3.option('multi').value.get() == [['val']]
|
||||
api3.config('conf1').option('multi').value.set([['val', None]])
|
||||
assert api1.option('multi').value.get() == [['val', None]]
|
||||
assert api3.config('conf1').option('multi').value.get() == [['val', None]]
|
||||
assert api3.option('multi').value.get() == [['val']]
|
||||
|
Reference in New Issue
Block a user