add global 'empty' property, this property raise mandatory PropertiesOptionError if multi or master have empty value
This commit is contained in:
@ -1,12 +1,13 @@
|
||||
# coding: utf-8
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from time import sleep
|
||||
|
||||
#from py.test import raises
|
||||
from py.test import raises
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import StrOption, UnicodeOption, OptionDescription
|
||||
from tiramisu.error import PropertiesOptionError
|
||||
from tiramisu.setting import groups
|
||||
|
||||
|
||||
def make_description():
|
||||
@ -316,3 +317,87 @@ def test_mandatory_warnings_frozen():
|
||||
config.read_only()
|
||||
assert config.cfgimpl_get_values().mandatory_warnings() == ['str', 'str1', 'unicode2', 'str3']
|
||||
sleep(.1)
|
||||
|
||||
|
||||
def test_mandatory_master():
|
||||
ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", multi=True,
|
||||
properties=('mandatory', ))
|
||||
netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-réseau",
|
||||
multi=True)
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1.impl_set_group_type(groups.master)
|
||||
o = OptionDescription('o', '', [interface1])
|
||||
config = Config(o)
|
||||
config.read_only()
|
||||
raises(PropertiesOptionError, 'config.ip_admin_eth0.ip_admin_eth0')
|
||||
raises(PropertiesOptionError, 'config.ip_admin_eth0.netmask_admin_eth0')
|
||||
|
||||
|
||||
def test_mandatory_master_empty():
|
||||
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",
|
||||
multi=True)
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1.impl_set_group_type(groups.master)
|
||||
o = OptionDescription('o', '', [interface1])
|
||||
config = Config(o)
|
||||
config.read_write()
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == []
|
||||
assert config.ip_admin_eth0.netmask_admin_eth0 == []
|
||||
#
|
||||
config.ip_admin_eth0.ip_admin_eth0.append()
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == [None]
|
||||
assert config.ip_admin_eth0.netmask_admin_eth0 == [None]
|
||||
config.read_only()
|
||||
raises(PropertiesOptionError, "config.ip_admin_eth0.ip_admin_eth0")
|
||||
raises(PropertiesOptionError, "config.ip_admin_eth0.netmask_admin_eth0")
|
||||
config.read_write()
|
||||
del(config.ip_admin_eth0.ip_admin_eth0)
|
||||
del(config.ip_admin_eth0.netmask_admin_eth0)
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == []
|
||||
assert config.ip_admin_eth0.netmask_admin_eth0 == []
|
||||
#
|
||||
config.ip_admin_eth0.ip_admin_eth0.append('')
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == ['']
|
||||
assert config.ip_admin_eth0.netmask_admin_eth0 == [None]
|
||||
config.read_only()
|
||||
raises(PropertiesOptionError, "config.ip_admin_eth0.ip_admin_eth0")
|
||||
raises(PropertiesOptionError, "config.ip_admin_eth0.netmask_admin_eth0")
|
||||
config.read_write()
|
||||
#
|
||||
config.read_write()
|
||||
config.ip_admin_eth0.ip_admin_eth0 = ['ip']
|
||||
config.read_only()
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == ['ip']
|
||||
assert config.ip_admin_eth0.netmask_admin_eth0 == [None]
|
||||
|
||||
|
||||
def test_mandatory_slave():
|
||||
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",
|
||||
multi=True, properties=('mandatory', ))
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1.impl_set_group_type(groups.master)
|
||||
o = OptionDescription('o', '', [interface1])
|
||||
config = Config(o)
|
||||
config.read_only()
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == []
|
||||
assert config.ip_admin_eth0.netmask_admin_eth0 == []
|
||||
#
|
||||
config.read_write()
|
||||
config.ip_admin_eth0.ip_admin_eth0.append('ip')
|
||||
config.read_only()
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == ['ip']
|
||||
raises(PropertiesOptionError, 'config.ip_admin_eth0.netmask_admin_eth0')
|
||||
#
|
||||
config.read_write()
|
||||
config.ip_admin_eth0.netmask_admin_eth0 = ['']
|
||||
config.read_only()
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == ['ip']
|
||||
raises(PropertiesOptionError, 'config.ip_admin_eth0.netmask_admin_eth0')
|
||||
#
|
||||
config.read_write()
|
||||
config.ip_admin_eth0.netmask_admin_eth0 = ['ip']
|
||||
config.read_only()
|
||||
assert config.ip_admin_eth0.ip_admin_eth0 == ['ip']
|
||||
assert config.ip_admin_eth0.netmask_admin_eth0 == ['ip']
|
||||
|
Reference in New Issue
Block a user