some tests

This commit is contained in:
2018-04-12 23:04:33 +02:00
parent 3d6696b26d
commit 2b08ab35d6
9 changed files with 153 additions and 125 deletions

View File

@ -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():

View File

@ -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

View File

@ -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,

View File

@ -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))")

View File

@ -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']]