test coverage
This commit is contained in:
parent
721ff8643d
commit
df77bc8738
8 changed files with 74 additions and 41 deletions
|
@ -919,9 +919,8 @@ def autocheck_set_owner(cfg, mcfg, pathread, pathwrite, confread, confwrite, **k
|
|||
if not isslave:
|
||||
if not kwargs.get('permissive', False) and not kwargs.get('propertyerror', False):
|
||||
cfg.config(confwrite).option(pathwrite).owner.set('new_user')
|
||||
raises(ConfigError, "cfg.config(confwrite).option(pathwrite).owner.set('default')")
|
||||
raises(ConfigError, "cfg.config(confwrite).option(pathwrite).owner.set('forced')")
|
||||
raises(ConfigError, "cfg.config(confwrite).option(pathwrite).owner.set('meta')")
|
||||
raises(ValueError, "cfg.config(confwrite).option(pathwrite).owner.set('default')")
|
||||
raises(ValueError, "cfg.config(confwrite).option(pathwrite).owner.set('forced')")
|
||||
#FIXME else:
|
||||
# raises(PropertiesOptionError, "cfg.config(confwrite).option(pathwrite).owner.set('new_user')")
|
||||
else:
|
||||
|
@ -1081,7 +1080,7 @@ def autocheck_find(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs
|
|||
def _getoption(opt):
|
||||
opt = opt.option.get()
|
||||
if opt.impl_is_dynsymlinkoption():
|
||||
opt = opt.impl_getopt()
|
||||
opt = opt._opt
|
||||
return opt
|
||||
|
||||
def _getoptions(opts):
|
||||
|
|
|
@ -191,12 +191,15 @@ def test_get_modified_values():
|
|||
root = OptionDescription('root', '', [d1])
|
||||
config = Config(root)
|
||||
assert to_tuple(config.value.exportation()) == ((), (), (), ())
|
||||
assert not config.option('od.g5').option.ismulti()
|
||||
assert not config.option('od.g5').option.issubmulti()
|
||||
config.option('od.g5').value.set('yes')
|
||||
assert to_tuple(config.value.exportation()) == (('od.g5',), (None,), ('yes',), ('user',))
|
||||
config.option('od.g4').value.set(True)
|
||||
assert to_tuple(config.value.exportation()) == (('od.g5', 'od.g4'), (None, None), ('yes', True), ('user', 'user'))
|
||||
config.option('od.g4').value.reset()
|
||||
assert to_tuple(config.value.exportation()) == (('od.g5',), (None,), ('yes',), ('user',))
|
||||
assert config.option('od.g6').option.ismulti()
|
||||
config.option('od.g6').value.set([undefined])
|
||||
assert to_tuple(config.value.exportation()) == (('od.g5', 'od.g6'), (None, None), ('yes', (None,)), ('user', 'user'))
|
||||
config.option('od.g6').value.set([])
|
||||
|
|
|
@ -205,6 +205,10 @@ def test_groups_is_master():
|
|||
assert api.option('ip_admin_eth0').option.ismasterslaves()
|
||||
assert not api.option('od2.var').option.ismaster()
|
||||
assert not api.option('od2.var').option.isslave()
|
||||
assert api.option('ip_admin_eth0.ip_admin_eth0').option.ismulti()
|
||||
assert api.option('ip_admin_eth0.netmask_admin_eth0').option.ismulti()
|
||||
assert not api.option('ip_admin_eth0.ip_admin_eth0').option.issubmulti()
|
||||
assert not api.option('ip_admin_eth0.netmask_admin_eth0').option.issubmulti()
|
||||
assert api.option('ip_admin_eth0.ip_admin_eth0').option.ismaster()
|
||||
assert not api.option('ip_admin_eth0.ip_admin_eth0').option.isslave()
|
||||
assert not api.option('ip_admin_eth0.netmask_admin_eth0').option.ismaster()
|
||||
|
|
|
@ -83,6 +83,22 @@ def test_none():
|
|||
meta.config('conf1').option('od1.i3').value.reset()
|
||||
assert meta.option('od1.i3').value.get() is meta.config('conf1').option('od1.i3').value.get() is meta.config('conf2').option('od1.i3').value.get() is None
|
||||
assert meta.option('od1.i3').owner.get() is meta.config('conf1').option('od1.i3').owner.get() is meta.config('conf2').option('od1.i3').owner.get() is owners.default
|
||||
#
|
||||
assert meta.config(None).config.name() == meta.config.name()
|
||||
|
||||
|
||||
def test_reset():
|
||||
meta = make_metaconfig()
|
||||
assert meta.option('od1.i2').value.get() == 1
|
||||
meta.option('od1.i2').value.set(2)
|
||||
meta.config('conf1').option('od1.i2').value.set(3)
|
||||
assert meta.option('od1.i2').value.get() == 2
|
||||
assert meta.config('conf1').option('od1.i2').value.get() == 3
|
||||
assert meta.config('conf2').option('od1.i2').value.get() == 2
|
||||
meta.config.reset()
|
||||
assert meta.option('od1.i2').value.get() == 1
|
||||
assert meta.config('conf1').option('od1.i2').value.get() == 3
|
||||
assert meta.config('conf2').option('od1.i2').value.get() == 1
|
||||
|
||||
|
||||
def test_default():
|
||||
|
|
|
@ -87,6 +87,15 @@ def test_optiondescription_get_information():
|
|||
assert o.impl_getdoc() == description
|
||||
|
||||
|
||||
def test_option_isoptiondescription():
|
||||
i = IntOption('test', '')
|
||||
od = OptionDescription('od', '', [i])
|
||||
od = OptionDescription('od', '', [od])
|
||||
cfg = Config(od)
|
||||
assert cfg.option('od').option.isoptiondescription()
|
||||
assert not cfg.option('od.test').option.isoptiondescription()
|
||||
|
||||
|
||||
def test_option_multi():
|
||||
IntOption('test', '', multi=True)
|
||||
IntOption('test', '', multi=True, default_multi=1)
|
||||
|
@ -127,6 +136,7 @@ def test_optiondescription_group():
|
|||
assert len(list(api.option.list('optiondescription'))) == 2
|
||||
assert len(list(api.option.list('optiondescription', group_type=groups.family))) == 1
|
||||
assert len(list(api.option.list('optiondescription', group_type=groups.notfamily))) == 1
|
||||
raises(APIError, "list(api.option.list('unknown'))")
|
||||
|
||||
|
||||
def test_optiondescription_group_redefined():
|
||||
|
|
|
@ -46,6 +46,8 @@ def test_requires():
|
|||
od = OptionDescription('service', '', [a, b])
|
||||
api = Config(od)
|
||||
api.property.read_write()
|
||||
assert not api.option('activate_service').option.requires()
|
||||
assert api.option('ip_address_service').option.requires()
|
||||
api.option('ip_address_service').value.get()
|
||||
api.option('activate_service').value.set(False)
|
||||
props = []
|
||||
|
|
|
@ -41,6 +41,8 @@ def test_submulti():
|
|||
multi3 = StrOption('multi3', '', default=[['yes']], multi=submulti)
|
||||
od = OptionDescription('od', '', [multi, multi2, multi3])
|
||||
api = Config(od)
|
||||
assert api.option('multi').option.ismulti()
|
||||
assert api.option('multi').option.issubmulti()
|
||||
assert api.option('multi').owner.get() == owners.default
|
||||
assert api.option('multi').value.get() == []
|
||||
assert api.option('multi').owner.get() == owners.default
|
||||
|
|
|
@ -156,9 +156,9 @@ class CommonTiramisuOption(CommonTiramisu):
|
|||
if self.option_bag.index is None and option.impl_is_master_slaves('slave'):
|
||||
raise APIError(_('index must be set with the slave option "{}"').format(self.option_bag.path))
|
||||
elif self.option_bag.index is not None and not option.impl_is_master_slaves('slave'):
|
||||
raise APIError(_('index must be set only with a slave option, not for "{}"').format(self.option_bag.path))
|
||||
raise APIError(_('index must be set only with a slave option, not for "{}"').format(self.option_bag.path)) # pragma: no cover
|
||||
|
||||
def __getattr__(self, name):
|
||||
def __getattr__(self, name): # pragma: no cover
|
||||
if not hasattr(CommonTiramisuOption, name):
|
||||
raise APIError(_('unknown method {}').format(name))
|
||||
else:
|
||||
|
@ -246,7 +246,7 @@ class TiramisuOptionOption(CommonTiramisuOption):
|
|||
option = self.option_bag.option
|
||||
if not option.impl_is_optiondescription() and not name.startswith('_'):
|
||||
return getattr(self, '_' + name)
|
||||
raise APIError(_('{} is unknown').format(name))
|
||||
raise APIError(_('{} is unknown').format(name)) # pragma: no cover
|
||||
|
||||
def isoptiondescription(self):
|
||||
"""test if option is an optiondescription"""
|
||||
|
@ -560,9 +560,6 @@ class TiramisuOption(CommonTiramisu):
|
|||
self._path = path
|
||||
self.index = index
|
||||
self.config_bag = config_bag
|
||||
if option_bag:
|
||||
self.option_bag = option_bag
|
||||
else:
|
||||
self.option_bag = OptionBag()
|
||||
self.option_bag.path = self._path
|
||||
self.option_bag.index = self.index
|
||||
|
@ -577,7 +574,7 @@ class TiramisuOption(CommonTiramisu):
|
|||
self.option_bag)
|
||||
elif self._get_option().impl_is_optiondescription() and not subfunc.startswith('_'):
|
||||
return getattr(self, '_' + subfunc)
|
||||
raise APIError(_('please specify a valid sub function ({})').format(subfunc))
|
||||
raise APIError(_('please specify a valid sub function ({})').format(subfunc)) # pragma: no cover
|
||||
|
||||
def _find(self,
|
||||
name: str,
|
||||
|
@ -613,29 +610,29 @@ class TiramisuOption(CommonTiramisu):
|
|||
return t_option
|
||||
ret.append(t_option)
|
||||
return ret
|
||||
|
||||
def _get(self, name):
|
||||
self._get_option()
|
||||
current_option = self.option_bag.option.impl_getchild(name,
|
||||
self.config_bag,
|
||||
self.subconfig.cfgimpl_get_path)
|
||||
path = self.option_bag.path + '.' + name
|
||||
option_bag= OptionBag()
|
||||
option_bag.set_option(current_option,
|
||||
path,
|
||||
None,
|
||||
self.config_bag)
|
||||
if current_option.impl_is_optiondescription():
|
||||
subconfig = self.subconfig.getattr(name,
|
||||
option_bag)
|
||||
else:
|
||||
subconfig = self.subconfig
|
||||
return TiramisuOption(name,
|
||||
path,
|
||||
None,
|
||||
subconfig,
|
||||
self.config_bag,
|
||||
option_bag)
|
||||
#
|
||||
# def _get(self, name):
|
||||
# self._get_option()
|
||||
# current_option = self.option_bag.option.impl_getchild(name,
|
||||
# self.config_bag,
|
||||
# self.subconfig.cfgimpl_get_path)
|
||||
# path = self.option_bag.path + '.' + name
|
||||
# option_bag= OptionBag()
|
||||
# option_bag.set_option(current_option,
|
||||
# path,
|
||||
# None,
|
||||
# self.config_bag)
|
||||
# if current_option.impl_is_optiondescription():
|
||||
# subconfig = self.subconfig.getattr(name,
|
||||
# option_bag)
|
||||
# else:
|
||||
# subconfig = self.subconfig
|
||||
# return TiramisuOption(name,
|
||||
# path,
|
||||
# None,
|
||||
# subconfig,
|
||||
# self.config_bag,
|
||||
# option_bag)
|
||||
|
||||
def _group_type(self):
|
||||
"""get type for an optiondescription (only for optiondescription)"""
|
||||
|
@ -992,7 +989,7 @@ class TiramisuContextConfig(TiramisuContext):
|
|||
return Config(self.config_bag.context.find_firsts(byname=name,
|
||||
byvalue=value,
|
||||
config_bag=self.config_bag))
|
||||
else:
|
||||
else: # pragma: no cover
|
||||
raise APIError('not implemented yet')
|
||||
|
||||
def name(self):
|
||||
|
@ -1064,9 +1061,9 @@ class TiramisuContextConfig(TiramisuContext):
|
|||
return getattr(self, '_g_' + name)
|
||||
elif isinstance(self.config_bag.context, KernelConfig):
|
||||
return getattr(self, '_c_' + name)
|
||||
except APIError:
|
||||
raise APIError(_('{} is unknown').format(name))
|
||||
except APIError: # pragma: no cover
|
||||
raise APIError(_('{} is unknown').format(name))
|
||||
raise APIError(_('{} is unknown').format(name)) # pragma: no cover
|
||||
|
||||
|
||||
class TiramisuDispatcher:
|
||||
|
|
Loading…
Reference in a new issue