from tiramisu.config import Config
from tiramisu.option import ChoiceOption, BoolOption, IntOption, \
StrOption, OptionDescription
-from tiramisu.error import SlaveError
+from tiramisu.error import SlaveError, PropertiesOptionError
from py.test import raises
time_zone = ChoiceOption('time_zone', 'fuseau horaire du serveur',
('Paris', 'Londres'), 'Paris')
- ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", properties=('test_perm',))
- netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-réseau", properties=('test_perm',))
+ ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé")
+ netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-réseau")
master = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
interface1 = OptionDescription('interface1', '', [master])
assert interface1.impl_get_group_type() == groups.master
+def test_groups_with_master_hidden_in_config():
+ ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", multi=True, properties=('hidden',))
+ netmask_admin_eth0 = StrOption('netmask_admin_eth0', "masque du sous-réseau", multi=True, properties=('hidden',))
+ interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
+ interface1.impl_set_group_type(groups.master)
+ cfg = Config(interface1)
+ cfg.read_write()
+ cfg.cfgimpl_get_settings().setpermissive(('hidden',))
+ cfg.getattr('ip_admin_eth0', force_permissive=True)
+ cfg.getattr('netmask_admin_eth0', force_permissive=True)
+ raises(PropertiesOptionError, "cfg.getattr('ip_admin_eth0')")
+ raises(PropertiesOptionError, "cfg.getattr('netmask_admin_eth0')")
+
+
+def test_groups_with_master_hidden_in_config2():
+ 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=('hidden',))
+ interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
+ interface1.impl_set_group_type(groups.master)
+ cfg = Config(interface1)
+ cfg.read_write()
+ cfg.cfgimpl_get_settings().setpermissive(('hidden',))
+ cfg.getattr('ip_admin_eth0', force_permissive=True)
+ cfg.getattr('netmask_admin_eth0', force_permissive=True)
+ cfg.getattr('ip_admin_eth0')
+ raises(PropertiesOptionError, "cfg.getattr('netmask_admin_eth0')")
+
+
+def test_groups_with_master_hidden_in_config3():
+ #if master is hidden, slave are hidden too
+ ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", multi=True, properties=('hidden',))
+ 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)
+ cfg = Config(interface1)
+ cfg.read_write()
+ cfg.cfgimpl_get_settings().setpermissive(('hidden',))
+ cfg.getattr('ip_admin_eth0', force_permissive=True)
+ cfg.getattr('netmask_admin_eth0', force_permissive=True)
+ raises(PropertiesOptionError, "cfg.getattr('ip_admin_eth0')")
+ raises(PropertiesOptionError, "cfg.getattr('netmask_admin_eth0')")
+
+
+
def test_allowed_groups():
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)
raises(ValueError, "interface1.impl_set_group_type('toto')")
+def test_values_with_master_disabled_master():
+ 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)
+ maconfig = OptionDescription('toto', '', [interface1])
+ cfg = Config(maconfig)
+ cfg.read_write()
+ cfg.ip_admin_eth0.ip_admin_eth0.append("192.168.230.145")
+ cfg.ip_admin_eth0.ip_admin_eth0.pop(0)
+ cfg.ip_admin_eth0.ip_admin_eth0.append("192.168.230.145")
+ cfg.ip_admin_eth0.netmask_admin_eth0 = ["192.168.230.145"]
+ del(cfg.ip_admin_eth0.netmask_admin_eth0)
+ cfg.cfgimpl_get_settings()[ip_admin_eth0].append('disabled')
+ raises(PropertiesOptionError, "cfg.ip_admin_eth0.netmask_admin_eth0[0] = '192.168.230.145'")
+
+
def test_master_not_valid_name():
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)