add _second_level_validation (second's one return only warning almost _validator raise)
This commit is contained in:
@ -3,6 +3,7 @@ from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import StrOption, OptionDescription
|
||||
from tiramisu.setting import groups
|
||||
|
||||
|
||||
def return_true(value, param=None):
|
||||
@ -88,3 +89,22 @@ def test_validator_warning():
|
||||
assert cfg.cfgimpl_get_values().get_last_warning() == 'invalid value val1 for option opt3: error'
|
||||
assert cfg.cfgimpl_get_values().has_warning() is False
|
||||
raises(ValueError, "cfg.opt2 = 1")
|
||||
|
||||
|
||||
def test_validator_warning_master_slave():
|
||||
ip_admin_eth0 = StrOption('ip_admin_eth0', "ip reseau autorise", multi=True, validator=return_false, only_warning=True)
|
||||
netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-reseau", multi=True, validator=return_if_val, only_warning=True)
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1.impl_set_group_type(groups.master)
|
||||
assert interface1.impl_get_group_type() == groups.master
|
||||
root = OptionDescription('root', '', [interface1])
|
||||
cfg = Config(root)
|
||||
cfg.ip_admin_eth0.ip_admin_eth0.append(None)
|
||||
assert cfg.cfgimpl_get_values().has_warning() is False
|
||||
cfg.ip_admin_eth0.netmask_admin_eth0 = ['val1']
|
||||
assert cfg.ip_admin_eth0.netmask_admin_eth0 == ['val1']
|
||||
assert cfg.cfgimpl_get_values().has_warning() is True
|
||||
assert cfg.cfgimpl_get_values().get_last_warning() == 'invalid value val1 for option netmask_admin_eth0: error'
|
||||
cfg.ip_admin_eth0.ip_admin_eth0 = ['val']
|
||||
assert cfg.ip_admin_eth0.ip_admin_eth0 == ['val']
|
||||
assert cfg.cfgimpl_get_values().get_last_warning() == 'invalid value val for option ip_admin_eth0: error'
|
||||
|
Reference in New Issue
Block a user