diff --git a/src/rougail/tiramisureflector.py b/src/rougail/tiramisureflector.py
index 025a0dea..d43cb700 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/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/flattener_dicos/01auto_base/makedict/base.json b/tests/flattener_dicos/01auto_base/makedict/base.json
index 86ba9458..b58d6e7c 100644
--- a/tests/flattener_dicos/01auto_base/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/01fill_autofreeze/makedict/base.json b/tests/flattener_dicos/01fill_autofreeze/makedict/base.json
index 47b2052a..2dac1070 100644
--- a/tests/flattener_dicos/01fill_autofreeze/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/01fill_autosave/makedict/base.json b/tests/flattener_dicos/01fill_autosave/makedict/base.json
index 86ba9458..b58d6e7c 100644
--- a/tests/flattener_dicos/01fill_autosave/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/01fill_base/makedict/base.json b/tests/flattener_dicos/01fill_base/makedict/base.json
index 86ba9458..b58d6e7c 100644
--- a/tests/flattener_dicos/01fill_base/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/01fill_baseaccent/makedict/base.json b/tests/flattener_dicos/01fill_baseaccent/makedict/base.json
index 86ba9458..b58d6e7c 100644
--- a/tests/flattener_dicos/01fill_baseaccent/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/01fill_information/00-base.xml b/tests/flattener_dicos/01fill_information/00-base.xml
new file mode 100644
index 00000000..c47a2766
--- /dev/null
+++ b/tests/flattener_dicos/01fill_information/00-base.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ info
+
+
+
+
+
+
+
diff --git a/tests/flattener_dicos/01fill_information/__init__.py b/tests/flattener_dicos/01fill_information/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/flattener_dicos/01fill_information/makedict/base.json b/tests/flattener_dicos/01fill_information/makedict/base.json
new file mode 100644
index 00000000..5f62f349
--- /dev/null
+++ b/tests/flattener_dicos/01fill_information/makedict/base.json
@@ -0,0 +1 @@
+{"rougail.general.mode_conteneur_actif": "value"}
diff --git a/tests/flattener_dicos/01fill_information/tiramisu/__init__.py b/tests/flattener_dicos/01fill_information/tiramisu/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/flattener_dicos/01fill_information/tiramisu/base.py b/tests/flattener_dicos/01fill_information/tiramisu/base.py
new file mode 100644
index 00000000..4630e4f2
--- /dev/null
+++ b/tests/flattener_dicos/01fill_information/tiramisu/base.py
@@ -0,0 +1,8 @@
+from tiramisu import *
+from rougail.tiramisu import ConvertDynOptionDescription
+import imp
+func = imp.load_source('func', 'tests/flattener_dicos/../eosfunc/test.py')
+option_3 = StrOption(properties=frozenset({'force_default_on_freeze', 'frozen', 'hidden', 'mandatory', 'normal'}), name='mode_conteneur_actif', doc='No change', multi=False, default=Calculation(func.calc_val, Params((ParamInformation("info")), kwargs={})))
+option_2 = OptionDescription(name='general', doc='general', properties=frozenset({'normal'}), children=[option_3])
+option_1 = OptionDescription(name='rougail', doc='rougail', children=[option_2])
+option_0 = OptionDescription(name='baseoption', doc='baseoption', children=[option_1])
diff --git a/tests/flattener_dicos/01fill_mandatory/00-base.xml b/tests/flattener_dicos/01fill_mandatory/00-base.xml
index 36dac3d8..e6c39d4d 100644
--- a/tests/flattener_dicos/01fill_mandatory/00-base.xml
+++ b/tests/flattener_dicos/01fill_mandatory/00-base.xml
@@ -5,7 +5,7 @@
-
+
non
diff --git a/tests/flattener_dicos/01fill_mandatory/makedict/base.json b/tests/flattener_dicos/01fill_mandatory/makedict/base.json
index 86ba9458..b58d6e7c 100644
--- a/tests/flattener_dicos/01fill_mandatory/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/01fill_mandatory/tiramisu/base.py b/tests/flattener_dicos/01fill_mandatory/tiramisu/base.py
index ca545b2f..0d3772e3 100644
--- a/tests/flattener_dicos/01fill_mandatory/tiramisu/base.py
+++ b/tests/flattener_dicos/01fill_mandatory/tiramisu/base.py
@@ -3,7 +3,7 @@ from rougail.tiramisu import ConvertDynOptionDescription
import imp
func = imp.load_source('func', 'tests/flattener_dicos/../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/flattener_dicos/01fill_number/makedict/base.json b/tests/flattener_dicos/01fill_number/makedict/base.json
index 86ba9458..87a5f7d7 100644
--- a/tests/flattener_dicos/01fill_number/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/01fill_optional/makedict/base.json b/tests/flattener_dicos/01fill_optional/makedict/base.json
index 86ba9458..b58d6e7c 100644
--- a/tests/flattener_dicos/01fill_optional/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/10autosave_hidden/makedict/base.json b/tests/flattener_dicos/10autosave_hidden/makedict/base.json
index 6f9b1c86..2a8f28f8 100644
--- a/tests/flattener_dicos/10autosave_hidden/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/10autosave_hidden_frozenifin/makedict/base.json b/tests/flattener_dicos/10autosave_hidden_frozenifin/makedict/base.json
index 6f9b1c86..2a8f28f8 100644
--- a/tests/flattener_dicos/10autosave_hidden_frozenifin/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/10load_frozenifin_auto/makedict/base.json b/tests/flattener_dicos/10load_frozenifin_auto/makedict/base.json
index 67a2eb8a..25db64a2 100644
--- a/tests/flattener_dicos/10load_frozenifin_auto/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/10valid_enum_variable/makedict/base.json b/tests/flattener_dicos/10valid_enum_variable/makedict/base.json
index 44c619c4..872cd683 100644
--- a/tests/flattener_dicos/10valid_enum_variable/makedict/base.json
+++ b/tests/flattener_dicos/10valid_enum_variable/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "rougail.enumfam.enumvar": "test", "rougail.enumfam.varmulti": ["test"]}
+{"rougail.general.mode_conteneur_actif": "non", "rougail.enumfam.varmulti": ["test"], "rougail.enumfam.enumvar": "test"}
diff --git a/tests/flattener_dicos/20family_dynamic_calc/makedict/base.json b/tests/flattener_dicos/20family_dynamic_calc/makedict/base.json
index 82b6fff8..c26e3740 100644
--- a/tests/flattener_dicos/20family_dynamic_calc/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/20family_dynamic_number/makedict/base.json b/tests/flattener_dicos/20family_dynamic_number/makedict/base.json
index 87a929d7..ceae633c 100644
--- a/tests/flattener_dicos/20family_dynamic_number/makedict/base.json
+++ b/tests/flattener_dicos/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/flattener_dicos/30mandatory_withoutvaluecalc/makedict/base.json b/tests/flattener_dicos/30mandatory_withoutvaluecalc/makedict/base.json
index dc0cf526..5f62f349 100644
--- a/tests/flattener_dicos/30mandatory_withoutvaluecalc/makedict/base.json
+++ b/tests/flattener_dicos/30mandatory_withoutvaluecalc/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": null}
+{"rougail.general.mode_conteneur_actif": "value"}
diff --git a/tests/flattener_dicos/30mandatory_withvaluecalc/makedict/base.json b/tests/flattener_dicos/30mandatory_withvaluecalc/makedict/base.json
index dc0cf526..5f62f349 100644
--- a/tests/flattener_dicos/30mandatory_withvaluecalc/makedict/base.json
+++ b/tests/flattener_dicos/30mandatory_withvaluecalc/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": null}
+{"rougail.general.mode_conteneur_actif": "value"}
diff --git a/tests/flattener_dicos/60action_external/makedict/base.json b/tests/flattener_dicos/60action_external/makedict/base.json
index c2f531b4..0b1ab7e2 100644
--- a/tests/flattener_dicos/60action_external/makedict/base.json
+++ b/tests/flattener_dicos/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/test_2_makedict.py b/tests/test_2_makedict.py
index 272a112f..ab36aa9b 100644
--- a/tests/test_2_makedict.py
+++ b/tests/test_2_makedict.py
@@ -48,6 +48,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):