diff --git a/test/test_parsing_group.py b/test/test_parsing_group.py index 2e1e5ba..f97f4f6 100644 --- a/test/test_parsing_group.py +++ b/test/test_parsing_group.py @@ -3,6 +3,8 @@ import autopath from tiramisu.config import * from tiramisu.option import * +from py.test import raises + def make_description(): numero_etab = StrOption('numero_etab', "identifiant de l'établissement") nom_machine = StrOption('nom_machine', "nom de la machine", default="eoleng") @@ -74,3 +76,70 @@ def test_iter_on_empty_group(): for i in config: pass assert [] == list(config) + +def make_master_group(): + numero_etab = StrOption('numero_etab', "identifiant de l'établissement") + nom_machine = StrOption('nom_machine', "nom de la machine", default="eoleng") + nombre_interfaces = IntOption('nombre_interfaces', "nombre d'interfaces à activer", + default=1) + activer_proxy_client = BoolOption('activer_proxy_client', "utiliser un proxy", + default=False) + mode_conteneur_actif = BoolOption('mode_conteneur_actif', "le serveur est en mode conteneur", + default=False) + adresse_serveur_ntp = StrOption('serveur_ntp', "adresse serveur ntp", multi=True) + time_zone = ChoiceOption('time_zone', 'fuseau horaire du serveur', + ['Paris', 'Londres'], 'Paris') + + 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]) + interface1.set_group_type('toto', master='interface1') + + general = OptionDescription('general', '', [numero_etab, nom_machine, + nombre_interfaces, activer_proxy_client, + mode_conteneur_actif, adresse_serveur_ntp, + time_zone]) + general.set_group_type('family') + creole = OptionDescription('creole', 'first tiramisu configuration', [general, interface1]) + descr = OptionDescription('baseconfig', 'baseconifgdescr', [creole] ) + return descr + +def test_allowed_groups(): + raises(ConfigError, "descr = make_master_group()") + +def make_master_group2(): + numero_etab = StrOption('numero_etab', "identifiant de l'établissement") + nom_machine = StrOption('nom_machine', "nom de la machine", default="eoleng") + nombre_interfaces = IntOption('nombre_interfaces', "nombre d'interfaces à activer", + default=1) + activer_proxy_client = BoolOption('activer_proxy_client', "utiliser un proxy", + default=False) + mode_conteneur_actif = BoolOption('mode_conteneur_actif', "le serveur est en mode conteneur", + default=False) + adresse_serveur_ntp = StrOption('serveur_ntp', "adresse serveur ntp", multi=True) + time_zone = ChoiceOption('time_zone', 'fuseau horaire du serveur', + ['Paris', 'Londres'], 'Paris') + + 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]) + interface1.set_group_type('group', master='interface1') + + general = OptionDescription('general', '', [numero_etab, nom_machine, + nombre_interfaces, activer_proxy_client, + mode_conteneur_actif, adresse_serveur_ntp, + time_zone]) + general.set_group_type('family') + creole = OptionDescription('creole', 'first tiramisu configuration', [general, interface1]) + descr = OptionDescription('baseconfig', 'baseconifgdescr', [creole] ) + return descr + +def test_group_is_master(): + descr = make_master_group2() + conf = Config(descr) + interface1 = conf.creole.interface1 + assert interface1._cfgimpl_descr.get_master_name() == "interface1"