diff --git a/doc/service/file.md b/doc/service/file.md
index 19bbd770a..0cbf57017 100644
--- a/doc/service/file.md
+++ b/doc/service/file.md
@@ -149,3 +149,20 @@ Ou d'utiliser le moteur "jinja2" :
```
/etc/squid/squid.conf
```
+
+## Inclusion de template
+
+Un attribut "include" permet de définir la nature du fichier. Cet attribut peut avoir trois valeurs :
+
+- "no" : c'est un fichier normal
+- "name" : le répertoire de destination est listé dans un autre template, il faut que le fichier soit généré avant cet autre template
+- "include" : le contenu du fichier est copié dans un autre template, il faut que le fichier soit généré avant cet autre template et ce fichier n'a pas besoin d'être installé sur le serveur cible.
+
+Exemples :
+
+```
+/etc/squid/squid.conf
+/etc/squid/squid.conf
+```
+
+Bien entendu, c'est au développeur de lister ou d'inclure le contenu de ce template dans le fichier de destination. Cet attribut permet juste de garantir que le fichier sera fait avant l'autre et de ne pas l'installer sur le serveur si ce n'est pas nécessaire.
diff --git a/src/rougail/data/rougail.dtd b/src/rougail/data/rougail.dtd
index 396a8a71c..5f5a04607 100644
--- a/src/rougail/data/rougail.dtd
+++ b/src/rougail/data/rougail.dtd
@@ -67,6 +67,7 @@
+
diff --git a/src/rougail/template/base.py b/src/rougail/template/base.py
index 98735f5c4..a295ddb7a 100644
--- a/src/rougail/template/base.py
+++ b/src/rougail/template/base.py
@@ -267,6 +267,7 @@ class RougailBaseTemplate:
source=source,
true_destfilename=destfile,
destfilename=destfilename,
+ destdir=self.destinations_dir,
variable=var,
rougail_variables_dict=self.rougail_variables_dict,
eosfunc=self.eosfunc,
@@ -285,16 +286,23 @@ class RougailBaseTemplate:
)
for template in listdir('.'):
self.prepare_template(template)
- for service_obj in await self.config.option('services').list('all'):
- service_name = await service_obj.option.name()
- for fills in await service_obj.list('all'):
- type_ = await fills.option.name()
- for fill_obj in await fills.list('all'):
- fill = await fill_obj.value.dict()
- if fill['activate']:
- self.instance_file(fill, type_, service_name)
- else:
- self.log.debug(_("Instantiation of file '{filename}' disabled"))
+ for include in (True, False):
+ for service_obj in await self.config.option('services').list('all'):
+ service_name = await service_obj.option.name()
+ for fills in await service_obj.list('all'):
+ type_ = await fills.option.name()
+ for fill_obj in await fills.list('all'):
+ fill = await fill_obj.value.dict()
+ if 'include' in fill:
+ if (fill['include'] == 'no' and include is True) or \
+ (fill['include'] != 'no' and include is False):
+ continue
+ elif include is True:
+ continue
+ if fill['activate']:
+ self.instance_file(fill, type_, service_name)
+ else:
+ self.log.debug(_("Instantiation of file '{filename}' disabled"))
self.post_instance()
chdir(ori_dir)
diff --git a/src/rougail/template/engine/creole.py b/src/rougail/template/engine/creole.py
index a1dcd830c..e71d48e61 100644
--- a/src/rougail/template/engine/creole.py
+++ b/src/rougail/template/engine/creole.py
@@ -96,6 +96,7 @@ def process(filename: str,
source: str,
true_destfilename: str,
destfilename: str,
+ destdir: str,
variable: Any,
rougail_variables_dict: Dict,
eosfunc: Dict,
@@ -105,7 +106,8 @@ def process(filename: str,
# full path of the destination file
try:
extra_context = {'normalize_family': normalize_family,
- 'rougail_filename': true_destfilename
+ 'rougail_filename': true_destfilename,
+ 'rougail_destination_dir': destdir,
}
if variable is not None:
extra_context['rougail_variable'] = variable
diff --git a/src/rougail/template/engine/jinja2.py b/src/rougail/template/engine/jinja2.py
index a447dfefb..cb1b18da4 100644
--- a/src/rougail/template/engine/jinja2.py
+++ b/src/rougail/template/engine/jinja2.py
@@ -37,6 +37,7 @@ def process(filename: str,
source: str,
true_destfilename: str,
destfilename: str,
+ destdir: str,
variable: Any,
rougail_variables_dict: Dict,
eosfunc: Dict,
@@ -55,9 +56,13 @@ def process(filename: str,
try:
# extra_context = {'normalize_family': normalize_family,
# eosfunc
- env = Environment(loader=FileSystemLoader(dir_name))
+ env = Environment(loader=FileSystemLoader([dir_name, destdir]))
template = env.get_template(template_name)
- data = template.render(**rougail_variables_dict, rougail_filename=true_destfilename, **var)
+ data = template.render(**rougail_variables_dict,
+ rougail_filename=true_destfilename,
+ rougail_destination_dir=destdir,
+ **var,
+ )
except UndefinedError as err: # pragma: no cover
varname = err
msg = f"Error: unknown variable used in template {filename} to {destfilename}: {varname}"
diff --git a/src/rougail/template/systemd.py b/src/rougail/template/systemd.py
index 9a3c025be..6d713f4ac 100644
--- a/src/rougail/template/systemd.py
+++ b/src/rougail/template/systemd.py
@@ -47,7 +47,7 @@ z %%filename - - - - -
%for %%service in %%services
%if %%hasattr(%%service, 'files')
%for %%file in %%service.files
- %if %%file.activate == True
+ %if %%file.activate == True and %%file.include != 'content'
%if %%isinstance(%%file.name, list)
%for %%filename in %%file.name
%%display(%%file, %%filename)%slurp
@@ -125,6 +125,7 @@ class RougailSystemdTemplate(RougailBaseTemplate):
source=ROUGAIL_TMPL_TEMPLATE,
true_destfilename=destfile,
destfilename=destfilename,
+ destdir=self.destinations_dir,
variable=None,
rougail_variables_dict=self.rougail_variables_dict,
eosfunc=self.eosfunc,
diff --git a/tests/dictionaries/01base_file/makedict/base.json b/tests/dictionaries/01base_file/makedict/base.json
index fe375f632..a09c3a9ce 100644
--- a/tests/dictionaries/01base_file/makedict/base.json
+++ b/tests/dictionaries/01base_file/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true, "services.test.files.file2.engine": "jinja2", "services.test.files.file2.group": "root", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/etc/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true, "services.test.files.file2.engine": "jinja2", "services.test.files.file2.group": "root", "services.test.files.file2.include": "no", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/etc/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true}
diff --git a/tests/dictionaries/01base_file/tiramisu/base.py b/tests/dictionaries/01base_file/tiramisu/base.py
index a66324825..ee74b1ce2 100644
--- a/tests/dictionaries/01base_file/tiramisu/base.py
+++ b/tests/dictionaries/01base_file/tiramisu/base.py
@@ -16,21 +16,23 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3],
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="file")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
-option_16 = StrOption(name="engine", doc="engine", default="jinja2")
-option_17 = StrOption(name="group", doc="group", default="root")
-option_18 = StrOption(name="mode", doc="mode", default="0644")
-option_19 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_20 = StrOption(name="owner", doc="owner", default="root")
-option_21 = StrOption(name="source", doc="source", default="file2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="file2", doc="file2", children=[option_16, option_17, option_18, option_19, option_20, option_21, option_22])
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_15])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="jinja2")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="file2")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="file2", doc="file2", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/01base_file_include/makedict/base.json b/tests/dictionaries/01base_file_include/makedict/base.json
index fe375f632..a09c3a9ce 100644
--- a/tests/dictionaries/01base_file_include/makedict/base.json
+++ b/tests/dictionaries/01base_file_include/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true, "services.test.files.file2.engine": "jinja2", "services.test.files.file2.group": "root", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/etc/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true, "services.test.files.file2.engine": "jinja2", "services.test.files.file2.group": "root", "services.test.files.file2.include": "no", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/etc/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true}
diff --git a/tests/dictionaries/01base_file_include/tiramisu/base.py b/tests/dictionaries/01base_file_include/tiramisu/base.py
index a66324825..ee74b1ce2 100644
--- a/tests/dictionaries/01base_file_include/tiramisu/base.py
+++ b/tests/dictionaries/01base_file_include/tiramisu/base.py
@@ -16,21 +16,23 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3],
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="file")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
-option_16 = StrOption(name="engine", doc="engine", default="jinja2")
-option_17 = StrOption(name="group", doc="group", default="root")
-option_18 = StrOption(name="mode", doc="mode", default="0644")
-option_19 = FilenameOption(name="name", doc="name", default="/etc/file2")
-option_20 = StrOption(name="owner", doc="owner", default="root")
-option_21 = StrOption(name="source", doc="source", default="file2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="file2", doc="file2", children=[option_16, option_17, option_18, option_19, option_20, option_21, option_22])
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_15])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="jinja2")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="file2")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="file2", doc="file2", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/01base_file_include_content/00-base.xml b/tests/dictionaries/01base_file_include_content/00-base.xml
new file mode 100644
index 000000000..8927d9334
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/00-base.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ /etc/file
+ /etc/file2
+ /etc/dir/incfile
+
+
+
+
+
+
+ non
+
+
+
+
+
diff --git a/tests/dictionaries/01base_file_include_content/__init__.py b/tests/dictionaries/01base_file_include_content/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/dictionaries/01base_file_include_content/makedict/base.json b/tests/dictionaries/01base_file_include_content/makedict/base.json
new file mode 100644
index 000000000..a06b9214d
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/makedict/base.json
@@ -0,0 +1 @@
+{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true, "services.test.files.file2.engine": "jinja2", "services.test.files.file2.group": "root", "services.test.files.file2.include": "no", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/etc/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true, "services.test.files.incfile.engine": "creole", "services.test.files.incfile.group": "root", "services.test.files.incfile.include": "content", "services.test.files.incfile.mode": "0644", "services.test.files.incfile.name": "/etc/dir/incfile", "services.test.files.incfile.owner": "root", "services.test.files.incfile.source": "incfile", "services.test.files.incfile.activate": true}
diff --git a/tests/dictionaries/01base_file_include_content/result/etc/dir/incfile b/tests/dictionaries/01base_file_include_content/result/etc/dir/incfile
new file mode 100644
index 000000000..d907505b5
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/result/etc/dir/incfile
@@ -0,0 +1 @@
+non
diff --git a/tests/dictionaries/01base_file_include_content/result/etc/file b/tests/dictionaries/01base_file_include_content/result/etc/file
new file mode 100644
index 000000000..d907505b5
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/result/etc/file
@@ -0,0 +1 @@
+non
diff --git a/tests/dictionaries/01base_file_include_content/result/etc/file2 b/tests/dictionaries/01base_file_include_content/result/etc/file2
new file mode 100644
index 000000000..d907505b5
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/result/etc/file2
@@ -0,0 +1 @@
+non
diff --git a/tests/dictionaries/01base_file_include_content/result/tmpfiles.d/rougail.conf b/tests/dictionaries/01base_file_include_content/result/tmpfiles.d/rougail.conf
new file mode 100644
index 000000000..2dab2179e
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/result/tmpfiles.d/rougail.conf
@@ -0,0 +1,4 @@
+C /etc/file 0644 root root - /usr/local/lib/etc/file
+z /etc/file - - - - -
+C /etc/file2 0644 root root - /usr/local/lib/etc/file2
+z /etc/file2 - - - - -
diff --git a/tests/dictionaries/01base_file_include_content/tiramisu/base.py b/tests/dictionaries/01base_file_include_content/tiramisu/base.py
new file mode 100644
index 000000000..c2eed268c
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/tiramisu/base.py
@@ -0,0 +1,47 @@
+from importlib.machinery import SourceFileLoader
+from importlib.util import spec_from_loader, module_from_spec
+loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py')
+spec = spec_from_loader(loader.name, loader)
+func = module_from_spec(spec)
+loader.exec_module(func)
+for key, value in dict(locals()).items():
+ if key != ['SourceFileLoader', 'func']:
+ setattr(func, key, value)
+try:
+ from tiramisu3 import *
+except:
+ from tiramisu import *
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_8 = StrOption(name="engine", doc="engine", default="creole")
+option_9 = StrOption(name="group", doc="group", default="root")
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="jinja2")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="file2")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="file2", doc="file2", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_26 = StrOption(name="engine", doc="engine", default="creole")
+option_27 = StrOption(name="group", doc="group", default="root")
+option_28 = StrOption(name="include", doc="include", default="content")
+option_29 = StrOption(name="mode", doc="mode", default="0644")
+option_30 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
+option_31 = StrOption(name="owner", doc="owner", default="root")
+option_32 = StrOption(name="source", doc="source", default="incfile")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = OptionDescription(name="incfile", doc="incfile", children=[option_26, option_27, option_28, option_29, option_30, option_31, option_32, option_33])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16, option_25])
+option_5 = OptionDescription(name="test", doc="test", children=[option_6])
+option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/01base_file_include_content/tmpl/file b/tests/dictionaries/01base_file_include_content/tmpl/file
new file mode 100644
index 000000000..9b6ed7d44
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/tmpl/file
@@ -0,0 +1,7 @@
+%import os
+%set %%confdir = %%rougail_destination_dir + '/etc/dir/'
+%set %%files = %%os.listdir(%%confdir)
+%%files.sort()%slurp
+%for file in %%files
+%include raw %%confdir + file
+%end for
diff --git a/tests/dictionaries/01base_file_include_content/tmpl/file2 b/tests/dictionaries/01base_file_include_content/tmpl/file2
new file mode 100644
index 000000000..2c66fba2b
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/tmpl/file2
@@ -0,0 +1 @@
+{% include "/etc/dir/incfile" %}
diff --git a/tests/dictionaries/01base_file_include_content/tmpl/incfile b/tests/dictionaries/01base_file_include_content/tmpl/incfile
new file mode 100644
index 000000000..a29cfeaf3
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_content/tmpl/incfile
@@ -0,0 +1 @@
+%%mode_conteneur_actif
diff --git a/tests/dictionaries/01base_file_include_name/00-base.xml b/tests/dictionaries/01base_file_include_name/00-base.xml
new file mode 100644
index 000000000..775a4f135
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/00-base.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ /etc/file
+ /etc/file2
+ /etc/dir/incfile
+
+
+
+
+
+
+ non
+
+
+
+
+
diff --git a/tests/dictionaries/01base_file_include_name/__init__.py b/tests/dictionaries/01base_file_include_name/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/dictionaries/01base_file_include_name/makedict/base.json b/tests/dictionaries/01base_file_include_name/makedict/base.json
new file mode 100644
index 000000000..fe952a651
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/makedict/base.json
@@ -0,0 +1 @@
+{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true, "services.test.files.file2.engine": "jinja2", "services.test.files.file2.group": "root", "services.test.files.file2.include": "no", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/etc/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true, "services.test.files.incfile.engine": "creole", "services.test.files.incfile.group": "root", "services.test.files.incfile.include": "name", "services.test.files.incfile.mode": "0644", "services.test.files.incfile.name": "/etc/dir/incfile", "services.test.files.incfile.owner": "root", "services.test.files.incfile.source": "incfile", "services.test.files.incfile.activate": true}
diff --git a/tests/dictionaries/01base_file_include_name/result/etc/dir/incfile b/tests/dictionaries/01base_file_include_name/result/etc/dir/incfile
new file mode 100644
index 000000000..d907505b5
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/result/etc/dir/incfile
@@ -0,0 +1 @@
+non
diff --git a/tests/dictionaries/01base_file_include_name/result/etc/file b/tests/dictionaries/01base_file_include_name/result/etc/file
new file mode 100644
index 000000000..1ac4955d8
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/result/etc/file
@@ -0,0 +1 @@
+include /etc/dir/incfile
diff --git a/tests/dictionaries/01base_file_include_name/result/etc/file2 b/tests/dictionaries/01base_file_include_name/result/etc/file2
new file mode 100644
index 000000000..d907505b5
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/result/etc/file2
@@ -0,0 +1 @@
+non
diff --git a/tests/dictionaries/01base_file_include_name/result/tmpfiles.d/rougail.conf b/tests/dictionaries/01base_file_include_name/result/tmpfiles.d/rougail.conf
new file mode 100644
index 000000000..245eb456b
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/result/tmpfiles.d/rougail.conf
@@ -0,0 +1,6 @@
+C /etc/file 0644 root root - /usr/local/lib/etc/file
+z /etc/file - - - - -
+C /etc/file2 0644 root root - /usr/local/lib/etc/file2
+z /etc/file2 - - - - -
+C /etc/dir/incfile 0644 root root - /usr/local/lib/etc/dir/incfile
+z /etc/dir/incfile - - - - -
diff --git a/tests/dictionaries/01base_file_include_name/tiramisu/base.py b/tests/dictionaries/01base_file_include_name/tiramisu/base.py
new file mode 100644
index 000000000..ae83dfaf6
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/tiramisu/base.py
@@ -0,0 +1,47 @@
+from importlib.machinery import SourceFileLoader
+from importlib.util import spec_from_loader, module_from_spec
+loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py')
+spec = spec_from_loader(loader.name, loader)
+func = module_from_spec(spec)
+loader.exec_module(func)
+for key, value in dict(locals()).items():
+ if key != ['SourceFileLoader', 'func']:
+ setattr(func, key, value)
+try:
+ from tiramisu3 import *
+except:
+ from tiramisu import *
+option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "normal"}))
+option_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"normal"}))
+option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
+option_8 = StrOption(name="engine", doc="engine", default="creole")
+option_9 = StrOption(name="group", doc="group", default="root")
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="jinja2")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/etc/file2")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="file2")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="file2", doc="file2", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_26 = StrOption(name="engine", doc="engine", default="creole")
+option_27 = StrOption(name="group", doc="group", default="root")
+option_28 = StrOption(name="include", doc="include", default="name")
+option_29 = StrOption(name="mode", doc="mode", default="0644")
+option_30 = FilenameOption(name="name", doc="name", default="/etc/dir/incfile")
+option_31 = StrOption(name="owner", doc="owner", default="root")
+option_32 = StrOption(name="source", doc="source", default="incfile")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = OptionDescription(name="incfile", doc="incfile", children=[option_26, option_27, option_28, option_29, option_30, option_31, option_32, option_33])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16, option_25])
+option_5 = OptionDescription(name="test", doc="test", children=[option_6])
+option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
+option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/01base_file_include_name/tmpl/file b/tests/dictionaries/01base_file_include_name/tmpl/file
new file mode 100644
index 000000000..cabf7b219
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/tmpl/file
@@ -0,0 +1,7 @@
+%import os
+%set %%confdir = '/etc/dir/'
+%set %%files = %%os.listdir(%%rougail_destination_dir + %%confdir)
+%%files.sort()%slurp
+%for %%file in %%files
+include %%{confdir}%%file
+%end for
diff --git a/tests/dictionaries/01base_file_include_name/tmpl/file2 b/tests/dictionaries/01base_file_include_name/tmpl/file2
new file mode 100644
index 000000000..2c66fba2b
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/tmpl/file2
@@ -0,0 +1 @@
+{% include "/etc/dir/incfile" %}
diff --git a/tests/dictionaries/01base_file_include_name/tmpl/incfile b/tests/dictionaries/01base_file_include_name/tmpl/incfile
new file mode 100644
index 000000000..a29cfeaf3
--- /dev/null
+++ b/tests/dictionaries/01base_file_include_name/tmpl/incfile
@@ -0,0 +1 @@
+%%mode_conteneur_actif
diff --git a/tests/dictionaries/01base_file_patch/makedict/base.json b/tests/dictionaries/01base_file_patch/makedict/base.json
index 2b24b0b16..04a10642c 100644
--- a/tests/dictionaries/01base_file_patch/makedict/base.json
+++ b/tests/dictionaries/01base_file_patch/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
diff --git a/tests/dictionaries/01base_file_patch/tiramisu/base.py b/tests/dictionaries/01base_file_patch/tiramisu/base.py
index 0bdb05a1c..c862eab04 100644
--- a/tests/dictionaries/01base_file_patch/tiramisu/base.py
+++ b/tests/dictionaries/01base_file_patch/tiramisu/base.py
@@ -16,12 +16,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3],
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="file")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
option_6 = OptionDescription(name="files", doc="files", children=[option_7])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/01base_file_utfchar/makedict/base.json b/tests/dictionaries/01base_file_utfchar/makedict/base.json
index ccb3f1edc..7c01cc4dd 100644
--- a/tests/dictionaries/01base_file_utfchar/makedict/base.json
+++ b/tests/dictionaries/01base_file_utfchar/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.engine": "creole", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.group": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.mode": "0644", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.owner": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": "systemd-makefs@dev-disk-by\\x2dpartlabel", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": true, "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.engine": "jinja2", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.group": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.mode": "0644", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.owner": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": "systemd-makefs@dev-disk-by\\x2dpartlabel2", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.engine": "creole", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.group": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.include": "no", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.mode": "0644", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.owner": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.source": "systemd-makefs@dev-disk-by\\x2dpartlabel", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel.activate": true, "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.engine": "jinja2", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.group": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.include": "no", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.mode": "0644", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.name": "/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.owner": "root", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.source": "systemd-makefs@dev-disk-by\\x2dpartlabel2", "services.test.files.systemd_makefs@dev_disk_by\\x2dpartlabel2.activate": true}
diff --git a/tests/dictionaries/01base_file_utfchar/tiramisu/base.py b/tests/dictionaries/01base_file_utfchar/tiramisu/base.py
index 85b887edc..b701c18cc 100644
--- a/tests/dictionaries/01base_file_utfchar/tiramisu/base.py
+++ b/tests/dictionaries/01base_file_utfchar/tiramisu/base.py
@@ -16,21 +16,23 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3],
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="systemd-makefs@dev-disk-by\\x2dpartlabel")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel", doc="systemd-makefs@dev-disk-by\\x2dpartlabel", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
-option_16 = StrOption(name="engine", doc="engine", default="jinja2")
-option_17 = StrOption(name="group", doc="group", default="root")
-option_18 = StrOption(name="mode", doc="mode", default="0644")
-option_19 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2")
-option_20 = StrOption(name="owner", doc="owner", default="root")
-option_21 = StrOption(name="source", doc="source", default="systemd-makefs@dev-disk-by\\x2dpartlabel2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel2", doc="systemd-makefs@dev-disk-by\\x2dpartlabel2", children=[option_16, option_17, option_18, option_19, option_20, option_21, option_22])
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_15])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="systemd-makefs@dev-disk-by\\x2dpartlabel")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel", doc="systemd-makefs@dev-disk-by\\x2dpartlabel", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="jinja2")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/etc/systemd-makefs@dev-disk-by\\x2dpartlabel2")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="systemd-makefs@dev-disk-by\\x2dpartlabel2")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="systemd_makefs@dev_disk_by\\x2dpartlabel2", doc="systemd-makefs@dev-disk-by\\x2dpartlabel2", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/base.json
index adc0f4a2d..0ad2c86f6 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
+{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py
index e084563c5..27066f013 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/base.json
index acc4e5e56..1f89e0054 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "no", "rougail.general.condition2": "no", "rougail.general.test_variable": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
+{"rougail.general.condition": "no", "rougail.general.condition2": "no", "rougail.general.test_variable": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py
index 32672343c..ca3edcf13 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json
index 28d701e23..027e184bc 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "no", "rougail.general.condition2": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
+{"rougail.general.condition": "no", "rougail.general.condition2": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py
index f8d0b73ef..db9b5d368 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json
index cf385f00a..8820aae2e 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "yes", "rougail.general.condition2": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
+{"rougail.general.condition": "yes", "rougail.general.condition2": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py
index 46cd5e169..15c86f346 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json
index 9ec310ad7..c82c70602 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "yes", "rougail.general.condition2": "yes", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
+{"rougail.general.condition": "yes", "rougail.general.condition2": "yes", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py
index fea0b1a36..8dc405a46 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json
index cbd70713c..f1ce78ae0 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "no", "rougail.general.condition2": "yes", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
+{"rougail.general.condition": "no", "rougail.general.condition2": "yes", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py
index 8ba448a19..c470f64b0 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["yes", "maybe"]), 'reverse_condition_0': ParamValue(True), 'condition_operator': ParamValue("OR"), 'condition_1': ParamOption(option_4), 'expected_1': ParamValue(["yes", "maybe"])})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/base.json b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/base.json
index a87123bef..9a5b9f647 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "oui", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
+{"rougail.general.condition": "oui", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py
index f8d775695..391d7ee2e 100644
--- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(["oui", "maybe"]), 'condition_operator': ParamValue("OR")})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/base.json b/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/base.json
index a73037eee..c97d341dd 100644
--- a/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/base.json
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "no", "rougail.general.disable_variable": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
+{"rougail.general.condition": "no", "rougail.general.disable_variable": "no", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py
index 299b254b2..39c67d110 100644
--- a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py
+++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py
@@ -17,12 +17,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_9 = StrOption(name="engine", doc="engine", default="creole")
option_10 = StrOption(name="group", doc="group", default="root")
-option_11 = StrOption(name="mode", doc="mode", default="0644")
-option_12 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_13 = StrOption(name="owner", doc="owner", default="root")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_11 = StrOption(name="include", doc="include", default="no")
+option_12 = StrOption(name="mode", doc="mode", default="0644")
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="owner", doc="owner", default="root")
+option_15 = StrOption(name="source", doc="source", default="file1")
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15, option_16])
option_7 = OptionDescription(name="files", doc="files", children=[option_8])
option_6 = OptionDescription(name="test", doc="test", children=[option_7])
option_5 = OptionDescription(name="services", doc="services", children=[option_6], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json b/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json
index 179cec85b..0de278adf 100644
--- a/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": true, "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
+{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": true, "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
diff --git a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py
index 3c47e546c..91af9ddd3 100644
--- a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
+option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/base.json b/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/base.json
index 03cb0a7fe..cae59d2d8 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": true, "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
+{"rougail.general.condition": true, "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py
index 34f2360a1..c273a41bf 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py
@@ -16,12 +16,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3],
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="file1")
-option_14 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(True)})))
-option_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_15 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(True)})))
+option_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
option_6 = OptionDescription(name="files", doc="files", children=[option_7])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/base.json b/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/base.json
index 4a46804dd..003585f30 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": false, "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
+{"rougail.general.condition": false, "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py
index dc07321e3..e260d25cd 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py
@@ -16,12 +16,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3],
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="file1")
-option_14 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(True)})))
-option_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file1")
+option_15 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue(True)})))
+option_7 = OptionDescription(name="file1", doc="file1", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
option_6 = OptionDescription(name="files", doc="files", children=[option_7])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/base.json b/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/base.json
index 14a7791de..a5a686112 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "oui", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
+{"rougail.general.condition": "oui", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py
index 5a23ff2eb..2d696b737 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
+option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/base.json b/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/base.json
index 9c7ff3c9c..003bfee72 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/base.json
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true, "services.test.files.file2.engine": "creole", "services.test.files.file2.group": "root", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/tmp/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true}
+{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": true, "services.test.files.file2.engine": "creole", "services.test.files.file2.group": "root", "services.test.files.file2.include": "no", "services.test.files.file2.mode": "0644", "services.test.files.file2.name": "/tmp/file2", "services.test.files.file2.owner": "root", "services.test.files.file2.source": "file2", "services.test.files.file2.activate": true}
diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py
index ba32e4507..c17e9ab25 100644
--- a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py
+++ b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py
@@ -18,21 +18,23 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file1")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
-option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
-option_18 = StrOption(name="engine", doc="engine", default="creole")
-option_19 = StrOption(name="group", doc="group", default="root")
-option_20 = StrOption(name="mode", doc="mode", default="0644")
-option_21 = FilenameOption(name="name", doc="name", default="/tmp/file2")
-option_22 = StrOption(name="owner", doc="owner", default="root")
-option_23 = StrOption(name="source", doc="source", default="file2")
-option_24 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
-option_17 = OptionDescription(name="file2", doc="file2", children=[option_18, option_19, option_20, option_21, option_22, option_23, option_24])
-option_8 = OptionDescription(name="files", doc="files", children=[option_9, option_17])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file1")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
+option_9 = OptionDescription(name="file1", doc="file1", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
+option_19 = StrOption(name="engine", doc="engine", default="creole")
+option_20 = StrOption(name="group", doc="group", default="root")
+option_21 = StrOption(name="include", doc="include", default="no")
+option_22 = StrOption(name="mode", doc="mode", default="0644")
+option_23 = FilenameOption(name="name", doc="name", default="/tmp/file2")
+option_24 = StrOption(name="owner", doc="owner", default="root")
+option_25 = StrOption(name="source", doc="source", default="file2")
+option_26 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("oui")})))
+option_18 = OptionDescription(name="file2", doc="file2", children=[option_19, option_20, option_21, option_22, option_23, option_24, option_25, option_26])
+option_8 = OptionDescription(name="files", doc="files", children=[option_9, option_18])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_6])
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json
index 3d5308eb7..1cf2605a2 100644
--- a/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
+{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py
index 893abaca8..a8939ba69 100644
--- a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
+option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json
index 3d5308eb7..1cf2605a2 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
+{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py
index 893abaca8..a8939ba69 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True)})))
+option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json
index 3d5308eb7..1cf2605a2 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
+{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
index 63a05b2ee..0ab350371 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_5), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("unpossible"), 'reverse_condition_0': ParamValue(True), 'condition_1': ParamOption(option_5), 'expected_1': ParamValue("oui"), 'reverse_condition_1': ParamValue(True), 'condition_operator': ParamValue("OR")})))
+option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
index 3d5308eb7..1cf2605a2 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
+{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/tmp/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": false}
diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
index 60226f913..4ad065421 100644
--- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
+++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py
@@ -18,12 +18,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_10 = StrOption(name="engine", doc="engine", default="creole")
option_11 = StrOption(name="group", doc="group", default="root")
-option_12 = StrOption(name="mode", doc="mode", default="0644")
-option_13 = FilenameOption(name="name", doc="name", default="/tmp/file")
-option_14 = StrOption(name="owner", doc="owner", default="root")
-option_15 = StrOption(name="source", doc="source", default="file")
-option_16 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
-option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16])
+option_12 = StrOption(name="include", doc="include", default="no")
+option_13 = StrOption(name="mode", doc="mode", default="0644")
+option_14 = FilenameOption(name="name", doc="name", default="/tmp/file")
+option_15 = StrOption(name="owner", doc="owner", default="root")
+option_16 = StrOption(name="source", doc="source", default="file")
+option_17 = BoolOption(name="activate", doc="activate", default=Calculation(func.calc_value, Params((ParamValue(False)), kwargs={'default': ParamValue(True), 'condition_0': ParamOption(option_3), 'expected_0': ParamValue("statique"), 'reverse_condition_0': ParamValue(True)})))
+option_9 = OptionDescription(name="file", doc="file", children=[option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
option_8 = OptionDescription(name="files", doc="files", children=[option_9])
option_7 = OptionDescription(name="test", doc="test", children=[option_8])
option_6 = OptionDescription(name="services", doc="services", children=[option_7], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/base.json b/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/base.json
index 0ade809b2..39da93907 100644
--- a/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/base.json
+++ b/tests/dictionaries/11multi_disabled_if_in_filelist/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "non", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
+{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "non", "services.test.files.file1.engine": "creole", "services.test.files.file1.group": "root", "services.test.files.file1.include": "no", "services.test.files.file1.mode": "0644", "services.test.files.file1.name": "/tmp/file1", "services.test.files.file1.owner": "root", "services.test.files.file1.source": "file1", "services.test.files.file1.activate": false}
diff --git a/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/base.py b/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/base.py
index e3e4d898c..fd10aa82a 100644
--- a/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/base.py
+++ b/tests/dictionaries/11multi_disabled_if_in_filelist/tiramisu/base.py
@@ -17,12 +17,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_9 = StrOption(name="engine", doc="engine", default="creole")
option_10 = StrOption(name="group", doc="group", default="root")
-option_11 = StrOption(name="mode", doc="mode", default="0644")
-option_12 = FilenameOption(name="name", doc="name", default="/tmp/file1")
-option_13 = StrOption(name="owner", doc="owner", default="root")
-option_14 = StrOption(name="source", doc="source", default="file1")
-option_15 = BoolOption(name="activate", doc="activate", default=False)
-option_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_11 = StrOption(name="include", doc="include", default="no")
+option_12 = StrOption(name="mode", doc="mode", default="0644")
+option_13 = FilenameOption(name="name", doc="name", default="/tmp/file1")
+option_14 = StrOption(name="owner", doc="owner", default="root")
+option_15 = StrOption(name="source", doc="source", default="file1")
+option_16 = BoolOption(name="activate", doc="activate", default=False)
+option_8 = OptionDescription(name="file1", doc="file1", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15, option_16])
option_7 = OptionDescription(name="files", doc="files", children=[option_8])
option_6 = OptionDescription(name="test", doc="test", children=[option_7])
option_5 = OptionDescription(name="services", doc="services", children=[option_6], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/20notemplating/makedict/base.json b/tests/dictionaries/20notemplating/makedict/base.json
index 722c06679..6fded8b92 100644
--- a/tests/dictionaries/20notemplating/makedict/base.json
+++ b/tests/dictionaries/20notemplating/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "none", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "services.test.files.file.engine": "none", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
diff --git a/tests/dictionaries/20notemplating/tiramisu/base.py b/tests/dictionaries/20notemplating/tiramisu/base.py
index 3ce2852fd..26a30d80f 100644
--- a/tests/dictionaries/20notemplating/tiramisu/base.py
+++ b/tests/dictionaries/20notemplating/tiramisu/base.py
@@ -16,12 +16,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3],
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="none")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="file")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="file")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="file", doc="file", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
option_6 = OptionDescription(name="files", doc="files", children=[option_7])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/40ifin_leadershipauto/makedict/base.json b/tests/dictionaries/40ifin_leadershipauto/makedict/base.json
index ff6a2a382..4fa9ff4d6 100644
--- a/tests/dictionaries/40ifin_leadershipauto/makedict/base.json
+++ b/tests/dictionaries/40ifin_leadershipauto/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "oui", "rougail.general.leader.leader": [{"rougail.general.leader.leader": "a", "rougail.general.leader.follower2": null}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "oui", "rougail.general.leader.leader": [{"rougail.general.leader.leader": "a", "rougail.general.leader.follower2": null}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true}
diff --git a/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py b/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py
index 1e194d7bb..81fa87b10 100644
--- a/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py
@@ -21,12 +21,13 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_13 = StrOption(name="engine", doc="engine", default="creole")
option_14 = StrOption(name="group", doc="group", default="root")
-option_15 = StrOption(name="mode", doc="mode", default="0644")
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_17 = StrOption(name="owner", doc="owner", default="root")
-option_18 = StrOption(name="source", doc="source", default="mailname")
-option_19 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14, option_15, option_16, option_17, option_18, option_19])
+option_15 = StrOption(name="include", doc="include", default="no")
+option_16 = StrOption(name="mode", doc="mode", default="0644")
+option_17 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_18 = StrOption(name="owner", doc="owner", default="root")
+option_19 = StrOption(name="source", doc="source", default="mailname")
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14, option_15, option_16, option_17, option_18, option_19, option_20])
option_11 = OptionDescription(name="files", doc="files", children=[option_12])
option_10 = OptionDescription(name="test", doc="test", children=[option_11])
option_9 = OptionDescription(name="services", doc="services", children=[option_10], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json
index 3fa240621..8cc52a502 100644
--- a/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "oui", "rougail.general.leader.leader": [{"rougail.general.leader.leader": "a", "rougail.general.leader.follower2": null}, {"rougail.general.leader.leader": "b", "rougail.general.leader.follower1": null, "rougail.general.leader.follower2": null}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": "/etc/mailname2", "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "rougail.general.condition": "oui", "rougail.general.leader.leader": [{"rougail.general.leader.leader": "a", "rougail.general.leader.follower2": null}, {"rougail.general.leader.leader": "b", "rougail.general.leader.follower1": null, "rougail.general.leader.follower2": null}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.include": "no", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": "/etc/mailname2", "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py
index 11bdb7a27..6acf182e4 100644
--- a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py
+++ b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py
@@ -21,21 +21,23 @@ option_2 = OptionDescription(name="general", doc="general", children=[option_3,
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_13 = StrOption(name="engine", doc="engine", default="creole")
option_14 = StrOption(name="group", doc="group", default="root")
-option_15 = StrOption(name="mode", doc="mode", default="0644")
-option_16 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_17 = StrOption(name="owner", doc="owner", default="root")
-option_18 = StrOption(name="source", doc="source", default="mailname")
-option_19 = BoolOption(name="activate", doc="activate", default=True)
-option_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14, option_15, option_16, option_17, option_18, option_19])
-option_21 = StrOption(name="engine", doc="engine", default="jinja2")
-option_22 = StrOption(name="group", doc="group", default="root")
-option_23 = StrOption(name="mode", doc="mode", default="0644")
-option_24 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_25 = StrOption(name="owner", doc="owner", default="root")
-option_26 = StrOption(name="source", doc="source", default="mailname2")
-option_27 = BoolOption(name="activate", doc="activate", default=True)
-option_20 = OptionDescription(name="mailname2", doc="mailname2", children=[option_21, option_22, option_23, option_24, option_25, option_26, option_27])
-option_11 = OptionDescription(name="files", doc="files", children=[option_12, option_20])
+option_15 = StrOption(name="include", doc="include", default="no")
+option_16 = StrOption(name="mode", doc="mode", default="0644")
+option_17 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_18 = StrOption(name="owner", doc="owner", default="root")
+option_19 = StrOption(name="source", doc="source", default="mailname")
+option_20 = BoolOption(name="activate", doc="activate", default=True)
+option_12 = OptionDescription(name="mailname", doc="mailname", children=[option_13, option_14, option_15, option_16, option_17, option_18, option_19, option_20])
+option_22 = StrOption(name="engine", doc="engine", default="jinja2")
+option_23 = StrOption(name="group", doc="group", default="root")
+option_24 = StrOption(name="include", doc="include", default="no")
+option_25 = StrOption(name="mode", doc="mode", default="0644")
+option_26 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_27 = StrOption(name="owner", doc="owner", default="root")
+option_28 = StrOption(name="source", doc="source", default="mailname2")
+option_29 = BoolOption(name="activate", doc="activate", default=True)
+option_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_22, option_23, option_24, option_25, option_26, option_27, option_28, option_29])
+option_11 = OptionDescription(name="files", doc="files", children=[option_12, option_21])
option_10 = OptionDescription(name="test", doc="test", children=[option_11])
option_9 = OptionDescription(name="services", doc="services", children=[option_10], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_9])
diff --git a/tests/dictionaries/45extra_without_family/makedict/base.json b/tests/dictionaries/45extra_without_family/makedict/base.json
index fa08f9adb..dfc21ff17 100644
--- a/tests/dictionaries/45extra_without_family/makedict/base.json
+++ b/tests/dictionaries/45extra_without_family/makedict/base.json
@@ -1 +1 @@
-{"rougail.my_var": "rougail", "extra.my_var": null, "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
+{"rougail.my_var": "rougail", "extra.my_var": null, "services.test.files.file.engine": "creole", "services.test.files.file.group": "root", "services.test.files.file.include": "no", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.activate": true}
diff --git a/tests/dictionaries/45extra_without_family/tiramisu/base.py b/tests/dictionaries/45extra_without_family/tiramisu/base.py
index 6b313e835..2fadc67db 100644
--- a/tests/dictionaries/45extra_without_family/tiramisu/base.py
+++ b/tests/dictionaries/45extra_without_family/tiramisu/base.py
@@ -17,12 +17,13 @@ option_4 = StrOption(name="my_var", doc="my_var", default=Calculation(func.calc_
option_3 = OptionDescription(name="extra", doc="extra", children=[option_4])
option_9 = StrOption(name="engine", doc="engine", default="creole")
option_10 = StrOption(name="group", doc="group", default="root")
-option_11 = StrOption(name="mode", doc="mode", default="0644")
-option_12 = FilenameOption(name="name", doc="name", default="/etc/file")
-option_13 = StrOption(name="owner", doc="owner", default="root")
-option_14 = StrOption(name="source", doc="source", default="file")
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_11 = StrOption(name="include", doc="include", default="no")
+option_12 = StrOption(name="mode", doc="mode", default="0644")
+option_13 = FilenameOption(name="name", doc="name", default="/etc/file")
+option_14 = StrOption(name="owner", doc="owner", default="root")
+option_15 = StrOption(name="source", doc="source", default="file")
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_8 = OptionDescription(name="file", doc="file", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15, option_16])
option_7 = OptionDescription(name="files", doc="files", children=[option_8])
option_6 = OptionDescription(name="test", doc="test", children=[option_7])
option_5 = OptionDescription(name="services", doc="services", children=[option_6], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/60extra_group/makedict/base.json b/tests/dictionaries/60extra_group/makedict/base.json
index 263c7033e..cdc695597 100644
--- a/tests/dictionaries/60extra_group/makedict/base.json
+++ b/tests/dictionaries/60extra_group/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "rougail.general.activer_ejabberd": "non", "extra.ejabberd.description.description": [{"extra.ejabberd.description.description": "test", "extra.ejabberd.description.mode": "pre"}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": "/etc/mailname2", "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "rougail.general.activer_ejabberd": "non", "extra.ejabberd.description.description": [{"extra.ejabberd.description.description": "test", "extra.ejabberd.description.mode": "pre"}], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.include": "no", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": "/etc/mailname2", "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
diff --git a/tests/dictionaries/60extra_group/tiramisu/base.py b/tests/dictionaries/60extra_group/tiramisu/base.py
index 7b63628bf..e611493d6 100644
--- a/tests/dictionaries/60extra_group/tiramisu/base.py
+++ b/tests/dictionaries/60extra_group/tiramisu/base.py
@@ -22,21 +22,23 @@ option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7
option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
option_14 = StrOption(name="engine", doc="engine", default="creole")
option_15 = StrOption(name="group", doc="group", default="root")
-option_16 = StrOption(name="mode", doc="mode", default="0644")
-option_17 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_18 = StrOption(name="owner", doc="owner", default="root")
-option_19 = StrOption(name="source", doc="source", default="mailname")
-option_20 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16, option_17, option_18, option_19, option_20])
-option_22 = StrOption(name="engine", doc="engine", default="jinja2")
-option_23 = StrOption(name="group", doc="group", default="root")
-option_24 = StrOption(name="mode", doc="mode", default="0644")
-option_25 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_26 = StrOption(name="owner", doc="owner", default="root")
-option_27 = StrOption(name="source", doc="source", default="mailname2")
-option_28 = BoolOption(name="activate", doc="activate", default=True)
-option_21 = OptionDescription(name="mailname2", doc="mailname2", children=[option_22, option_23, option_24, option_25, option_26, option_27, option_28])
-option_12 = OptionDescription(name="files", doc="files", children=[option_13, option_21])
+option_16 = StrOption(name="include", doc="include", default="no")
+option_17 = StrOption(name="mode", doc="mode", default="0644")
+option_18 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_19 = StrOption(name="owner", doc="owner", default="root")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_21 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16, option_17, option_18, option_19, option_20, option_21])
+option_23 = StrOption(name="engine", doc="engine", default="jinja2")
+option_24 = StrOption(name="group", doc="group", default="root")
+option_25 = StrOption(name="include", doc="include", default="no")
+option_26 = StrOption(name="mode", doc="mode", default="0644")
+option_27 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_28 = StrOption(name="owner", doc="owner", default="root")
+option_29 = StrOption(name="source", doc="source", default="mailname2")
+option_30 = BoolOption(name="activate", doc="activate", default=True)
+option_22 = OptionDescription(name="mailname2", doc="mailname2", children=[option_23, option_24, option_25, option_26, option_27, option_28, option_29, option_30])
+option_12 = OptionDescription(name="files", doc="files", children=[option_13, option_22])
option_11 = OptionDescription(name="test", doc="test", children=[option_12])
option_10 = OptionDescription(name="services", doc="services", children=[option_11], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5, option_10])
diff --git a/tests/dictionaries/60extra_help/makedict/base.json b/tests/dictionaries/60extra_help/makedict/base.json
index 416240857..c2b591a67 100644
--- a/tests/dictionaries/60extra_help/makedict/base.json
+++ b/tests/dictionaries/60extra_help/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "non", "rougail.general.activer_ejabberd": "non", "extra.ejabberd.description": "Exportation de la base de ejabberd", "extra.ejabberd.day": null, "extra.ejabberd.mode": "pre", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true}
+{"rougail.general.mode_conteneur_actif": "non", "rougail.general.activer_ejabberd": "non", "extra.ejabberd.description": "Exportation de la base de ejabberd", "extra.ejabberd.day": null, "extra.ejabberd.mode": "pre", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true}
diff --git a/tests/dictionaries/60extra_help/tiramisu/base.py b/tests/dictionaries/60extra_help/tiramisu/base.py
index b76df2e04..c9fd0488f 100644
--- a/tests/dictionaries/60extra_help/tiramisu/base.py
+++ b/tests/dictionaries/60extra_help/tiramisu/base.py
@@ -23,12 +23,13 @@ option_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7
option_5 = OptionDescription(name="extra", doc="extra", children=[option_6])
option_14 = StrOption(name="engine", doc="engine", default="creole")
option_15 = StrOption(name="group", doc="group", default="root")
-option_16 = StrOption(name="mode", doc="mode", default="0644")
-option_17 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_18 = StrOption(name="owner", doc="owner", default="root")
-option_19 = StrOption(name="source", doc="source", default="mailname")
-option_20 = BoolOption(name="activate", doc="activate", default=True)
-option_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16, option_17, option_18, option_19, option_20])
+option_16 = StrOption(name="include", doc="include", default="no")
+option_17 = StrOption(name="mode", doc="mode", default="0644")
+option_18 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_19 = StrOption(name="owner", doc="owner", default="root")
+option_20 = StrOption(name="source", doc="source", default="mailname")
+option_21 = BoolOption(name="activate", doc="activate", default=True)
+option_13 = OptionDescription(name="mailname", doc="mailname", children=[option_14, option_15, option_16, option_17, option_18, option_19, option_20, option_21])
option_12 = OptionDescription(name="files", doc="files", children=[option_13])
option_11 = OptionDescription(name="test", doc="test", children=[option_12])
option_10 = OptionDescription(name="services", doc="services", children=[option_11], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/70container_files/makedict/base.json b/tests/dictionaries/70container_files/makedict/base.json
index da4649ab4..4387c95be 100644
--- a/tests/dictionaries/70container_files/makedict/base.json
+++ b/tests/dictionaries/70container_files/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.rougail_conf.engine": "creole", "services.test.files.rougail_conf.group": "root", "services.test.files.rougail_conf.mode": "0644", "services.test.files.rougail_conf.name": "/rougail.conf", "services.test.files.rougail_conf.owner": "root", "services.test.files.rougail_conf.source": "rougail.conf", "services.test.files.rougail_conf.activate": true}
+{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.rougail_conf.engine": "creole", "services.test.files.rougail_conf.group": "root", "services.test.files.rougail_conf.include": "no", "services.test.files.rougail_conf.mode": "0644", "services.test.files.rougail_conf.name": "/rougail.conf", "services.test.files.rougail_conf.owner": "root", "services.test.files.rougail_conf.source": "rougail.conf", "services.test.files.rougail_conf.activate": true}
diff --git a/tests/dictionaries/70container_files/tiramisu/base.py b/tests/dictionaries/70container_files/tiramisu/base.py
index f23861a1b..302cafbba 100644
--- a/tests/dictionaries/70container_files/tiramisu/base.py
+++ b/tests/dictionaries/70container_files/tiramisu/base.py
@@ -16,21 +16,23 @@ option_2 = OptionDescription(name="general", doc="général", children=[option_3
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
-option_16 = StrOption(name="engine", doc="engine", default="creole")
-option_17 = StrOption(name="group", doc="group", default="root")
-option_18 = StrOption(name="mode", doc="mode", default="0644")
-option_19 = FilenameOption(name="name", doc="name", default="/rougail.conf")
-option_20 = StrOption(name="owner", doc="owner", default="root")
-option_21 = StrOption(name="source", doc="source", default="rougail.conf")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_16, option_17, option_18, option_19, option_20, option_21, option_22])
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_15])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="mailname")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="creole")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/rougail.conf")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="rougail.conf")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/70container_files_symlink_multi/makedict/base.json b/tests/dictionaries/70container_files_symlink_multi/makedict/base.json
index 2b759eeb1..889589da4 100644
--- a/tests/dictionaries/70container_files_symlink_multi/makedict/base.json
+++ b/tests/dictionaries/70container_files_symlink_multi/makedict/base.json
@@ -1 +1 @@
-{"rougail.file_name": ["/etc/mailname", "/etc/mailname2"], "rougail.file_name2": ["/etc/mailname3", "/etc/mailname4"], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": ["/etc/mailname", "/etc/mailname2"], "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": ["/etc/mailname3", "/etc/mailname4"], "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
+{"rougail.file_name": ["/etc/mailname", "/etc/mailname2"], "rougail.file_name2": ["/etc/mailname3", "/etc/mailname4"], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": ["/etc/mailname", "/etc/mailname2"], "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.include": "no", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": ["/etc/mailname3", "/etc/mailname4"], "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
diff --git a/tests/dictionaries/70container_files_symlink_multi/tiramisu/base.py b/tests/dictionaries/70container_files_symlink_multi/tiramisu/base.py
index 81b7088e5..e5dbc4f25 100644
--- a/tests/dictionaries/70container_files_symlink_multi/tiramisu/base.py
+++ b/tests/dictionaries/70container_files_symlink_multi/tiramisu/base.py
@@ -16,21 +16,23 @@ option_3 = FilenameOption(name="file_name2", doc="file_name2", multi=True, defau
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = SymLinkOption(name="name", opt=option_2)
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
-option_16 = StrOption(name="engine", doc="engine", default="jinja2")
-option_17 = StrOption(name="group", doc="group", default="root")
-option_18 = StrOption(name="mode", doc="mode", default="0644")
-option_19 = SymLinkOption(name="name", opt=option_3)
-option_20 = StrOption(name="owner", doc="owner", default="root")
-option_21 = StrOption(name="source", doc="source", default="mailname2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17, option_18, option_19, option_20, option_21, option_22])
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_15])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = SymLinkOption(name="name", opt=option_2)
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="mailname")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="jinja2")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = SymLinkOption(name="name", opt=option_3)
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="mailname2")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="mailname2", doc="mailname2", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/base.json b/tests/dictionaries/70container_files_symlink_multi_variable/makedict/base.json
index c16808061..ec2996370 100644
--- a/tests/dictionaries/70container_files_symlink_multi_variable/makedict/base.json
+++ b/tests/dictionaries/70container_files_symlink_multi_variable/makedict/base.json
@@ -1 +1 @@
-{"rougail.file_name": ["/etc/mailname", "/etc/mailname2"], "rougail.file_name2": ["/etc/mailname3", "/etc/mailname4"], "rougail.var": ["mailname", "mailname2"], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": ["/etc/mailname", "/etc/mailname2"], "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.variable": ["mailname", "mailname2"], "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": ["/etc/mailname3", "/etc/mailname4"], "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.variable": ["mailname", "mailname2"], "services.test.files.mailname2.activate": true}
+{"rougail.file_name": ["/etc/mailname", "/etc/mailname2"], "rougail.file_name2": ["/etc/mailname3", "/etc/mailname4"], "rougail.var": ["mailname", "mailname2"], "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": ["/etc/mailname", "/etc/mailname2"], "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.variable": ["mailname", "mailname2"], "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "jinja2", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.include": "no", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": ["/etc/mailname3", "/etc/mailname4"], "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.variable": ["mailname", "mailname2"], "services.test.files.mailname2.activate": true}
diff --git a/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/base.py b/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/base.py
index 53db93a43..03aa12ed5 100644
--- a/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/base.py
+++ b/tests/dictionaries/70container_files_symlink_multi_variable/tiramisu/base.py
@@ -17,23 +17,25 @@ option_4 = StrOption(name="var", doc="var", multi=True, default=['mailname', 'ma
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4])
option_9 = StrOption(name="engine", doc="engine", default="creole")
option_10 = StrOption(name="group", doc="group", default="root")
-option_11 = StrOption(name="mode", doc="mode", default="0644")
-option_12 = SymLinkOption(name="name", opt=option_2)
-option_13 = StrOption(name="owner", doc="owner", default="root")
-option_14 = StrOption(name="source", doc="source", default="mailname")
-option_15 = SymLinkOption(name="variable", opt=option_4)
-option_16 = BoolOption(name="activate", doc="activate", default=True)
-option_8 = OptionDescription(name="mailname", doc="mailname", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15, option_16])
-option_18 = StrOption(name="engine", doc="engine", default="jinja2")
-option_19 = StrOption(name="group", doc="group", default="root")
-option_20 = StrOption(name="mode", doc="mode", default="0644")
-option_21 = SymLinkOption(name="name", opt=option_3)
-option_22 = StrOption(name="owner", doc="owner", default="root")
-option_23 = StrOption(name="source", doc="source", default="mailname2")
-option_24 = SymLinkOption(name="variable", opt=option_4)
-option_25 = BoolOption(name="activate", doc="activate", default=True)
-option_17 = OptionDescription(name="mailname2", doc="mailname2", children=[option_18, option_19, option_20, option_21, option_22, option_23, option_24, option_25])
-option_7 = OptionDescription(name="files", doc="files", children=[option_8, option_17])
+option_11 = StrOption(name="include", doc="include", default="no")
+option_12 = StrOption(name="mode", doc="mode", default="0644")
+option_13 = SymLinkOption(name="name", opt=option_2)
+option_14 = StrOption(name="owner", doc="owner", default="root")
+option_15 = StrOption(name="source", doc="source", default="mailname")
+option_16 = SymLinkOption(name="variable", opt=option_4)
+option_17 = BoolOption(name="activate", doc="activate", default=True)
+option_8 = OptionDescription(name="mailname", doc="mailname", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_15, option_16, option_17])
+option_19 = StrOption(name="engine", doc="engine", default="jinja2")
+option_20 = StrOption(name="group", doc="group", default="root")
+option_21 = StrOption(name="include", doc="include", default="no")
+option_22 = StrOption(name="mode", doc="mode", default="0644")
+option_23 = SymLinkOption(name="name", opt=option_3)
+option_24 = StrOption(name="owner", doc="owner", default="root")
+option_25 = StrOption(name="source", doc="source", default="mailname2")
+option_26 = SymLinkOption(name="variable", opt=option_4)
+option_27 = BoolOption(name="activate", doc="activate", default=True)
+option_18 = OptionDescription(name="mailname2", doc="mailname2", children=[option_19, option_20, option_21, option_22, option_23, option_24, option_25, option_26, option_27])
+option_7 = OptionDescription(name="files", doc="files", children=[option_8, option_18])
option_6 = OptionDescription(name="test", doc="test", children=[option_7])
option_5 = OptionDescription(name="services", doc="services", children=[option_6], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_5])
diff --git a/tests/dictionaries/70container_files_symlink_variable/makedict/base.json b/tests/dictionaries/70container_files_symlink_variable/makedict/base.json
index 9fa411124..a901d1f05 100644
--- a/tests/dictionaries/70container_files_symlink_variable/makedict/base.json
+++ b/tests/dictionaries/70container_files_symlink_variable/makedict/base.json
@@ -1 +1 @@
-{"rougail.file_name": "/etc/mailname", "rougail.var": "mailname", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.variable": "mailname", "services.test.files.mailname.activate": true}
+{"rougail.file_name": "/etc/mailname", "rougail.var": "mailname", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.variable": "mailname", "services.test.files.mailname.activate": true}
diff --git a/tests/dictionaries/70container_files_symlink_variable/tiramisu/base.py b/tests/dictionaries/70container_files_symlink_variable/tiramisu/base.py
index 583cb5592..51c7001c5 100644
--- a/tests/dictionaries/70container_files_symlink_variable/tiramisu/base.py
+++ b/tests/dictionaries/70container_files_symlink_variable/tiramisu/base.py
@@ -16,13 +16,14 @@ option_3 = StrOption(name="var", doc="var", default="mailname", properties=froze
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = SymLinkOption(name="name", opt=option_2)
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_14 = SymLinkOption(name="variable", opt=option_3)
-option_15 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = SymLinkOption(name="name", opt=option_2)
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="mailname")
+option_15 = SymLinkOption(name="variable", opt=option_3)
+option_16 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15, option_16])
option_6 = OptionDescription(name="files", doc="files", children=[option_7])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/70container_files_twice/makedict/base.json b/tests/dictionaries/70container_files_twice/makedict/base.json
index 590ce473c..048621e9f 100644
--- a/tests/dictionaries/70container_files_twice/makedict/base.json
+++ b/tests/dictionaries/70container_files_twice/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname_1.engine": "creole", "services.test.files.mailname_1.group": "root", "services.test.files.mailname_1.mode": "0644", "services.test.files.mailname_1.name": "/etc/eole/mailname", "services.test.files.mailname_1.owner": "root", "services.test.files.mailname_1.source": "mailname", "services.test.files.mailname_1.activate": true, "services.test.files.rougail_conf.engine": "creole", "services.test.files.rougail_conf.group": "root", "services.test.files.rougail_conf.mode": "0644", "services.test.files.rougail_conf.name": "/rougail.conf", "services.test.files.rougail_conf.owner": "root", "services.test.files.rougail_conf.source": "rougail.conf", "services.test.files.rougail_conf.activate": true}
+{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname_1.engine": "creole", "services.test.files.mailname_1.group": "root", "services.test.files.mailname_1.include": "no", "services.test.files.mailname_1.mode": "0644", "services.test.files.mailname_1.name": "/etc/eole/mailname", "services.test.files.mailname_1.owner": "root", "services.test.files.mailname_1.source": "mailname", "services.test.files.mailname_1.activate": true, "services.test.files.rougail_conf.engine": "creole", "services.test.files.rougail_conf.group": "root", "services.test.files.rougail_conf.include": "no", "services.test.files.rougail_conf.mode": "0644", "services.test.files.rougail_conf.name": "/rougail.conf", "services.test.files.rougail_conf.owner": "root", "services.test.files.rougail_conf.source": "rougail.conf", "services.test.files.rougail_conf.activate": true}
diff --git a/tests/dictionaries/70container_files_twice/tiramisu/base.py b/tests/dictionaries/70container_files_twice/tiramisu/base.py
index 002186575..860515246 100644
--- a/tests/dictionaries/70container_files_twice/tiramisu/base.py
+++ b/tests/dictionaries/70container_files_twice/tiramisu/base.py
@@ -16,29 +16,32 @@ option_2 = OptionDescription(name="general", doc="général", children=[option_3
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
-option_16 = StrOption(name="engine", doc="engine", default="creole")
-option_17 = StrOption(name="group", doc="group", default="root")
-option_18 = StrOption(name="mode", doc="mode", default="0644")
-option_19 = FilenameOption(name="name", doc="name", default="/etc/eole/mailname")
-option_20 = StrOption(name="owner", doc="owner", default="root")
-option_21 = StrOption(name="source", doc="source", default="mailname")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="mailname_1", doc="mailname_1", children=[option_16, option_17, option_18, option_19, option_20, option_21, option_22])
-option_24 = StrOption(name="engine", doc="engine", default="creole")
-option_25 = StrOption(name="group", doc="group", default="root")
-option_26 = StrOption(name="mode", doc="mode", default="0644")
-option_27 = FilenameOption(name="name", doc="name", default="/rougail.conf")
-option_28 = StrOption(name="owner", doc="owner", default="root")
-option_29 = StrOption(name="source", doc="source", default="rougail.conf")
-option_30 = BoolOption(name="activate", doc="activate", default=True)
-option_23 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_24, option_25, option_26, option_27, option_28, option_29, option_30])
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_15, option_23])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="mailname")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="creole")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/etc/eole/mailname")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="mailname")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="mailname_1", doc="mailname_1", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_26 = StrOption(name="engine", doc="engine", default="creole")
+option_27 = StrOption(name="group", doc="group", default="root")
+option_28 = StrOption(name="include", doc="include", default="no")
+option_29 = StrOption(name="mode", doc="mode", default="0644")
+option_30 = FilenameOption(name="name", doc="name", default="/rougail.conf")
+option_31 = StrOption(name="owner", doc="owner", default="root")
+option_32 = StrOption(name="source", doc="source", default="rougail.conf")
+option_33 = BoolOption(name="activate", doc="activate", default=True)
+option_25 = OptionDescription(name="rougail_conf", doc="rougail.conf", children=[option_26, option_27, option_28, option_29, option_30, option_31, option_32, option_33])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16, option_25])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/70container_filesmulti/makedict/base.json b/tests/dictionaries/70container_filesmulti/makedict/base.json
index 1446b24c3..1b4247d50 100644
--- a/tests/dictionaries/70container_filesmulti/makedict/base.json
+++ b/tests/dictionaries/70container_filesmulti/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "creole", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": "/etc/mailname2", "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
+{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname.engine": "creole", "services.test.files.mailname.group": "root", "services.test.files.mailname.include": "no", "services.test.files.mailname.mode": "0644", "services.test.files.mailname.name": "/etc/mailname", "services.test.files.mailname.owner": "root", "services.test.files.mailname.source": "mailname", "services.test.files.mailname.activate": true, "services.test.files.mailname2.engine": "creole", "services.test.files.mailname2.group": "root", "services.test.files.mailname2.include": "no", "services.test.files.mailname2.mode": "0644", "services.test.files.mailname2.name": "/etc/mailname2", "services.test.files.mailname2.owner": "root", "services.test.files.mailname2.source": "mailname2", "services.test.files.mailname2.activate": true}
diff --git a/tests/dictionaries/70container_filesmulti/tiramisu/base.py b/tests/dictionaries/70container_filesmulti/tiramisu/base.py
index d3357eaaf..45aa826b5 100644
--- a/tests/dictionaries/70container_filesmulti/tiramisu/base.py
+++ b/tests/dictionaries/70container_filesmulti/tiramisu/base.py
@@ -16,21 +16,23 @@ option_2 = OptionDescription(name="general", doc="général", children=[option_3
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="mailname")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
-option_16 = StrOption(name="engine", doc="engine", default="creole")
-option_17 = StrOption(name="group", doc="group", default="root")
-option_18 = StrOption(name="mode", doc="mode", default="0644")
-option_19 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
-option_20 = StrOption(name="owner", doc="owner", default="root")
-option_21 = StrOption(name="source", doc="source", default="mailname2")
-option_22 = BoolOption(name="activate", doc="activate", default=True)
-option_15 = OptionDescription(name="mailname2", doc="mailname2", children=[option_16, option_17, option_18, option_19, option_20, option_21, option_22])
-option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_15])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="mailname")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="mailname", doc="mailname", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
+option_17 = StrOption(name="engine", doc="engine", default="creole")
+option_18 = StrOption(name="group", doc="group", default="root")
+option_19 = StrOption(name="include", doc="include", default="no")
+option_20 = StrOption(name="mode", doc="mode", default="0644")
+option_21 = FilenameOption(name="name", doc="name", default="/etc/mailname2")
+option_22 = StrOption(name="owner", doc="owner", default="root")
+option_23 = StrOption(name="source", doc="source", default="mailname2")
+option_24 = BoolOption(name="activate", doc="activate", default=True)
+option_16 = OptionDescription(name="mailname2", doc="mailname2", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_23, option_24])
+option_6 = OptionDescription(name="files", doc="files", children=[option_7, option_16])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_4])
diff --git a/tests/dictionaries/70container_filesredefine/makedict/base.json b/tests/dictionaries/70container_filesredefine/makedict/base.json
index 23c40f8ac..99087ab5a 100644
--- a/tests/dictionaries/70container_filesredefine/makedict/base.json
+++ b/tests/dictionaries/70container_filesredefine/makedict/base.json
@@ -1 +1 @@
-{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname_new.engine": "creole", "services.test.files.mailname_new.group": "root", "services.test.files.mailname_new.mode": "0644", "services.test.files.mailname_new.name": "/etc/mailname", "services.test.files.mailname_new.owner": "root", "services.test.files.mailname_new.source": "mailname.new", "services.test.files.mailname_new.activate": true}
+{"rougail.general.mode_conteneur_actif": "oui", "services.test.files.mailname_new.engine": "creole", "services.test.files.mailname_new.group": "root", "services.test.files.mailname_new.include": "no", "services.test.files.mailname_new.mode": "0644", "services.test.files.mailname_new.name": "/etc/mailname", "services.test.files.mailname_new.owner": "root", "services.test.files.mailname_new.source": "mailname.new", "services.test.files.mailname_new.activate": true}
diff --git a/tests/dictionaries/70container_filesredefine/tiramisu/base.py b/tests/dictionaries/70container_filesredefine/tiramisu/base.py
index a6996d4e6..471704657 100644
--- a/tests/dictionaries/70container_filesredefine/tiramisu/base.py
+++ b/tests/dictionaries/70container_filesredefine/tiramisu/base.py
@@ -16,12 +16,13 @@ option_2 = OptionDescription(name="general", doc="général", children=[option_3
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_8 = StrOption(name="engine", doc="engine", default="creole")
option_9 = StrOption(name="group", doc="group", default="root")
-option_10 = StrOption(name="mode", doc="mode", default="0644")
-option_11 = FilenameOption(name="name", doc="name", default="/etc/mailname")
-option_12 = StrOption(name="owner", doc="owner", default="root")
-option_13 = StrOption(name="source", doc="source", default="mailname.new")
-option_14 = BoolOption(name="activate", doc="activate", default=True)
-option_7 = OptionDescription(name="mailname_new", doc="mailname.new", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14])
+option_10 = StrOption(name="include", doc="include", default="no")
+option_11 = StrOption(name="mode", doc="mode", default="0644")
+option_12 = FilenameOption(name="name", doc="name", default="/etc/mailname")
+option_13 = StrOption(name="owner", doc="owner", default="root")
+option_14 = StrOption(name="source", doc="source", default="mailname.new")
+option_15 = BoolOption(name="activate", doc="activate", default=True)
+option_7 = OptionDescription(name="mailname_new", doc="mailname.new", children=[option_8, option_9, option_10, option_11, option_12, option_13, option_14, option_15])
option_6 = OptionDescription(name="files", doc="files", children=[option_7])
option_5 = OptionDescription(name="test", doc="test", children=[option_6])
option_4 = OptionDescription(name="services", doc="services", children=[option_5], properties=frozenset({"hidden"}))
diff --git a/tests/dictionaries/70service_not_managed/makedict/base.json b/tests/dictionaries/70service_not_managed/makedict/base.json
index 08e24b759..03a2d79b5 100644
--- a/tests/dictionaries/70service_not_managed/makedict/base.json
+++ b/tests/dictionaries/70service_not_managed/makedict/base.json
@@ -1 +1 @@
-{"rougail.var": "mailname", "services.test.files.test.engine": "creole", "services.test.files.test.group": "root", "services.test.files.test.mode": "0644", "services.test.files.test.name": "/tmp/test", "services.test.files.test.owner": "root", "services.test.files.test.source": "test", "services.test.files.test.activate": true}
+{"rougail.var": "mailname", "services.test.files.test.engine": "creole", "services.test.files.test.group": "root", "services.test.files.test.include": "no", "services.test.files.test.mode": "0644", "services.test.files.test.name": "/tmp/test", "services.test.files.test.owner": "root", "services.test.files.test.source": "test", "services.test.files.test.activate": true}
diff --git a/tests/dictionaries/70service_not_managed/tiramisu/base.py b/tests/dictionaries/70service_not_managed/tiramisu/base.py
index 273eec8de..499c0bd56 100644
--- a/tests/dictionaries/70service_not_managed/tiramisu/base.py
+++ b/tests/dictionaries/70service_not_managed/tiramisu/base.py
@@ -15,12 +15,13 @@ option_2 = StrOption(name="var", doc="var", default="mailname", properties=froze
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_7 = StrOption(name="engine", doc="engine", default="creole")
option_8 = StrOption(name="group", doc="group", default="root")
-option_9 = StrOption(name="mode", doc="mode", default="0644")
-option_10 = FilenameOption(name="name", doc="name", default="/tmp/test")
-option_11 = StrOption(name="owner", doc="owner", default="root")
-option_12 = StrOption(name="source", doc="source", default="test")
-option_13 = BoolOption(name="activate", doc="activate", default=True)
-option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_8, option_9, option_10, option_11, option_12, option_13])
+option_9 = StrOption(name="include", doc="include", default="no")
+option_10 = StrOption(name="mode", doc="mode", default="0644")
+option_11 = FilenameOption(name="name", doc="name", default="/tmp/test")
+option_12 = StrOption(name="owner", doc="owner", default="root")
+option_13 = StrOption(name="source", doc="source", default="test")
+option_14 = BoolOption(name="activate", doc="activate", default=True)
+option_6 = OptionDescription(name="test", doc="test", children=[option_7, option_8, option_9, option_10, option_11, option_12, option_13, option_14])
option_5 = OptionDescription(name="files", doc="files", children=[option_6])
option_4 = OptionDescription(name="test", doc="test", children=[option_5])
option_4.impl_set_information('manage', False)
diff --git a/tests/test_3_template.py b/tests/test_3_template.py
index 6f5eefed3..a637cf0e1 100644
--- a/tests/test_3_template.py
+++ b/tests/test_3_template.py
@@ -88,6 +88,6 @@ async def test_dictionary(test_dir):
result_file = fh.read()
with open(template_file, 'r') as fh:
generated_file = fh.read()
- assert result_file == generated_file
+ assert result_file == generated_file, f'{template_file} content : \n{generated_file}\nexpected: \nresult_file\n'
rmtree(dest_dir)
rmtree(tmp_dir)