From 5eba872969bd2422773987b2119f79b7ddb3092b Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sat, 3 Oct 2020 22:10:32 +0200 Subject: [PATCH] add OptionInformation support --- src/rougail/tiramisureflector.py | 2 ++ tests/dictionaries/01auto_base/makedict/base.json | 2 +- tests/dictionaries/01fill_autofreeze/makedict/base.json | 2 +- tests/dictionaries/01fill_autosave/makedict/base.json | 2 +- tests/dictionaries/01fill_base/makedict/base.json | 2 +- tests/dictionaries/01fill_baseaccent/makedict/base.json | 2 +- tests/dictionaries/01fill_mandatory/00-base.xml | 2 +- tests/dictionaries/01fill_mandatory/makedict/base.json | 2 +- tests/dictionaries/01fill_mandatory/tiramisu/base.py | 2 +- tests/dictionaries/01fill_number/makedict/base.json | 2 +- tests/dictionaries/01fill_optional/makedict/base.json | 2 +- tests/dictionaries/10autosave_hidden/makedict/base.json | 2 +- .../10autosave_hidden_frozenifin/makedict/base.json | 2 +- tests/dictionaries/10load_frozenifin_auto/makedict/base.json | 2 +- tests/dictionaries/20family_dynamic_calc/makedict/base.json | 2 +- tests/dictionaries/20family_dynamic_number/makedict/base.json | 2 +- .../30mandatory_withoutvaluecalc/makedict/base.json | 2 +- .../dictionaries/30mandatory_withvaluecalc/makedict/base.json | 2 +- tests/dictionaries/60action_external/makedict/base.json | 2 +- tests/eosfunc/test.py | 3 ++- tests/test_2_makedict.py | 1 + 21 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/rougail/tiramisureflector.py b/src/rougail/tiramisureflector.py index 69fc93f9..9693f508 100644 --- a/src/rougail/tiramisureflector.py +++ b/src/rougail/tiramisureflector.py @@ -422,6 +422,8 @@ class Variable(Common): if hasattr(param, 'suffix'): value['suffix'] = param.suffix return self.build_param(value) + elif param.type == 'information': + return f'ParamInformation("{param.text}")' raise LoaderError(_('unknown param type {}').format(param.type)) def populate_value(self, diff --git a/tests/dictionaries/01auto_base/makedict/base.json b/tests/dictionaries/01auto_base/makedict/base.json index 86ba9458..b58d6e7c 100644 --- a/tests/dictionaries/01auto_base/makedict/base.json +++ b/tests/dictionaries/01auto_base/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non"} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif1": "non"} diff --git a/tests/dictionaries/01fill_autofreeze/makedict/base.json b/tests/dictionaries/01fill_autofreeze/makedict/base.json index 47b2052a..2dac1070 100644 --- a/tests/dictionaries/01fill_autofreeze/makedict/base.json +++ b/tests/dictionaries/01fill_autofreeze/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non", "rougail.general.module_instancie": "non"} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif1": "non", "rougail.general.module_instancie": "non"} diff --git a/tests/dictionaries/01fill_autosave/makedict/base.json b/tests/dictionaries/01fill_autosave/makedict/base.json index 86ba9458..b58d6e7c 100644 --- a/tests/dictionaries/01fill_autosave/makedict/base.json +++ b/tests/dictionaries/01fill_autosave/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non"} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif1": "non"} diff --git a/tests/dictionaries/01fill_base/makedict/base.json b/tests/dictionaries/01fill_base/makedict/base.json index 86ba9458..b58d6e7c 100644 --- a/tests/dictionaries/01fill_base/makedict/base.json +++ b/tests/dictionaries/01fill_base/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non"} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif1": "non"} diff --git a/tests/dictionaries/01fill_baseaccent/makedict/base.json b/tests/dictionaries/01fill_baseaccent/makedict/base.json index 86ba9458..b58d6e7c 100644 --- a/tests/dictionaries/01fill_baseaccent/makedict/base.json +++ b/tests/dictionaries/01fill_baseaccent/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non"} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif1": "non"} diff --git a/tests/dictionaries/01fill_mandatory/00-base.xml b/tests/dictionaries/01fill_mandatory/00-base.xml index 36dac3d8..e6c39d4d 100644 --- a/tests/dictionaries/01fill_mandatory/00-base.xml +++ b/tests/dictionaries/01fill_mandatory/00-base.xml @@ -5,7 +5,7 @@ - + non diff --git a/tests/dictionaries/01fill_mandatory/makedict/base.json b/tests/dictionaries/01fill_mandatory/makedict/base.json index 86ba9458..b58d6e7c 100644 --- a/tests/dictionaries/01fill_mandatory/makedict/base.json +++ b/tests/dictionaries/01fill_mandatory/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non"} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif1": "non"} diff --git a/tests/dictionaries/01fill_mandatory/tiramisu/base.py b/tests/dictionaries/01fill_mandatory/tiramisu/base.py index 97c28412..e4b5e843 100644 --- a/tests/dictionaries/01fill_mandatory/tiramisu/base.py +++ b/tests/dictionaries/01fill_mandatory/tiramisu/base.py @@ -6,7 +6,7 @@ from rougail.tiramisu import ConvertDynOptionDescription import imp func = imp.load_source('func', 'tests/dictionaries/../eosfunc/test.py') option_4 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif1', doc='No change', multi=False, default='non', values=('oui', 'non')) -option_3 = DomainnameOption(type='domainname', allow_ip=False, properties=frozenset({'expert', 'mandatory'}), name='mode_conteneur_actif', doc='No change', multi=False, default=Calculation(func.calc_val, Params((ParamOption(option_4, notraisepropertyerror=False, todict=False)), kwargs={}))) +option_3 = ChoiceOption(properties=frozenset({'expert', 'mandatory'}), name='mode_conteneur_actif', doc='No change', multi=False, default=Calculation(func.calc_val, Params((ParamOption(option_4, notraisepropertyerror=False, todict=False)), kwargs={})), values=('oui', 'non')) option_2 = OptionDescription(name='general', doc='general', properties=frozenset({'normal'}), children=[option_3, option_4]) option_1 = OptionDescription(name='rougail', doc='rougail', children=[option_2]) option_0 = OptionDescription(name='baseoption', doc='baseoption', children=[option_1]) diff --git a/tests/dictionaries/01fill_number/makedict/base.json b/tests/dictionaries/01fill_number/makedict/base.json index 86ba9458..87a5f7d7 100644 --- a/tests/dictionaries/01fill_number/makedict/base.json +++ b/tests/dictionaries/01fill_number/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non"} +{"rougail.general.mode_conteneur_actif": 3, "rougail.general.mode_conteneur_actif1": "non"} diff --git a/tests/dictionaries/01fill_optional/makedict/base.json b/tests/dictionaries/01fill_optional/makedict/base.json index 86ba9458..b58d6e7c 100644 --- a/tests/dictionaries/01fill_optional/makedict/base.json +++ b/tests/dictionaries/01fill_optional/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif1": "non"} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif1": "non"} diff --git a/tests/dictionaries/10autosave_hidden/makedict/base.json b/tests/dictionaries/10autosave_hidden/makedict/base.json index 6f9b1c86..2a8f28f8 100644 --- a/tests/dictionaries/10autosave_hidden/makedict/base.json +++ b/tests/dictionaries/10autosave_hidden/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": "non", "rougail.general.autosavevar": null} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.autosavevar": "oui"} diff --git a/tests/dictionaries/10autosave_hidden_frozenifin/makedict/base.json b/tests/dictionaries/10autosave_hidden_frozenifin/makedict/base.json index 6f9b1c86..2a8f28f8 100644 --- a/tests/dictionaries/10autosave_hidden_frozenifin/makedict/base.json +++ b/tests/dictionaries/10autosave_hidden_frozenifin/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": "non", "rougail.general.autosavevar": null} +{"rougail.general.mode_conteneur_actif": "non", "rougail.general.autosavevar": "oui"} diff --git a/tests/dictionaries/10load_frozenifin_auto/makedict/base.json b/tests/dictionaries/10load_frozenifin_auto/makedict/base.json index 67a2eb8a..25db64a2 100644 --- a/tests/dictionaries/10load_frozenifin_auto/makedict/base.json +++ b/tests/dictionaries/10load_frozenifin_auto/makedict/base.json @@ -1 +1 @@ -{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": null, "rougail.general.mode_conteneur_actif2": "non"} +{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non"} diff --git a/tests/dictionaries/20family_dynamic_calc/makedict/base.json b/tests/dictionaries/20family_dynamic_calc/makedict/base.json index 82b6fff8..c26e3740 100644 --- a/tests/dictionaries/20family_dynamic_calc/makedict/base.json +++ b/tests/dictionaries/20family_dynamic_calc/makedict/base.json @@ -1 +1 @@ -{"rougail.general.varname": ["val1", "val2"], "rougail.dynval1.vardynval1": "val", "rougail.dynval2.vardynval2": "val", "rougail.new.newvar": null} +{"rougail.general.varname": ["val1", "val2"], "rougail.dynval1.vardynval1": "val", "rougail.dynval2.vardynval2": "val", "rougail.new.newvar": "val"} diff --git a/tests/dictionaries/20family_dynamic_number/makedict/base.json b/tests/dictionaries/20family_dynamic_number/makedict/base.json index 87a929d7..ceae633c 100644 --- a/tests/dictionaries/20family_dynamic_number/makedict/base.json +++ b/tests/dictionaries/20family_dynamic_number/makedict/base.json @@ -1 +1 @@ -{"rougail.general.varname": [1, 2], "rougail.dyn1.vardyn1": "val", "rougail.dyn2.vardyn2": "val", "rougail.new.newvar": null} +{"rougail.general.varname": [1, 2], "rougail.dyn1.vardyn1": "val", "rougail.dyn2.vardyn2": "val", "rougail.new.newvar": "val"} diff --git a/tests/dictionaries/30mandatory_withoutvaluecalc/makedict/base.json b/tests/dictionaries/30mandatory_withoutvaluecalc/makedict/base.json index dc0cf526..5f62f349 100644 --- a/tests/dictionaries/30mandatory_withoutvaluecalc/makedict/base.json +++ b/tests/dictionaries/30mandatory_withoutvaluecalc/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null} +{"rougail.general.mode_conteneur_actif": "value"} diff --git a/tests/dictionaries/30mandatory_withvaluecalc/makedict/base.json b/tests/dictionaries/30mandatory_withvaluecalc/makedict/base.json index dc0cf526..5f62f349 100644 --- a/tests/dictionaries/30mandatory_withvaluecalc/makedict/base.json +++ b/tests/dictionaries/30mandatory_withvaluecalc/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": null} +{"rougail.general.mode_conteneur_actif": "value"} diff --git a/tests/dictionaries/60action_external/makedict/base.json b/tests/dictionaries/60action_external/makedict/base.json index c2f531b4..0b1ab7e2 100644 --- a/tests/dictionaries/60action_external/makedict/base.json +++ b/tests/dictionaries/60action_external/makedict/base.json @@ -1 +1 @@ -{"rougail.general.mode_conteneur_actif": "non", "extra.test.delay": 0, "extra.test.calc_url": null} +{"rougail.general.mode_conteneur_actif": "non", "extra.test.delay": 0, "extra.test.calc_url": "http://localhost/"} diff --git a/tests/eosfunc/test.py b/tests/eosfunc/test.py index 887c9a8d..d258ac45 100644 --- a/tests/eosfunc/test.py +++ b/tests/eosfunc/test.py @@ -1,7 +1,8 @@ from tiramisu import valid_not_equal, valid_ip_netmask, calc_value def calc_val(*args, **kwargs): - pass + if len(args) > 0: + return args[0] def concat(*args, **kwargs): diff --git a/tests/test_2_makedict.py b/tests/test_2_makedict.py index 5657d98e..ba438859 100644 --- a/tests/test_2_makedict.py +++ b/tests/test_2_makedict.py @@ -45,6 +45,7 @@ async def launch_flattener(test_dir): config = await Config(mod.option_0) await config.property.read_only() await config.property.pop('mandatory') + await config.information.set('info', 'value') config_dict = await config.value.dict() if config_dict: if not isdir(makedict_dir):